Skip to main content

Python GenAI: Build Your First AI App in 5 Minutes

Beginner20 min2 exercises30 XP
0/2 exercises

You're about to write a Python script that thinks. Not a rules engine, not a regex hack — an actual AI that reads your question and writes back a thoughtful answer. The whole thing takes three lines of real code. Let's build it, then understand what happened.

Your First AI Call — Three Lines That Change Everything

I'm going to show you a working AI call before explaining any of it. Install the library and set your API key, then run this:

Install the OpenAI library
pip install openai

You'll need an OpenAI API key — get one here (free tier works). Replace "sk-your-key-here" with your actual key in the code below, then hit Run:

Your first AI call
Loading editor...

The output will be three concise descriptions of string methods — but the exact wording will differ every time you run it, because the model generates fresh text on each call. The key point: three lines of actual logic (import, create client, make request) and you have a working AI assistant.

Let's understand what each piece does.

Anatomy of an API Call

Every OpenAI call has four parts:

  • Clientopenai.AsyncOpenAI() creates a connection to OpenAI's servers. We use the async client because it works natively in browser environments like this one.
  • Model"gpt-4o-mini" is fast and cheap (about $0.15 per million input tokens). Perfect for learning.
  • Messages — A list of dictionaries. Each has a "role" and "content". Right now we're sending one user message.
  • Response — The AI's answer lives at response.choices[0].message.content.
  • That messages list is the key concept. It tells the AI what you're asking. The response object contains more than just the answer — let's inspect it:

    Inspecting the response object
    Loading editor...

    Tokens are how OpenAI measures and charges for usage. One token is roughly 4 characters in English. A typical short call uses 100–200 total tokens — fractions of a cent.

    Exercise 1: Ask the AI Your Own Question
    Write Code

    Make an API call that asks GPT-4o-mini: "What does the len() function do in Python?"

    Then print three things, each on its own line:

    1. The AI's answer (the message content)

    2. The model name (from response.model)

    3. The finish reason (from response.choices[0].finish_reason)

    The client variable is already set up from the previous code block.

    Loading editor...

    Temperature — Controlling Creativity vs. Precision

    Before we build tools, there's one parameter you need to know. Every API call accepts a temperature value (default: 1.0) that controls how "creative" the response is:

    TemperatureBehaviorBest for
    0.0Deterministic — same input gives nearly identical output every timeCode generation, data extraction, factual Q&A
    0.5Balanced — some variation, mostly predictableTutoring, summaries
    1.0Creative — varied responses, may take unexpected anglesBrainstorming, creative writing
    1.5+Very creative — occasionally wild or incoherentRarely useful in practice
    Temperature 0 vs. temperature 1
    Loading editor...

    At temperature 0, all three answers will be nearly identical. At temperature 1, each takes a different angle. Neither is "better" — it depends on what you're building. For a code debugger, use 0. For brainstorming, use 0.7–1.0.

    System Messages — Giving Your AI a Personality

    The messages list supports three roles, and this is where the real power lives:

  • `"system"` — Background instructions that shape every response. The end user never sees this, but it controls tone, format, and scope.
  • `"user"` — The question or input from the person using your app.
  • `"assistant"` — Previous AI responses (for multi-turn conversations — covered in the next tutorial).
  • The system message is your secret weapon. Watch how it transforms the AI's output — same question, completely different response:

    Without a system message
    Loading editor...
    With a system message
    Loading editor...
    Exercise 2: Make the AI Talk Like a Pirate
    Write Code

    Write a system message that makes the AI respond like a pirate. Then ask it: "What is a Python list?"

    Print the AI's response followed by "DONE" on a new line.

    Your system message should include the word "pirate" so the AI knows what style to use.

    Loading editor...

    Build a Python Tutor

    Now that you understand the three building blocks (model, messages, temperature), let's wrap them into something you'd actually use daily. This function takes any Python question and returns a beginner-friendly explanation:

    A reusable Python tutor function
    Loading editor...

    Fifteen lines. It handles anything from "what is a variable?" to "explain metaclasses." The system message keeps every response focused and beginner-friendly regardless of the question's complexity.

    Build a Code Debugger

    This is the tool I reach for most often — paste broken code, get it fixed with an explanation. Same pattern, different system message:

    An AI-powered code debugger
    Loading editor...

    That's a genuinely tricky bug — modifying a list while iterating by index causes skipped elements and potential IndexError. Most beginners wouldn't catch it. The AI identifies the root cause and suggests a list comprehension or reverse iteration as the fix.

    Build a Code Translator

    One more tool to round out the set. This one translates Python to any language — showing how flexible the system message pattern really is:

    A code translator (Python → any language)
    Loading editor...

    All three tools — tutor, debugger, translator — use the exact same API pattern. The only thing that changes is the system message. That's the central insight of this tutorial: the system message is your primary programming interface for AI behavior.

    What Just Happened? How LLMs Work in 60 Seconds

    You've been using a Large Language Model (LLM) — GPT-4o-mini. Here's what it actually does, stripped of the hype:

    Training: OpenAI fed the model billions of documents — books, code, websites, conversations. It learned patterns: given a sequence of words, what word is most likely next?

    Your API call: The model processes your messages through a neural network with billions of parameters and generates the most likely continuation. It doesn't "understand" in the human sense.

    Why it works: The learned patterns are sophisticated enough that "predict the next token" produces responses that look like genuine reasoning. It writes good code because it has seen millions of code examples.

    Why it sometimes fails: It predicts likely text, not provably correct text. It can confidently produce plausible-looking but wrong code — especially for edge cases rare in training data. Always test what it generates.

    Tokens, Pricing, and Why It Matters

    Every API call costs money based on the number of tokens processed. Roughly, 1 token ≈ 4 characters of English text. Here's code that calculates the exact cost of a call:

    Calculating API costs
    Loading editor...

    For learning and prototyping, cost is essentially zero. Even running hundreds of calls while experimenting, you'll spend pennies. At production scale, gpt-4o-mini remains one of the cheapest models available.

    Common Mistakes and How to Fix Them

    I've hit every one of these. Save yourself the debugging time.

    ❌ Hardcoding your API key
    client = openai.OpenAI(api_key="sk-abc123...")
    ✅ Using an environment variable
    import os
    client = openai.AsyncOpenAI(api_key=os.environ["OPENAI_API_KEY"])

    Set it in your terminal: export OPENAI_API_KEY="sk-your-key". Never commit API keys to Git — even in private repos.

    Vague prompts produce vague results. "Write code" gives you generic boilerplate. "Write a Python function that takes a list of integers and returns the second largest, handling duplicates and empty lists" gives you production-quality code. Specificity is free and dramatically improves output.

    Frequently Asked Questions

    Can I use Claude or Gemini instead of OpenAI?

    Absolutely. The concepts (messages, system prompts, temperature) transfer directly. The API syntax differs slightly — Claude uses anthropic.Anthropic() and Gemini uses google.generativeai. We cover both in the Multi-Provider AI tutorial.

    Is the OpenAI API free?

    New accounts get $5 of free credits (enough for thousands of gpt-4o-mini calls). After that, you pay per token. For learning purposes, you'll rarely spend more than a few cents per session.

    Python
    # Check your remaining balance with curl:
    # curl https://api.openai.com/v1/usage -H "Authorization: Bearer $OPENAI_API_KEY"
    
    # Or in Python:
    # import openai
    # Not directly available via API — check https://platform.openai.com/usage

    Do I need a GPU to use the API?

    No. The AI runs on OpenAI's servers. Your Python script sends text over the internet and gets text back. Any computer with Python and internet access works.

    What's the difference between GPT-4o and GPT-4o-mini?

    GPT-4o is more capable at complex reasoning, math, and nuanced instructions — but costs about 17x more. GPT-4o-mini is faster and handles most straightforward tasks equally well. Start with mini, upgrade only if needed.

    Can I run this code in a Jupyter notebook?

    Yes — Jupyter is actually the ideal environment for experimenting with LLM calls. Each cell can make a separate API call, and you can iterate on prompts quickly.

    Summary and Next Steps

    You built three working AI tools in this tutorial:

  • Python Tutor — explains any concept in beginner-friendly terms
  • Code Debugger — finds and fixes bugs with explanations
  • Code Translator — converts Python to any language
  • The core pattern behind all three is identical:

    The pattern behind every AI app
    Loading editor...

    Every AI app you'll build — chatbots, RAG systems, AI agents — extends this pattern with additional messages, tools, or retrieval layers.

    Next up: Build a Chatbot with Memory — where the AI remembers your entire conversation. That's where the "assistant" role and the full power of the messages array come in.


    References

  • OpenAI API Documentation — Chat Completions. Link
  • OpenAI API Reference — create chat completion. Link
  • OpenAI Pricing. Link
  • OpenAI Tokenizer Tool. Link
  • OpenAI Prompt Engineering Guide. Link
  • Anthropic Claude API Documentation. Link
  • Google Gemini API Documentation. Link
  • Related Tutorials