aardio 文档

web.rest.aiChat 库模块帮助文档

调用 AI 大模型指南 入门范例 temperature 参数

web.rest 成员列表 #

web.rest.aiChat #

用于调用 Anthropic 或 OpenAI 兼容 AI 聊天接口。
范例
如果需要 Web 聊天界面可参考 web.form.chat 库源码。

web.rest.aiChat() #

返回对象:webRestAiChatObject

web.rest.aiChat(config) #

web.rest.aiChat(  
    proxy = proxy,  
    model = "@claude-3-5-sonnet-latest",  
    temperature = 0.1,  
    maxTokens = 1024,  
    url = ""  
)/*创建 AI 聊天客户端。参数说明:  
url 指定 Anthropic 或 OpenAI 兼容接口网址,如果网址只有域名没有路径则自动追加"/v1"后缀。  
└── 接口网址兼容 Ollama,兼容豆包或通义智能体接口。  
model 指定模型名称,首字符为 @ 则使用 Anthropic 接口。  
可选用 proxy 指定代理服务器,代理格式: https://www.aardio.com/zh-cn/doc/library-guide/std/inet/proxy   
关于 temperature 参数请参考: https://www.aardio.com/zh-cn/doc/guide/ide/ai#temperature,  
可选指定 topP,但一般建议调整 temperature 而不是 topP,topP 不指定保持默认值即可。  
可选用 maxTokens 限定最大回复长度。  
可选指定 tools 字段以支持 function call 。  
可选用 toolChoice 字段指定工具调用规则,默认值为 "auto"。   
可选用字段 stop 指定停止输出的 token 或 token 数组。  
可选使用 reasoning.effort / reasoning.maxTokens 字段控制推理强度。*/

webRestAiChatObject 成员列表 #

webRestAiChatObject._http #

inet.http客户端,用于执行 http 请求

返回对象:inetHttpObject

webRestAiChatObject.addHeaders #

替换所有请求默认添加的HTTP头
请求结束时不会清空此属性
该值可以是一个字符串,也可以是键值对组成的table对象

webRestAiChatObject.apiMode #

会自动设置为 "anthropic" 或 "aliyun", null 等值。
不允许手动修改此属性。

webRestAiChatObject.close() #

关闭对象释放资源

webRestAiChatObject.external #

webRestAiChatObject.external = {
    getWeather = function(){
        return "24℃";
    };/*external 表用于定义的 AI 可以调用的函数。  
用于支持 OpenAI 兼容接口的 function calling 功能。  
创建 web.rest.aiChat 对象时,参数表必须通过 tools 字段声明允许被调用的函数。*/
}

webRestAiChatObject.extraParameters #

指定附加到所有请求参数中的默认参数
该值应当是一个表,请求参数指定表对象时或为null才会附加extraParameters

webRestAiChatObject.extraUrlParameters #

指定附加到所有请求 URL 的默认参数。
该值可以是一个表或字符串。
表参数使用 inet.url.stringifyParameters 转换为字符串。
表中的值如果是函数则每次请求都调用该函数取值

webRestAiChatObject.get(网址,参数表) #

使用该GET方法提交请求,获取资源
请求参数将会自动转换为URL附加参数,
请求参数可以指定表或字符串,如果是表请求前会转换为字符串
成功返回数据,失败返回空值,错误信息,错误代码

webRestAiChatObject.lastResponse() #

获取最后一次服务器返回的数据,流式调用时此函数返回值无意义。
如果控制台已打开或在开发环境中导入 console 库则在控制台输出数据
下载文件时该值为空

webRestAiChatObject.lastResponseError() #

返回服务器最后一次返回的错误响应,并转换为错误对象。
与调用 API 时转换响应数据一样,支持相同的服务器响应格式 。
如果错误来自本地(lastStatusCode 属性为 null)则此函数返回 null 。
如果最后一次发生请求成功,则此函数返回 null 。

如果在参数 @1 中指定返回字段,且错误对象包含该字段则使用直接下标获取并返回字段值。
获取字段失败返回 null 而非抛出异常

webRestAiChatObject.lastResponseObject() #

获取最后一次服务器返回的对象(已将响应文本解析为对象),
如果是 SSE 流式调用,返回最后一次接受的包含 token 计数的对象
请求失败,或者下载文件时此属性值为空。

webRestAiChatObject.lastResponseString() #

获取最后一次服务器返回的原始数据,流式调用时此函数返回值无意义。
请求失败,或者下载文件时此属性值为空

webRestAiChatObject.lastStatusCode #

获取最近一次请求返回的HTTP状态码
100 ~ 101 为信息提示
200 ~ 206 表示请求成功
300 ~ 305 表示重定向
400 ~ 415 表求客户端请求出错
500 ~ 505 表示服务端错误

webRestAiChatObject.lastStatusMessage() #

获取最近返回的HTTP状态码文本描述
第二个返回值为状态码

webRestAiChatObject.listModels() #

返回接口支持的模型信息列表。
有些服务端不支持这个接口。

webRestAiChatObject.messages #

调用聊天会话接口。

webRestAiChatObject.messages(msg,writeDelta,extraParams) #

调用聊天会话接口。
msg 参数指定 web.rest.aiChat.message 对象。
可选用 writeDelta 指定 AI 以流式回复时接收文本的回调函数。
└── 回调参数为文本时则应输出增量回复,回调参数为 null 时完成输出。
└── 不指定 writeDelta 参数则禁用流式回复,函数直接返回表对象。
└── writeDelta 函数内返回 false 停止接收回复。
参数 extraParams 可选用一个表指定要发送的其他请求参数。

webRestAiChatObject.ok() #

最后一次请求是否成功
服务器应答并且状态码为2XX该函数返回真

webRestAiChatObject.onDeltaToolCalling #

webRestAiChatObject.onDeltaToolCalling = function(toolCalls,finishReason){
    /*自定义流式回复中的 tool_calls 处理方法。  
一般不建议定义或使用此回调函数,用法请参考库源码 */
}

webRestAiChatObject.post(网址,参数表) #

使用该POST方法提交请求,新增或修改资源
请求参数可以指定表或字符串,如果是表请求前会转换为字符串
成功返回数据,失败返回空值,错误信息,错误代码

webRestAiChatObject.referer #

引用页地址。
如果此属性指定了一个值,则每次请求都会使用该引用页。
如果不指定,每次请求都会自动设置上次请求的网址为引用页。
这个属性不像 inet.http 对象的 referer 属性那样每次请求结束都会清空。

webRestAiChatObject.setHeaders #

设置所有请求默认添加的HTTP头

webRestAiChatObject.setHeaders(headers) #

参数 @headers 必须指定一个表中,
用该表中的键值对更新 addHeaders 属性中的键值
如果addHeaders的原属性值不是一个表,则先清空该属性

webRestAiChatObject.setTimeouts(连接超时,请求超时,接收超时) #

设置超时,以亳秒为单位(1秒为1000毫秒)。

webRestAiChatObject.config 成员列表 #

自定义的 API 配置表。
默认指向创建对象时指定的表参数。

webRestAiChatObject.config.reasoning #

推理配置表。
如果仅指定空表 {} 则启用推理模式。
默认启用推理的模型可用 {maxTokens=0} 禁用推理。

指定 maxTokens 字段可限制推理消耗的最大 tokens 。

也可以通过 effort 字段指定 "high", "medium", 或 "low" 之一的值设置推理强度。
这两个字段可以自动转换以兼容不同接口。

注意不是所有大模型都支持此设置。

Markdown 格式