跳转至

ℹ️ 适配OpenAI接口格式的大部分模型的请求方法

目前已经有大量模型支持了OpenAI格式,或者您可能需要使用中转服务来使用OpenAI的服务。我们为这样的场景也提供了支持。

需要注意,虽然各类格式兼容或是中转服务号称适配了OpenAI格式,但在包裹的时候,可能隐藏了一些条件(比如消息列不能有两条system消息,或是消息列必须严格遵循User-Assistant-User这样的顺序),直接按使用OpenAI原生接口的习惯去使用,会出现各种意外错误难以排查,因此我们推荐您使用我们定制的OAIClient进行请求,而不要使用OpenAI的原生客户端。我们在OAIClient里为您针对各种消息列异常进行了适配。

请求配置

import Agently
agent = (
    Agently.create_agent()
        .set_settings("current_model", "OAIClient")
        .set_settings("model.OAIClient.auth", { "api_key": "<中转服务商提供的API-Key>" })
        .set_settings("model.OAIClient.options", { "model": "<中转服务商许可的模型名>" })
        # 如果您需要使用转发Base URL,通常为https://base_domain_name.com/v1这样的格式
        .set_settings("model.OAIClient.url", "<中转服务商为您提供的url,注意,不需要带上/chat/completions这部分>")
        # Proxy代理同样适用
        .set_settings("proxy", "http://127.0.0.1")
)

Chat模型和Completions模型

我们也对Chat模型和Completions模型(模型名字中通常不带-chat标识)进行了分别的支持,您可以通过以下方式声明不同类型的模型:

# 如果您使用的是Chat模型
# 直接使用.start()指令发起请求即可
agent.input().start()

# 如果您使用的是Completions模型
# 可以在.start()指令中加入"completions"标识声明
agent.input().start("completions")

httpx客户端定制参数

在某些情况下,开发者可能会需要对模型请求底层的httpx客户端进行定制,比如设置鉴权信息等。我们也为您提供了设置的方法。

import Agently
agent = (
    Agently.create_agent()
        .set_settings("current_model", "OAIClient")
        .set_settings("model.OAIClient.auth", { "api_key": "<中转服务商提供的API-Key>" })
        .set_settings("model.OAIClient.options", { "model": "<中转服务商许可的模型名>" })
        .set_settings("model.OAIClient.url", "<中转服务商为您提供的url,注意,不需要带上/chat/completions这部分>")
        # 通过下面的指令调整httpx的客户端参数设置,下面以修改verify信息为例
        .set_settings("model.OAIClient.httpx.options", { "verify": "<您的certification>" })
        .set_settings("proxy", "http://127.0.0.1")
)