【一】OpenAI
旧版~简易API调用
from openai import OpenAI
client = OpenAI()
response = client.responses.create(
model="gpt-4.1",
input="Write a one-sentence bedtime story about a unicorn."
)
print(response.output_text)
新版~完整版调用【推荐】
from openai import OpenAI
client = OpenAI()
completion = client.chat.completions.create(
model="gpt-4.1",
messages=[
{
"role": "user",
"content": "Write a one-sentence bedtime story about a unicorn."
}
]
)
print(completion.choices[0].message.content)
两者区别:
responses.create:旧版接口,适合简单文本生成,使用 `input` 参数传入字符串,输出为 response.output_text。功能单一,不支持对话上下文。
chat.completions.create:现代接口,专为对话设计,使用 `messages` 参数支持多角色(如 `system`, `user`)和多轮交互,输出为 `completion.choices[0].message.content`。更灵活,推荐使用。
官方文档地址:https://platform.openai.com/docs/overview
【二】Grok(X ai)
聊天示例代码:
import os
from openai import OpenAI
client = OpenAI(
api_key="<YOUR_XAI_API_KEY_HERE>",
base_url="https://api.x.ai/v1",
)
completion = client.chat.completions.create(
model="grok-3",
messages=[
{"role": "system", "content": "You are a PhD-level mathematician."},
{"role": "user", "content": "What is 2 + 2?"},
],
)
print(completion.choices[0].message)
画图示例代码:
import os
from openai import OpenAI
XAI_API_KEY = os.getenv("XAI_API_KEY")
client = OpenAI(base_url="https://api.x.ai/v1", api_key=XAI_API_KEY)
response = client.images.generate(
model="grok-2-image-1212",
prompt="A cat in a tree"
)
print(response.data[0].url)
grok api遵循openai格式,调用起来很方便
官方API文档地址:https://console.x.ai/team/f189d448-f059-46ef-8af7-0f9d578af12c/models
【三】Claude
聊天示例代码:
import anthropic
client = anthropic.Anthropic(
# defaults to os.environ.get("ANTHROPIC_API_KEY")
api_key="my_api_key",
)
message = client.messages.create(
model="claude-3-7-sonnet-20250219",
max_tokens=1024,
messages=[
{"role": "user", "content": "Hello, Claude"}
]
)
print(message.content)
如果需要自定义URL调用地址:
from anthropic import Anthropic
# 初始化 Anthropic 客户端
client = Anthropic(
api_key="sk-xxxxxx",
base_url="xxxxxxxxxxx" # 自定义 URL(视服务支持情况)
)
# 调用 Claude 模型
response = client.messages.create(
model="claude-3-5-sonnet-20241022",
max_tokens=1000,
messages=[
{"role": "user", "content": "你还好吗"}
]
)
# 打印结果
print(response.content[0].text)
【四】gemini
下面是一个接受单个文本输入的基本示例:
from google import genai
client = genai.Client(api_key="GEMINI_API_KEY")
response = client.models.generate_content(
model="gemini-2.0-flash",
contents=["How does AI work?"]
)
print(response.text)
可以使用系统指令来引导 Gemini 模型的行为。
为此,请传递 GenerateContentConfig 对象。
from google import genai
from google.genai import types
client = genai.Client(api_key="GEMINI_API_KEY")
response = client.models.generate_content(
model="gemini-2.0-flash",
config=types.GenerateContentConfig(
system_instruction="You are a cat. Your name is Neko."),
contents="Hello there"
)
print(response.text)
但是有一个问题 就是我下载不了他这个库,一直没运行
【五】deepseek
DeepSeek API 使用与 OpenAI 兼容的 API 格式,通过修改配置,您可以使用 OpenAI SDK 来访问 DeepSeek API,或使用与 OpenAI API 兼容的软件。
# Please install OpenAI SDK first: `pip3 install openai`
from openai import OpenAI
client = OpenAI(api_key="<DeepSeek API Key>", base_url="https://api.deepseek.com")
response = client.chat.completions.create(
model="deepseek-chat",
messages=[
{"role": "system", "content": "You are a helpful assistant"},
{"role": "user", "content": "Hello"},
],
stream=False
)
print(response.choices[0].message.content)
* deepseek-chat
模型已全面升级为 DeepSeek-V3,接口不变。 通过指定 model='deepseek-chat'
即可调用 DeepSeek-V3。
* deepseek-reasoner
是 DeepSeek 最新推出的推理模型 DeepSeek-R1。通过指定 model='deepseek-reasoner'
,即可调用 DeepSeek-R1。
如何替换为自己的url和sk
openai格式的api调用 举个例子
# 导入所需的库
# 这里假设我们使用一个通用的 API 客户端库,替换 OpenAI 的库
# 如果使用 xAI 或其他大模型 API,可能需要导入相应的 SDK
from openai import OpenAI # 如果使用其他 API,可能改为对应的库,如 `from xai import XAIClient`
# 初始化客户端,指定 API 的基本 URL 和密钥
# base_url: API 的服务端点地址,替换为目标模型的 API 地址
# api_key: 用于身份验证的密钥,从服务提供商获取
client = OpenAI(
base_url="https://api.x.ai/v1", # 替换为目标 API 的 URL,例如 xAI 的 API 地址
api_key="your_api_key_here" # 替换为你在服务提供商注册后获得的 API 密钥
)
# 调用 API 的聊天完成接口,生成文本
# model: 指定使用的模型名称,替换为目标 API 支持的模型(如 "grok-3")
# messages: 包含用户输入的对话内容,格式保持不变
# 这里的 prompt 是一个简单的独角兽睡前故事请求
completion = client.chat.completions.create(
model="grok-3", # 替换为目标 API 支持的模型名称,例如 xAI 的 Grok 3
messages=[
{
"role": "user", # 角色定义为用户
"content": "Write a one-sentence bedtime story about a unicorn." # 用户的输入提示
}
]
)
# 输出 API 响应中的生成内容
# completion.choices[0].message.content 是标准返回格式,提取模型生成的文本
# 如果目标 API 的返回格式不同,可能需要调整字段名称(如 response.text)
print(completion.choices[0].message.content)
为什么很多大模型公司的API调用都兼容openai格式?
- 标准化与生态系统:
OpenAI 的 API 格式(特别是 chat.completions.create 接口)已成为事实上的行业标准。它的设计简单、清晰,易于开发者理解和使用。许多公司采用类似格式以降低开发者的学习成本,方便从 OpenAI 迁移或兼容现有代码。 - 开发者熟悉度:
OpenAI 的 SDK 和 API 文档广泛传播,开发者社区对其非常熟悉。通过模仿 OpenAI 的接口(如 model、messages 参数),其他公司可以吸引使用 OpenAI 的开发者,减少重新学习的摩擦。 - 兼容性与迁移:
采用 OpenAI 格式的 API 允许开发者通过简单替换 base_url 和 api_key(如前述代码)来切换服务。例如,xAI、Anthropic 或其他公司的 SDK 可能支持 OpenAI 的客户端库,直接通过配置指向自己的服务器。 - 简化开发:
OpenAI 的 API 设计(如 RESTful 风格、JSON 格式)简洁高效,适合处理对话、文本生成等任务。其他公司直接复用这一设计,无需重新发明复杂接口。
在国内如何一站式调用各个主流AI大模型
给大家推荐一个国内使用的 API大模型中转提供商:
KFC V50 API恭喜你!找到了全网最稳定的100%官方Enterprise企业级中转绘图 : KFC V50 APIhttp://api.chatterai.top/
大家有兴趣可以看一看