普通模式下返回 { content, usage, ... };stream: true 时返回异步迭代器
// 最简调用
// 未填写模型名,会自动使用/v1/models的第一个模型
const { content, usage } = await chatCompletions(
{ baseUrl: "http://127.0.0.1:11434/v1" },
[{ role: "user", content: "你好" }],
);
console.log(content); // "你好!有什么我可以帮你的吗?"
console.log(usage); // { prompt_tokens: 13, completion_tokens: 9, total_tokens: 22 }
// 工具调用
const { content, usage } = await chatCompletions(
{ baseUrl: "http://127.0.0.1:11434/v1", model: "model.gguf", apiKey: "sk-local-no-need-key" },
[{ role: "user", content: "查询上海天气" }],
{
tools: [{
type: "function",
function: {
name: "getWeather",
description: "查询城市天气情况",
parameters: { type: "object", properties: { city: { type: "string" } } },
},
}],
toolHandlers: {
getWeather: (args) => `${args.city}今日晴转多云,25°C`,
},
},
);
兼容 OpenAI API 的聊天补全函数
普通模式下返回 { content, usage, ... };stream: true 时返回异步迭代器
// 最简调用
// 未填写模型名,会自动使用/v1/models的第一个模型
const { content, usage } = await chatCompletions(
{ baseUrl: "http://127.0.0.1:11434/v1" },
[{ role: "user", content: "你好" }],
);
console.log(content); // "你好!有什么我可以帮你的吗?"
console.log(usage); // { prompt_tokens: 13, completion_tokens: 9, total_tokens: 22 }
// 工具调用
const { content, usage } = await chatCompletions(
{ baseUrl: "http://127.0.0.1:11434/v1", model: "model.gguf", apiKey: "sk-local-no-need-key" },
[{ role: "user", content: "查询上海天气" }],
{
tools: [{
type: "function",
function: {
name: "getWeather",
description: "查询城市天气情况",
parameters: { type: "object", properties: { city: { type: "string" } } },
},
}],
toolHandlers: {
getWeather: (args) => `${args.city}今日晴转多云,25°C`,
},
},
);
兼容 OpenAI API 的聊天补全函数