1C Platform1cPlatform

Building with Generative AI APIs: Developer's Guide

Jordan Lee
December 4, 2024
17 min read
Software Development

Generative AI APIs have democratized access to powerful models. You don't need ML expertise or GPU clusters—just API calls. This guide shows you how to build production-ready AI applications using OpenAI, Anthropic, and other leading platforms.

Getting Started

Choosing Your Platform

OpenAI: Most powerful models (GPT-4), multimodal capabilities, largest ecosystem. Best for: complex reasoning, code generation, general-purpose applications.

Anthropic (Claude): Strong safety focus, 200K context window, excellent instruction following. Best for: long documents, conversational AI, enterprises valuing safety.

Google (Gemini): Multimodal by design, strong reasoning, free tier. Best for: applications needing vision+text, cost-conscious projects.

Cohere: Specialized models, strong multilingual support, generous free tier. Best for: search, classification, embeddings at scale.

Authentication and Setup

Sign up for API access, get your key, and keep it secure. Never commit keys to version control. Use environment variables and secrets management.

# Python example
import os
from openai import OpenAI

client = OpenAI(api_key=os.environ.get("OPENAI_API_KEY"))

response = client.chat.completions.create(
    model="gpt-4",
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Explain quantum computing in simple terms."}
    ]
)

print(response.choices[0].message.content)

Core Concepts

Messages and Roles

Modern APIs use conversational format with three roles:

  • System: Sets behavior and context (e.g., "You're an expert financial advisor")
  • User: The input from the application user
  • Assistant: The model's responses

Temperature and Parameters

Control output randomness and style:

  • Temperature (0-2): Lower = more focused/deterministic, Higher = more creative/random
  • Max tokens: Limit output length
  • Top-p: Alternative to temperature for controlling randomness
  • Frequency/presence penalty: Reduce repetition

Tokens and Pricing

APIs charge per token (~4 chars or ~0.75 words). Input and output tokens priced separately. Monitor usage carefully:

  • GPT-4: $0.03/1K input, $0.06/1K output tokens
  • GPT-3.5: $0.0015/1K input, $0.002/1K output tokens
  • Claude 3: $0.015/1K input, $0.075/1K output tokens

Architecture Patterns

Retrieval-Augmented Generation (RAG)

Enhance responses with your own data. Process: User query → Retrieve relevant docs from vector database → Include in prompt context → Generate response. Essential for up-to-date, domain-specific information.

# Simplified RAG example
def answer_with_context(question, knowledge_base):
    # 1. Search knowledge base
    relevant_docs = vector_search(question, knowledge_base)
    
    # 2. Build context
    context = "\n".join([doc.content for doc in relevant_docs])
    
    # 3. Generate answer
    response = client.chat.completions.create(
        model="gpt-4",
        messages=[
            {"role": "system", "content": f"Answer using this context:\n{context}"},
            {"role": "user", "content": question}
        ]
    )
    
    return response.choices[0].message.content

Function Calling

Let models call your functions/APIs. Define available functions, model decides when to call them, you execute and return results. Enables AI to take actions: database queries, API calls, calculations.

Chain of Thought

Improve reasoning by asking models to "think step by step." Break complex problems into sequential prompts. Each step builds on previous outputs. Critical for math, logic, and multi-step tasks.

Streaming Responses

Stream tokens as they're generated for better UX. Users see immediate feedback rather than waiting for complete response. Essential for conversational interfaces.

# Streaming example
stream = client.chat.completions.create(
    model="gpt-4",
    messages=[{"role": "user", "content": "Write a poem about AI"}],
    stream=True
)

for chunk in stream:
    if chunk.choices[0].delta.content is not None:
        print(chunk.choices[0].delta.content, end="")

Production Best Practices

Error Handling and Retries

APIs can fail or rate-limit. Implement exponential backoff retries, timeout handling, and graceful degradation. Never expose raw API errors to users.

Cost Management

  • Set max_tokens: Prevent runaway costs from long outputs
  • Cache results: Store common queries to avoid redundant calls
  • Use cheaper models: GPT-3.5 for simple tasks, GPT-4 for complex
  • Monitor usage: Set up alerts for spending thresholds
  • Optimize prompts: Shorter, more efficient prompts = lower costs

Content Filtering

Implement input validation and output filtering. Check for harmful content, PII, and policy violations. Use OpenAI's moderation API or custom filters. Never blindly display model outputs.

Prompt Injection Protection

Users might try to override system instructions. Clearly separate system prompts from user input. Validate and sanitize user content. Monitor for suspicious patterns.

Logging and Observability

Log all API calls with request/response, latency, tokens used, and errors. Build dashboards for usage patterns, costs, and quality. Use tools like LangSmith or Helicone for AI observability.

Common Use Cases

Chatbots and Virtual Assistants

Maintain conversation history, personalize based on user data, integrate with knowledge bases via RAG, handle multi-turn context, and gracefully escalate to humans.

Document Analysis

Extract structured data from PDFs/documents, summarize long content, classify documents by type, answer questions about documents, and compare multiple documents.

Code Generation and Review

Generate code from natural language, explain existing code, suggest improvements, write tests, and debug issues. GitHub Copilot and Cursor built entire businesses on this.

Content Creation at Scale

Batch process thousands of content pieces, maintain consistent voice and style, generate variations for A/B testing, and personalize for different audiences.

Performance Optimization

  • Parallel requests: Process multiple requests concurrently
  • Batch operations: Combine similar tasks into single API calls when possible
  • Async processing: Use async/await for non-blocking operations
  • Response caching: Cache common queries with TTL
  • Model selection: Use smallest model that meets requirements

Testing and Evaluation

Build test suites with expected inputs/outputs. Measure accuracy, relevance, and consistency. Use human evaluation for subjective quality. A/B test different prompts and models. Track production metrics like user satisfaction and task completion.

Future-Proofing Your Application

Abstract AI provider behind interfaces—swapping providers should require minimal code changes. Stay updated on new model releases and capabilities. Plan for context window increases and new modalities. Design for continuous improvement as models evolve.

Building with AI APIs is straightforward—but building well requires thought about architecture, costs, safety, and user experience. Start simple, measure everything, and iterate based on real usage. The winners will be developers who combine technical implementation with product intuition and user empathy.

Build Production AI Applications

Get hands-on guidance and best practices for building reliable, scalable AI applications.