Skip to content

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()

下一步

Released under the MIT License.