本文解决AI回答采集系统中如何稳定调用大模型的问题,以腾讯混元为例,覆盖SDK认证、非流式与流式调用、错误处理与重试。读者将了解从API调用到结果保存的工程链路,以及常见失败场景和应对方案。需要开通腾讯混元API服务并获取SecretId和SecretKey。
只调用一次模型接口并不复杂,但进入AI回答采集系统后,需要处理认证、超时、限流、流式拼接和异常重试。本文以一个采集任务为例,说明如何用腾讯混元SDK实现稳定调用。
采集系统调用链路:
本文聚焦模型调用模块,包括认证、请求构建、响应处理和错误处理。
pip install tencentcloud-sdk-python使用SecretId和SecretKey初始化客户端,建议从环境变量读取,避免硬编码。
import os
from tencentcloud.common import credential
from tencentcloud.hunyuan.v20230901 import hunyuan_client, models
cred = credential.Credential(
os.environ.get("TENCENTCLOUD_SECRET_ID"),
os.environ.get("TENCENTCLOUD_SECRET_KEY")
)
client = hunyuan_client.HunyuanClient(cred, "ap-guangzhou")说明:地域选择影响延迟和可用性,生产环境应根据实际部署就近选择。密钥应保存在密钥管理服务或环境变量中,不要提交到代码仓库。
采集场景通常需要完整的模型回答,使用非流式调用获取一次性结果。
def call_hunyuan_sync(prompt: str) -> str:
req = models.ChatCompletionsRequest()
req.Model = "hunyuan-lite"
req.Messages = [
models.Message(role="user", content=prompt)
]
try:
resp = client.ChatCompletions(req)
return resp.Choices[0].Message.Content
except Exception as e:
print(f"调用失败: {e}")
return None解释:hunyuan-lite是轻量模型,适合高并发采集。返回的Choices列表包含模型回答,取第一个即可。生产环境应记录完整响应用于复查。
流式输出适合实时展示,但采集系统需要完整文本,需拼接。
def call_hunyuan_stream(prompt: str) -> str:
req = models.ChatCompletionsRequest()
req.Model = "hunyuan-lite"
req.Messages = [models.Message(role="user", content=prompt)]
req.Stream = True
full_content = ""
try:
resp = client.ChatCompletions(req)
for event in resp:
if event.Choices:
delta = event.Choices[0].Delta
if delta and delta.Content:
full_content += delta.Content
return full_content
except Exception as e:
print(f"流式调用失败: {e}")
return None注意:流式响应可能因网络中断导致拼接不完整,需在异常处理中判断是否部分成功。生产环境建议设置超时时间。
常见错误包括:认证失败、限流、超时、模型不存在。建议实现指数退避重试。
import time
from tencentcloud.common.exception import TencentCloudSDKException
def call_with_retry(prompt: str, max_retries=3):
for attempt in range(max_retries):
try:
return call_hunyuan_sync(prompt)
except TencentCloudSDKException as e:
if "RequestLimitExceeded" in str(e):
wait = 2 ** attempt
print(f"限流,等待{wait}秒")
time.sleep(wait)
else:
raise
return None解释:限流错误应等待后重试,其他错误如认证失败不应重试。重试次数和间隔需根据配额调整。
正常情况下,调用call_hunyuan_sync("介绍一下腾讯混元")应返回一段中文介绍文本。检查返回内容是否非空、是否包含关键词。流式调用应返回相同内容。
hunyuan:ChatCompletions权限。client.set_stream_timeout(60)调整。hunyuan-lite价格较低,但大量调用仍会产生费用,建议设置每日调用上限。本文以腾讯混元为例,介绍了AI回答采集系统中模型调用的工程实践,包括认证、SDK初始化、非流式与流式调用、错误处理和重试。关键实现是使用tencentcloud-sdk-python构建请求,并通过重试机制提高稳定性。适用于需要批量采集AI回答的场景,但需注意限流、成本和密钥安全。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。