OpenAI codex API:使用 Python 快速入门
本指南展示了如何通过我们的 openai compatible API 使用标准的 OpenAI SDK 使用无审查 LLM。您可以通过更新基础 URL 和 API 密钥立即开始发送请求。
安装官方 SDK
使用官方 SDK 以确保与我们 openai 代理 API 的兼容性。此方法适用于任何支持 OpenAI 协议的标准库。
- 通过你首选的包管理器安装该包。
- 通过导入库来验证安装。
from openai import OpenAI
client = OpenAI(base_url="https://api.openaicodexapi.com/v1", api_key="YOUR_KEY")
resp = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Summarise this thread without softening it."}],
)
print(resp.choices[0].message.content)import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.openaicodexapi.com/v1", apiKey: process.env.API_KEY });
const resp = await client.chat.completions.create({
model: "uncensored",
messages: [{ role: "user", content: "Draft a villain monologue for my game." }],
});
console.log(resp.choices[0].message.content);
设置您的基础 URL 和密钥
将您的客户端指向我们的 openai 网关端点以访问 uncensored AI 模型。将默认基础 URL 替换为我们的特定端点。
- 在环境变量中设置 API 密钥。
- 将基础 URL 配置为
https://api.openaicodexapi.com/v1.
此配置确保您的请求正确路由至我们的服务器,而无需修改现有的代码结构。
curl https://api.openaicodexapi.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "Explain how prepaid billing works for this API."}]
}'
发送您的第一次请求
发送简单的文本补全以测试连接。使用模型 ID uncensored 用于请求。
- 定义消息内容。
- 执行请求。
from openai import OpenAI
client = OpenAI(base_url="https://api.openaicodexapi.com/v1", api_key="YOUR_KEY")
resp = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Summarise this thread without softening it."}],
)
print(resp.choices[0].message.content)import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.openaicodexapi.com/v1", apiKey: process.env.API_KEY });
const resp = await client.chat.completions.create({
model: "uncensored",
messages: [{ role: "user", content: "Draft a villain monologue for my game." }],
});
console.log(resp.choices[0].message.content);响应直接返回生成的文本。
启用流式传输和 JSON 模式
流式响应以降低延迟,或启用 JSON 模式以获取结构化数据。设置 stream=true 用于实时 token 交付。
- 使用
response_formatfor JSON 输出。 - 在代码中处理数据块。
stream = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Tell the story in second person."}],
stream=True,
)
for chunk in stream:
if chunk.choices and chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)curl https://api.openaicodexapi.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "Explain how prepaid billing works for this API."}]
}'流式传输有助于您快速显示部分结果。
处理工具和函数调用
在请求中定义工具以启用函数调用。指定工具定义并让模型决定何时使用它们。
- 定义函数模式。
- 解析响应中的工具调用。
from openai import OpenAI
client = OpenAI(base_url="https://api.openaicodexapi.com/v1", api_key="YOUR_KEY")
resp = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Summarise this thread without softening it."}],
)
print(resp.choices[0].message.content)import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.openaicodexapi.com/v1", apiKey: process.env.API_KEY });
const resp = await client.chat.completions.create({
model: "uncensored",
messages: [{ role: "user", content: "Draft a villain monologue for my game." }],
});
console.log(resp.choices[0].message.content);此功能允许与外部系统集成。
限制、错误和上下文窗口
监控使用情况以避免速率限制或错误。上下文窗口支持总共 100,000 个 token。
- 处理无效密钥的 401 错误。
- 处理余额不足的 402 错误。
- 处理 429 速率限制错误。
curl https://api.openaicodexapi.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "Explain how prepaid billing works for this API."}]
}'from openai import OpenAI
client = OpenAI(base_url="https://api.openaicodexapi.com/v1", api_key="YOUR_KEY")
resp = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Summarise this thread without softening it."}],
)
print(resp.choices[0].message.content)import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.openaicodexapi.com/v1", apiKey: process.env.API_KEY });
const resp = await client.chat.completions.create({
model: "uncensored",
messages: [{ role: "user", content: "Draft a villain monologue for my game." }],
});
console.log(resp.choices[0].message.content);stream = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Tell the story in second person."}],
stream=True,
)
for chunk in stream:
if chunk.choices and chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)常见问题解答
OpenAI Codex API 是什么?
这是一个无审查的 LLM API,兼容 OpenAI 协议。您可以通过更新基础 URL 将其与标准 SDK 一起使用。
如何处理错误?
常见错误包括 401(无效密钥)、402(无余额)和 429(速率限制)。请检查您的账户余额和密钥有效性。
上下文窗口大小是多少?
上下文窗口总共为 100,000 token,包括提示词和补全。每个请求的最大输出为 16,000 token。
获取您的 API 密钥
注册,复制密钥,并更新基础 URL。就这样。