AI 对话与工具
falowp-bot-plugin-ai 提供被 AT 后的对话、上下文记录和工具调用。
添加依赖
dependencies {
implementation("com.blr19c.falowp:falowp-bot-plugin-ai:${VERSION}")
runtimeOnly("org.mariadb.jdbc:mariadb-java-client:${VERSION}")
}
对话历史通过数据库组件保存,因此还需要完成数据库配置。
配置
bot:
plugin:
ai:
apiKey: "YOUR_API_KEY"
baseUrl: "https://api.openai.com"
model: "YOUR_MODEL"
systemPrompt: "你是名为小花落的机器人助手。"
temperature: "0.7"
maxIterations: "10"
contextMaxTurns: "10"
contextMaxMessageChars: "800"
baseUrl 默认 OpenAI 地址;maxIterations 默认 10;上下文默认 10 轮、每条截断到 800 字符。插件在机器人被 AT 时以 Int.MAX_VALUE 顺序兜底匹配,并通过队列串行处理该能力的请求。
注册 AI 工具
@PluginUtils
object WeatherAiTool {
init {
AiToolUtils.registerSimpleTool(
name = "weather",
description = "查询城市天气",
) { args -> queryWeather(args.input) }
}
}
工具名只能包含字母、数字、_、-,长度 1–64。默认不允许覆盖同名工具;需要替换时传 replace=true。复杂工具可用 registerToolFactory,工厂会为当前会话得到带 botApi 的 AiToolContext。
调用限制
限制上下文与迭代次数,给外部工具增加超时、参数校验和权限检查;不要让模型直接拼 SQL、文件路径或平台管理操作。API Key 使用部署密钥,不写入 YAML 样例仓库。