接口说明
请求参数
备注:
(1) 关于签名值 X-BC-Signature
的计算说明:
鉴权涉及的参数描述:
SecretKey: 与APIKey唯一对应的私钥,由百川提供
HTTP-Body: 客户端发送POST请求的请求体
X-BC-Timestamp: UTC标准时间戳,例如 1692950259
客户端请求签名的计算规则:
X-BC-Signature = md5(SecretKey + HTTP-Body + X-BC-Timestamp)
HTTP Header 响应参数
参数名 | 类型 | 描述 |
---|---|---|
Content-Type |
string | 响应的数据格式 |
Date |
string | 服务器响应时间 |
X-BC-Request-Id |
string | 请求的唯一标识 ID |
2. 状态码
应答 Headers 中支持 HTTP 标准状态码,具体如下:
HTTP 状态码 | 名称 | 描述 |
---|---|---|
200 | 成功 | 当 openapi 请求被正确处理,且能按设计获取结果时,返回该状态码 |
3xx | 跳转 | 在特定情况下,openapi 可能会返回这些状态码,建议调用方按照 HTTP 标准来处理 |
4xx | 客户端错误 | 由客户端原因造成的错误 |
5xx | 服务器内部错误 | openapi 或其下层服务发生内部错误 |
该表格描述了项目可能遇到的状态码、提示信息以及更多描述:
分类 | 状态 | 状态码 | 提示信息 | 更多描述 |
---|---|---|---|---|
成功 | 成功 | 0 | success | 请求成功并获得预期的结果 |
请求错误 | 失败 | 1 | system error | 请求失败 |
请求错误 | 参数非法 | 10000 | Invalid parameters, please check | 请求中的参数不合法,请仔细检查 |
请求错误 | 私钥缺失 | 10100 | Missing apikey | 请求缺少必要的私钥参数 |
请求错误 | 私钥非法 | 10101 | Invalid apikey | 提供的私钥无效,无法解码 |
请求错误 | 私钥过期 | 10102 | apikey has expired | 提供的私钥已过期,如果非永久有效,需重新获取 |
请求错误 | 时间戳无效 | 10103 | Invalid Timestamp parameter in request header | 错误的时间戳格式 |
请求错误 | 时间戳过期 | 10104 | Expire Timestamp parameter in request header | 过期的时间戳 |
请求错误 | 无效签名 | 10105 | Invalid Signature parameter in request header | 请求头中的签名无效 |
请求错误 | 无效加密算法 | 10106 | Invalid encryption algorithm in request header, not supported by server | 请求头中的加密算法不被支持 |
账号错误 | 账号未知 | 10200 | Account not found | 请求的账号不存在 |
账号错误 | 账号锁定 | 10201 | Account is locked, please contact the support staff | 请求的账号已锁定,请联系支持人员 |
账号错误 | 账号临时锁定 | 10202 | Account is temporarily locked, please try again later | 请求的账号临时锁定,请稍后再试 |
账号错误 | 账号请求频繁 | 10203 | Request too frequent, please try again later | 请求过于频繁,已触发频率控制。当前单账号限制 120 rpm |
账号错误 | 账号余额不足 | 10300 | Insufficient account balance, please recharge | 账号余额不足,请进行充值 |
账号错误 | 账户未认证 | 10301 | Account is not verified, please complete the verification first | 账号未认证,请先认证通过 |
安全错误 | prompt 不安全 | 10400 | Topic violates security policy | 返回的 prompt 内容不符合安全策略 |
安全错误 | answer 不安全 | 10401 | Topic violates security policy | 返回的 answer 内容不符合安全策略 |
服务错误 | 服务内部错误 | 10500 | Internal error | 服务内部发生错误,请稍后再试 |
3. 请求频率限制
当前单账号限制 120 rpm。如果您收到速率限制的报错,则表示您在短时间内发出了太多请求,API 会拒绝新请求,直到经过指定的时间。
4. 附录
python client 示例代码
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
import requests
import json
import time
import hashlib
def calculate_md5(input_string):
md5 = hashlib.md5()
md5.update(input_string.encode('utf-8'))
encrypted = md5.hexdigest()
return encrypted
def do_request():
url = "https://api.baichuan-ai.com/v1/chat"
api_key = "your_api_key"
secret_key = "your_secret_key"
data = {
"model": "Baichuan2-53B",
"messages": [
{
"role": "user",
"content": "世界第一高峰是"
}
]
}
json_data = json.dumps(data)
time_stamp = int(time.time())
signature = calculate_md5(secret_key + json_data + str(time_stamp))
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer " + api_key,
"X-BC-Request-Id": "your requestId",
"X-BC-Timestamp": str(time_stamp),
"X-BC-Signature": signature,
"X-BC-Sign-Algo": "MD5",
}
response = requests.post(url, data=json_data, headers=headers,timeout=60)
if response.status_code == 200:
print("请求成功!")
print("响应header:", response.headers)
print("响应body:", response.text)
else:
print("请求失败,状态码:", response.status_code)
if __name__ == "__main__":
do_request()
最后修改时间: 1 年前