Files
open-xiaoai/examples/migpt/config.ts
T

73 lines
2.1 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import { sleep } from "@mi-gpt/utils";
import { OpenXiaoAIConfig } from "./migpt/xiaoai.js";
export const kOpenXiaoAIConfig: OpenXiaoAIConfig = {
openai: {
/**
* 你的大模型服务提供商的接口地址
*
* 支持兼容 OpenAI 接口的大模型服务,比如:DeepSeek V3 等
*
* 注意:一般以 /v1 结尾,不包含 /chat/completions 部分
* - ✅ https://api.openai.com/v1
* - ❌ https://api.openai.com/v1/(最后多了一个 /
* - ❌ https://api.openai.com/v1/chat/completions(不需要加 /chat/completions
*/
baseURL: "https://api.openai.com/v1",
/**
* API 密钥
*/
apiKey: "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxx",
/**
* 模型名称
*/
model: "gpt-4.1-mini",
},
prompt: {
/**
* 系统提示词,如需关闭可设置为:''(空字符串)
*/
system: "你是一个智能助手,请根据用户的问题给出回答。",
},
context: {
/**
* 每次对话携带的最大历史消息数(如需关闭可设置为:0)
*/
historyMaxLength: 10,
},
/**
* 只回答以下关键词开头的消息:
*
* - 请问地球为什么是圆的?
* - 你知道世界上跑的最快的动物是什么吗?
*/
callAIKeywords: ["请", "你"],
/**
* 自定义消息回复
*/
async onMessage(engine, { text }) {
if (text === "测试播放文字") {
return { text: "你好,很高兴认识你!" };
}
if (text === "测试播放音乐") {
return { url: "https://example.com/hello.mp3" };
}
if (text === "测试其他能力") {
// 打断原来小爱的回复
await engine.speaker.abortXiaoAI();
// 播放文字
await sleep(2000); // 打断小爱后需要等待 2 秒,使其恢复运行后才能继续 TTS
await engine.speaker.play({ text: "你好,很高兴认识你!", blocking: true });
// 播放音频链接
await engine.speaker.play({ url: "https://example.com/hello.mp3" });
// 告诉 MiGPT 已经处理过这条消息了,不再使用默认的 AI 回复
return { handled: true };
}
},
};