ChatGPT API enables you to build AI-powered applications with state-of-the-art language models. This guide covers everything from setup to production.
Setting Up OpenAI API
import openai
# Set your API key
openai.api_key = 'your-api-key-here'
# Simple completion
response = openai.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)
```
Conversation History
messages = [
{"role": "system", "content": "You are a helpful coding assistant."}
]
def chat(user_message):
messages.append({"role": "user", "content": user_message})
response = openai.chat.completions.create(
model="gpt-4",
messages=messages
)
assistant_message = response.choices[0].message.content
messages.append({"role": "assistant", "content": assistant_message})
return assistant_message
# Use it
print(chat("How do I reverse a string in Python?"))
print(chat("Can you show an example?"))
```
Streaming Responses
response = openai.chat.completions.create(
model="gpt-4",
messages=[{"role": "user", "content": "Tell me a story"}],
stream=True
)
for chunk in response:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end='')
```
Function Calling
functions = [
{
"name": "get_weather",
"description": "Get current weather in a location",
"parameters": {
"type": "object",
"properties": {
"location": {"type": "string"},
"unit": {"type": "string", "enum": ["celsius", "fahrenheit"]}
},
"required": ["location"]
}
}
]
response = openai.chat.completions.create(
model="gpt-4",
messages=[{"role": "user", "content": "What's the weather in NYC?"}],
functions=functions,
function_call="auto"
)
```
Best Practices
# Set temperature for creativity vs consistency
response = openai.chat.completions.create(
model="gpt-4",
messages=your_messages,
temperature=0.7, # 0 = deterministic, 2 = very creative
max_tokens=500, # Limit response length
top_p=0.9 # Nucleus sampling
)
# Handle errors
try:
response = openai.chat.completions.create(...)
except openai.error.RateLimitError:
print("Rate limit exceeded, please retry")
except openai.error.APIError as e:
print(f"API error: {e}")
```
Start building amazing AI applications with ChatGPT API today!