文本生成
使用 Agicto 进行文本生成和聊天补全
文本生成
文本生成(Chat Completions)是最常用的 AI 功能,用于生成文本、对话、内容创作等。
基本用法
from openai import OpenAI
client = OpenAI(
api_key="your-api-key",
base_url="https://api.agicto.cn/v1"
)
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[
{"role": "system", "content": "你是一个专业的助手"},
{"role": "user", "content": "介绍一下人工智能"}
]
)
print(response.choices[0].message.content)
流式输出
实时获取生成的内容,提升用户体验:
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": "写一首诗"}],
stream=True
)
for chunk in response:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)
系统提示词
使用系统提示词定义模型的行为和角色:
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[
{"role": "system", "content": "你是一个专业的 Python 开发者,擅长代码优化"},
{"role": "user", "content": "如何提升 Python 代码性能?"}
]
)
多轮对话
维护对话历史实现上下文对话:
messages = [
{"role": "system", "content": "你是一个友好的助手"}
]
# 第一轮对话
messages.append({"role": "user", "content": "我叫小明"})
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=messages
)
messages.append({"role": "assistant", "content": response.choices[0].message.content})
# 第二轮对话
messages.append({"role": "user", "content": "我叫什么名字?"})
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=messages
)
print(response.choices[0].message.content) # 输出:你叫小明
参数说明
temperature
控制输出的随机性(0-2):
0: 确定性输出,适合事实性任务1: 平衡创造性和一致性(默认)2: 高度随机,适合创意写作
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": "写一个故事"}],
temperature=1.5 # 更有创意
)
max_tokens
限制输出的最大 token 数:
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": "介绍人工智能"}],
max_tokens=100 # 限制输出长度
)
top_p
核采样参数(0-1),控制输出的多样性:
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": "写一首诗"}],
top_p=0.9
)
支持的模型
所有 Agicto 支持的模型都可以用于文本生成:
- GPT 系列: gpt-4o, gpt-4o-mini, gpt-4-turbo
- Claude 系列: claude-3.5-sonnet, claude-3-opus
- Gemini 系列: gemini-2.0-flash, gemini-1.5-pro
- DeepSeek: deepseek-v3, deepseek-chat
- 国产模型: qwen-max, ernie-4.0, hunyuan-large
查看 模型总览 了解所有可用模型。
最佳实践
- 使用系统提示词 - 明确定义模型的角色和行为
- 流式输出 - 提升用户体验,实时显示生成内容
- 控制 token 数 - 避免不必要的成本
- 选择合适的模型 - 根据任务复杂度选择模型
- 错误处理 - 添加重试机制和错误处理
from openai import OpenAI, OpenAIError
import time
def generate_with_retry(messages, max_retries=3):
for i in range(max_retries):
try:
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=messages
)
return response.choices[0].message.content
except OpenAIError as e:
if i == max_retries - 1:
raise
time.sleep(2 ** i) # 指数退避