Hey there, fellow code wranglers! Ready to dive into the world of AI-powered conversations? You're in the right place. We're about to embark on a journey to integrate the ChatGPT API into your Python projects. Trust me, it's easier than you might think, and the possibilities are endless.
Before we jump in, make sure you've got these basics covered:
openai
package installed (pip install openai
- you know the drill)Let's get this show on the road. First things first:
import openai import os # Set your API key openai.api_key = os.getenv("OPENAI_API_KEY")
Pro tip: Always use environment variables for API keys. Keep 'em safe, keep 'em secret!
Now, let's create a simple function to chat with our AI buddy:
def chat_with_gpt(prompt): response = openai.ChatCompletion.create( model="gpt-3.5-turbo", messages=[{"role": "user", "content": prompt}] ) return response.choices[0].message.content # Let's give it a spin print(chat_with_gpt("Tell me a joke about Python"))
Easy peasy, right? You're now officially chatting with an AI!
Time to level up. Let's add some customization:
def advanced_chat(prompt, temperature=0.7, max_tokens=150): response = openai.ChatCompletion.create( model="gpt-3.5-turbo", messages=[{"role": "user", "content": prompt}], temperature=temperature, max_tokens=max_tokens ) return response.choices[0].message.content
Play around with these parameters. Lower temperature for more focused responses, higher for more creative ones. Adjust max_tokens
to control response length.
Let's not forget about error handling. The API can be finicky sometimes:
import time import backoff @backoff.on_exception(backoff.expo, openai.error.RateLimitError, max_tries=8) def chat_with_retry(prompt): try: return chat_with_gpt(prompt) except openai.error.APIError as e: print(f"OpenAI API error: {e}") return None
This little decorator will automatically retry with exponential backoff if we hit rate limits. Neat, huh?
Want to speed things up? Let's go async:
import asyncio import aiohttp async def async_chat(prompt): async with aiohttp.ClientSession() as session: async with session.post( "https://api.openai.com/v1/chat/completions", headers={"Authorization": f"Bearer {openai.api_key}"}, json={ "model": "gpt-3.5-turbo", "messages": [{"role": "user", "content": prompt}] } ) as resp: result = await resp.json() return result['choices'][0]['message']['content'] # Usage asyncio.run(async_chat("What's the meaning of life?"))
Now you're cooking with gas!
Remember, with great power comes great responsibility. Always sanitize user inputs and never expose your API key. Consider using a backend service to proxy requests if you're building a public-facing app.
Don't forget to test your integration thoroughly. Here's a quick unit test to get you started:
import unittest class TestChatGPT(unittest.TestCase): def test_chat_response(self): response = chat_with_gpt("Say 'Hello, World!'") self.assertIn("Hello, World!", response) if __name__ == '__main__': unittest.main()
When you're ready to deploy, consider containerizing your app with Docker for easy scaling. And always keep an eye on your API usage to avoid unexpected bills!
And there you have it, folks! You've just built a ChatGPT API integration in Python. From basic calls to async operations, you're now equipped to add some AI magic to your projects. Remember, the key to mastering this is experimentation. So go forth and create something awesome!
For more details, don't forget to check out the OpenAI API documentation. Happy coding!