用Python调用龙虾API:完整SDK使用指南
用Python调用龙虾API:完整SDK使用指南
上周帮同事部署一个自动化测试脚本,他问我:"龙虾API到底怎么调?我看文档写了半天还是没搞明白。"我拿过他的代码一看,好家伙,直接用requests库手写HTTP请求,headers和签名搞得一团糟。其实用官方SDK,这些破事根本不用管。
这篇文章就手把手教你用Python玩转龙虾API,从环境搭建到生产级用法,全部是实操经验。
一、安装与环境配置
安装SDK就一行命令:
pip install openai
等等,龙虾API兼容OpenAI的SDK?没错,接口设计完全对标OpenAI格式,所以你可以直接用openai这个库。配置环境变量:
import os
os.environ["OPENAI_API_KEY"] = "your-lobster-api-key"
os.environ["OPENAI_API_BASE"] = "https://api.openclaw.com/v1"
这里的API Key在你龙虾开放平台的后台申请,Base URL填上面这个地址就行。
如果你不想用环境变量,也可以在代码里直接配置:
from openai import OpenAI
client = OpenAI(
api_key="your-lobster-api-key",
base_url="https://api.openclaw.com/v1"
)
两种方式我都用过,生产环境推荐用环境变量,代码更干净,也方便在Docker或者K8s里统一管理。
二、基础调用:同步和流式
最简单的一次调用:
response = client.chat.completions.create(
model="clawbrain-pro",
messages=[
{"role": "system", "content": "你是一个专业的Python开发助手"},
{"role": "user", "content": "解释一下Python中的装饰器是什么"}
],
temperature=0.7,
max_tokens=500
)
print(response.choices[0].message.content)
这段代码跑起来会返回一个完整的回答。model填"clawbrain-pro"或者"clawbrain-fast",看你的需求——前者能力强一点,后者响应快一点。
如果你需要实时看到输出,比如做一个聊天机器人,流式输出更爽:
stream = client.chat.completions.create(
model="clawbrain-pro",
messages=[{"role": "user", "content": "写一首关于春天的诗"}],
stream=True
)
for chunk in stream:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="")
注意这里用的是stream=True,返回的是一个生成器,一块一块地往外吐内容,体验和ChatGPT网页版差不多。
三、工具调用:让AI能"干活"
光回答问题不够过瘾,AI还得能帮你调用函数、查数据库、操作文件。工具调用是生产环境的刚需。
先定义一个工具:
tools = [
{
"type": "function",
"function": {
"name": "get_weather",
"description": "获取指定城市的天气信息",
"parameters": {
"type": "object",
"properties": {
"city": {
"type": "string",
"description": "城市名称,比如北京、上海"
}
},
"required": ["city"]
}
}
}
]
然后在请求里加上tools参数:
response = client.chat.completions.create(
model="clawbrain-pro",
messages=[{"role": "user", "content": "明天北京天气怎么样?"}],
tools=tools
)
# 检查AI是否调用了工具
if response.choices[0].message.tool_calls:
tool_call = response.choices[0].message.tool_calls[0]
print(f"调用函数: {tool_call.function.name}")
print(f"参数: {tool_call.function.arguments}")
这一步AI会告诉你它想调什么函数、传什么参数。你拿到这个信息之后,自己去执行真实的天气API,然后把结果再传回去,AI就能生成最终回答了。这个过程叫Function Calling,是构建AI Agent的基础。
四、错误处理:生产环境必修课
代码写完本地跑通了,放到线上分分钟教你做人。几种常见错误要处理好:
from openai import APIError, RateLimitError
try:
response = client.chat.completions.create(
model="clawbrain-pro",
messages=[{"role": "user", "content": "Hello"}]
)
except RateLimitError:
print("请求太频繁,歇一秒再试")
time.sleep(1)
except APIError as e:
print(f"API报错: {e.code} - {e.message}")
except Exception as e:
print(f"未知错误: {e}")
RateLimitError是最常见的,特别是并发请求量大的时候,加个重试机制或者队列限流很有必要。
另外记得处理超时:
response = client.chat.completions.create(
model="clawbrain-pro",
messages=[{"role": "user", "content": "Hello"}],
timeout=30 # 30秒超时
)
默认超时比较长,根据你的业务场景调到一个合理的值。
总结
龙虾API这玩意儿,用OpenAI SDK调真的没什么门槛。核心就三点:装好库、配置Key、调用create方法。流式输出让体验更好,工具调用让AI能干活,错误处理让你的服务更稳。
如果你需要更智能的任务编排能力——比如一个需求下来,AI能自动拆解步骤、规划执行顺序、遇到错误还能自己修复——可以考虑集成ClawBrain。它是专为龙虾打造的智能决策引擎,封装了任务闭环、自主规划、错误自愈这些能力,配上API调用,自动化脚本的靠谱程度能上一个台阶。
有问题评论区见,操练起来吧。