Python 示例
使用 OpenAI Python SDK 访问 MyAIGas API。
安装
bash
pip install openai基础用法
非流式请求
python
import os
from openai import OpenAI
# 初始化客户端
client = OpenAI(
api_key=os.getenv("MYAIGAS_API_KEY"),
base_url="https://myaigas.com/v1"
)
# 调用 API
response = client.chat.completions.create(
model="claude-sonnet-4-6",
messages=[
{"role": "system", "content": "你是一个有帮助的助手。"},
{"role": "user", "content": "介绍一下北京"}
],
temperature=0.7,
max_tokens=1000
)
# 输出结果
print(response.choices[0].message.content)流式请求
python
from openai import OpenAI
import os
client = OpenAI(
api_key=os.getenv("MYAIGAS_API_KEY"),
base_url="https://myaigas.com/v1"
)
# 流式请求
stream = client.chat.completions.create(
model="claude-sonnet-4-6",
messages=[
{"role": "user", "content": "写一首关于春天的诗"}
],
stream=True
)
# 逐字输出
for chunk in stream:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end='', flush=True)多轮对话
python
from openai import OpenAI
import os
client = OpenAI(
api_key=os.getenv("MYAIGAS_API_KEY"),
base_url="https://myaigas.com/v1"
)
# 维护对话历史
messages = [
{"role": "system", "content": "你是一个有帮助的助手。"}
]
def chat(user_message):
# 添加用户消息
messages.append({"role": "user", "content": user_message})
# 调用 API
response = client.chat.completions.create(
model="claude-sonnet-4-6",
messages=messages
)
# 添加助手回复
assistant_message = response.choices[0].message.content
messages.append({"role": "assistant", "content": assistant_message})
return assistant_message
# 示例对话
print(chat("你好"))
print(chat("北京的天气怎么样?"))
print(chat("那里有什么著名景点?"))错误处理
python
from openai import OpenAI, OpenAIError, APIError, RateLimitError
import os
client = OpenAI(
api_key=os.getenv("MYAIGAS_API_KEY"),
base_url="https://myaigas.com/v1"
)
try:
response = client.chat.completions.create(
model="claude-sonnet-4-6",
messages=[{"role": "user", "content": "Hello"}]
)
print(response.choices[0].message.content)
except RateLimitError:
print("请求过于频繁,请稍后再试")
except APIError as e:
print(f"API 错误: {e}")
except OpenAIError as e:
print(f"请求失败: {e}")异步调用
python
import asyncio
import os
from openai import AsyncOpenAI
async def main():
client = AsyncOpenAI(
api_key=os.getenv("MYAIGAS_API_KEY"),
base_url="https://myaigas.com/v1"
)
response = await client.chat.completions.create(
model="claude-sonnet-4-6",
messages=[{"role": "user", "content": "Hello"}]
)
print(response.choices[0].message.content)
# 运行
asyncio.run(main())使用不同模型
python
from openai import OpenAI
import os
client = OpenAI(
api_key=os.getenv("MYAIGAS_API_KEY"),
base_url="https://myaigas.com/v1"
)
# Claude 3.5 Sonnet(推荐)
response = client.chat.completions.create(
model="claude-sonnet-4-6",
messages=[{"role": "user", "content": "Hello"}]
)
# GPT-4
response = client.chat.completions.create(
model="gpt-4",
messages=[{"role": "user", "content": "Hello"}]
)
# GPT-3.5 Turbo
response = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": "Hello"}]
)完整示例
python
#!/usr/bin/env python3
"""
MyAIGas API 调用示例
"""
import os
from openai import OpenAI
def main():
# 初始化客户端
client = OpenAI(
api_key=os.getenv("MYAIGAS_API_KEY"),
base_url="https://myaigas.com/v1"
)
# 对话历史
messages = [
{"role": "system", "content": "你是一个专业的 Python 编程助手。"}
]
print("MyAIGas 聊天机器人(输入 'exit' 退出)\n")
while True:
# 获取用户输入
user_input = input("You: ").strip()
if user_input.lower() == 'exit':
print("再见!")
break
if not user_input:
continue
# 添加用户消息
messages.append({"role": "user", "content": user_input})
try:
# 调用 API(流式)
print("AI: ", end='', flush=True)
stream = client.chat.completions.create(
model="claude-sonnet-4-6",
messages=messages,
stream=True
)
full_response = ""
for chunk in stream:
if chunk.choices[0].delta.content:
content = chunk.choices[0].delta.content
print(content, end='', flush=True)
full_response += content
print("\n")
# 添加助手回复
messages.append({"role": "assistant", "content": full_response})
except Exception as e:
print(f"\n错误: {e}\n")
if __name__ == "__main__":
main()环境配置
创建 .env 文件:
bash
MYAIGAS_API_KEY=sk-xxxxxxxxxxxxx使用 python-dotenv 加载:
python
from dotenv import load_dotenv
load_dotenv()