SDK 配置
接口流控
千帆 SDK 内设了多种参数供用户设置,目前支持如下三种配置方式,按优先级从低到高排序:
从 DotEnv 文件中读取。参考配置文件以及参数类型点此。SDK 默认读取工作目录下的
.env文件进行配置,用户可以在程序运行前设置环境变量QIANFAN_DOT_ENV_CONFIG_FILE来指定需要使用的配置文件。通过环境变量读取。可配置的参数与方式 1 相同。举个例子,在代码中,用户可以这么设置:
# 通过环境变量传递
import os
os.environ["QIANFAN_ACCESS_KEY"]="..."
os.environ["QIANFAN_SECRET_KEY"]="..."
NOTE: 如果在代码中使用环境变量进行配置,请在设置时,将相关设置代码置于实际使用的代码前:
import os import qianfan # 这样设置的参数是生效的 os.environ["QIANFAN_QPS_LIMIT"] = "1" qianfan.ChatCompletion() # 这样设置的参数是不生效的 qianfan.ChatCompletion() os.environ["QIANFAN_QPS_LIMIT"] = "1"
在代码中通过
get_config()获取全局配置单例,并直接修改字段值。这种方式的优先级最高,且设置即生效。
import qianfan
config = qianfan.get_config()
config.AccessKey = "..."
config.SecretKey = "..."
chat_comp = qianfan.ChatCompletion()
接口流控
千帆 SDK 支持对用户接口的请求进行限流,以防止超额请求带来的潜在问题。
若用户有自行配置限流的需求,只需要在创建对象时传入名为 query_per_second 的浮点参数,或者设置名为 QIANFAN_QPS_LIMIT 的环境变量即可限制接口的请求 QPS
创建对象时传入的实参,其应用优先级高于环境变量。
一个构造案例如下所示
import qianfan
chat_comp = qianfan.ChatCompletion(query_per_second=0.5)
request_id
千帆SDK支持对用户对接口请求进行track,可以传入request_id作为参数以标记一次resources api 调用, 并在返回值中的header X-Baidu-Request-id 得到相对应的request_id
不传入request的情况下,sdk将生成随机的request_id
示例如下:
import qianfan
chat_comp = qianfan.Completion()
chat_comp = do(prompt="hi", request_id="sdk_01")