기계 쉘, 인간의 마음.
Yesimbot/Athena는 AI 모델이 그룹 채팅 토론에 참여할 수 있도록 설계된 Koishi 플러그인입니다.
새 문서 사이트는 온라인입니다 : https://yesimbot.ccalliance.tech
사용자 정의하기 쉬운 : 봇의 이름, 성격, 감정 및 기타 추가 메시지는 플러그인 구성에서 쉽게 수정할 수 있습니다.
로드 밸런싱 : 여러 대형 모델 API 인터페이스를 구성 할 수 있으며 Athena는 각 API를 고르게 호출합니다.
몰입 형 인식 : 대형 모델은 날짜와 시간, 그룹 채팅 이름, 메시지 등의 현재 배경 정보를 인식합니다.
홍보 방지 주입 : Athena는 다른 사람들이 로봇이 파괴되는 것을 방지하기 위해 대형 모델을 주입 할 수있는 메시지를 차단합니다.
프롬프트 자동 GET : 직접 만들 필요가 없으며, 다양한 고품질 프롬프트를 상자에서 사용할 수 있습니다.
그리고 더 ...
중요한
계속하기 전에 최신 버전의 Athena를 사용하고 있는지 확인하십시오.
주의
이 섹션을주의 깊게 읽으십시오. 중요합니다.
다음은 구성 파일 사용에 대한 설명입니다.
# 会话设置
Group :
# 记忆槽位,每一个记忆槽位都可以填入一个或多个会话id(群号或private:私聊账号),在一个槽位中的会话id会共享上下文
AllowedGroups :
- 114514 # 收到来自114514的消息时,优先使用这个槽位,意味着bot在此群中无其他会话的记忆
- 114514, private:1919810 # 收到来自1919810的私聊消息时,优先使用这个槽位,意味着bot此时拥有两个会话的记忆
- private:1919810, 12085141, 2551991321520
# 规定机器人能阅读的上下文数量
SendQueueSize : 100
# 机器人在每个会话开始发言所需的消息数量,即首次触发条数
TriggerCount : 2
# 以下是每次机器人发送消息后的冷却条数由LLM确定或取随机数的区间
# 最大冷却条数
MaxPopNum : 4
# 最小冷却条数
MinPopNum : 2
# 每次收到 @ 消息,机器人马上开始做出回复的概率。 取值范围:[0, 1]
AtReactPossibility : 0.50 # 以前这里写错成了 AtReactPossiblilty,现在已经修正了
# 过滤的消息。这些包含这些关键词的消息将不会加入到上下文。
# 这主要是为了防止 Bot 遭受提示词注入攻击。
Filter :
- You are
- 呢
- 大家
# LLM API 相关设置
API :
# 这是个列表,可以配置多个 API,实现负载均衡。
APIList :
# API 返回格式类型,可选 OpenAI / Cloudflare
- APIType : OpenAI
# API 基础 URL,此处以 OpenAI 为例
# 若你是 Cloudflare, 请填入 https://api.cloudflare.com/client/v4
BaseURL : https://api.openai.com/
# 你的 API 令牌
APIKey : sk-XXXXXXXXXXXXXXXXXXXXXXXXXXXX
# 模型
AIModel : gpt-4o-mini
# 若你正在使用 Cloudflare,不要忘记下面这个配置
# Cloudflare Account ID,若不清楚可以看看你 Cloudflare 控制台的 URL
UID: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# 机器人设定
Bot :
# 名字
BotName : 胡梨
# 原神模式(什
CuteMode : true
# Prompt 文件的下载链接或文件名。如果下载失败,请手动下载文件并放入 koishi.yml 所在目录
# 非常重要! 如果你不理解这是什么,请不要修改
PromptFileUrl :
- " https://raw.githubusercontent.com/HydroGest/promptHosting/main/src/prompt.mdt " # 一代 Prompt,所有 AI 模型适用
- " https://raw.githubusercontent.com/HydroGest/promptHosting/main/src/prompt-next.mdt " # 下一代 Prompt,效果最佳,如果你是富哥,用的起 Claude 3.5 / GPT-4 等,则推荐使用
- " https://raw.githubusercontent.com/HydroGest/promptHosting/main/src/prompt-next-short.mdt " # 下一代 Prompt 的删减版,适合 GPT-4o-mini 等低配模型使用
# 当前选择的 Prompt 索引,从 0 开始
PromptFileSelected : 2
# Bot 的自我认知
WhoAmI : 一个普通群友
# Bot 的性格
BotPersonality : 冷漠/高傲/网络女神
# 屏蔽其他指令(实验性)
SendDirectly : true
# 机器人的习惯,当然你也可以放点别的小叮咛
BotHabbits : 辩论
# 机器人的背景
BotBackground : 校辩论队选手
... # 其他应用于prompt的角色设定。如果这些配置项没有被写入prompt文件,那么这些配置项将不会体现作用
# 机器人消息后处理,用于在机器人发送消息前的最后一个关头替换消息中的内容,支持正则表达式
BotSentencePostProcess :
- replacethis : 。$
tothis : ' '
- replacethis : 哈哈哈哈
tothis : 嘎哈哈哈
# 机器人的打字速度
WordsPerSecond : 30 # 30 字每秒
... # 其他配置项参见文档站그런 다음 로봇을 해당 그룹으로 당기십시오. 로봇은 Group.TriggerCount 의 구성에 따라 잠시 동안 잠시 다이빙됩니다. 새 메시지의 수가이 가치에 도달하면 BOT는 토론에 참여하기 시작합니다 (이것은 실제 인간 상황으로 매우 회복됩니다. 그렇지 않습니다).
팁
봇이 너무 활동적이라고 생각되면 Group.MinPopNum 돌릴 수도 있습니다.
경고
주파수 구성은 다음과 같은 관계를 유지해야합니다. Group.MinPopNum < Group.MaxPopNum < Group.SendQueueSize . 그렇지 않으면 문제가 발생합니다.
다음으로 실제 상황에 따라 로봇 설정의 옵션을 조정할 수 있습니다. 이와 관련하여 자유롭게 플레이 할 수 있습니다. 그러나 CloudFlare Workers AI를 사용하는 경우 로봇이 말도 안되는 말을 찾을 수 있습니다. 이것은 Cloudflare Workers AI의 무료 모델의 중국어 코퍼스에 의해 발생합니다. AI 음성의 품질을 보장하면서 더 경제적 인 AI 모델을 선택하려면 ChatGpt-4o-Mini가 현명한 선택 일 수 있습니다. 물론, 당신은 반드시 OpenAI의 공식 API를 사용할 필요는 없습니다. Athena는 OpenAI의 공식 형식을 사용하여 모든 API 인터페이스를 지원합니다.
메모
테스트 후 Claude 3.5 모델은이 시나리오에서 가장 잘 수행되었습니다.
Prompt.mdt 파일을 로컬로 다운로드 한 후, 우리가 잘 쓰지 않는다고 생각하거나 자신의 새로운 아이디어를 가지고 있다면이 부분을 사용자 정의 할 수 있습니다. 다음으로 우리는이 작업을 수행하는 방법을 가르쳐 줄 것입니다.
먼저 구성 페이지 하단의 디버깅 도구 구성 항목에있는 플러그인 구성에서每次启动时尝试更新Prompt 文件옵션을 끄려면 구성이 필요합니다. 그런 다음 Koishi의 탐색기에서 propt.mdt 파일을 찾을 수 있습니다. Koishi와 함께 제공되는 편집기 에서이 파일을 자유롭게 수정할 수 있지만 다음에주의를 기울여야 할 몇 가지 사항이 있습니다.
${config.Bot.BotName} -> 机器人的名字
${config.Bot.WhoAmI} -> 机器人的自我认知
${config.Bot.BotHometown} -> 机器人的家乡
${config.Bot.BotYearold} -> 机器人的年龄
${config.Bot.BotPersonality} -> 机器人的性格
${config.Bot.BotGender} -> 机器人的性别
${config.Bot.BotHabbits} -> 机器人的习惯
${config.Bot.BotBackground} -> 机器人的背景
${config.Bot.CuteMode} -> 开启|关闭
${curYear} -> 当前年份 # 2024
${curMonth} -> 当前月份 # 11
${curDate} -> 当前日期 # 25
${curHour} -> 当前小时 # 10
${curMinute} -> 当前分钟 # 30
${curSecond} -> 当前秒数 # 15
${curGroupName} -> 触发此次调用的消息所在会话的名字。如果是私聊,则为“bot与xxx的私聊”
<img src="https://xxxxx.jpg base64="xx_xxxx"> -> 将交由图片查看器处理的图片 # 没想到吧系统提示词里也可以插图片
[
{
time: "", // 时间戳,格式为yyyy/mm/dd/hh/min/sec
session_id: "", // 此消息所在的会话id,示例:"123456789","private:9876543210"
id: "", // 消息id,bot在需要引用消息时,用它来确定在select中填写的值
author: "", // 消息发送者的名字
author_id: "", // 消息发送者的id
msg: "" // 消息本体
},
{
time: "",
session_id: "",
id: "",
author: "",
author_id: "",
msg: ""
},
...
]
{
"status": "success", // "success" 或 "skip" (跳过回复)
"session_id": "123456789", // 要把finReply发送到的会话id
"nextReplyIn": 2, // 下次回复的冷却条数,让LLM参与控制发言频率
"logic": "", // LLM思考过程
"reply": "", // 初版回复
"check": "", // 检查初版回复是否符合 "消息生成条例" 过程中的检查逻辑。
"finReply": "", // 最终版回复,让LLM在开头添加<quote id=""/>来指定引用回复的消息id
"execute":[] // 要运行的指令列表
}
메모
소품을 직접 수정할 때 LLM의 답장이 필요한 JSON 형식을 충족하는지 확인하십시오. 그러나 일부 항목이 누락 된 경우에는 중요하지 않습니까? σ (° ° д °;) っ
각 대화의 전면 프롬프트는 많은 토큰을 소비하기 때문에 Token 비 청구 API를 사용하는 것이 좋습니다. 다음과 같은 호출에 청구서의 일부 API를 사용할 수 있습니다.
우리의 궁극적 인 목표는 귀하의 계정이 언젠가 Athena에 연결되어 있더라도 그룹 회원은 단서를 찾을 수 없다는 것입니다. 모든 개선 사항은이를 향해 노력하고 있습니다.
기고자 덕분에 아테나를 가능하게 한 것은 여러분이었습니다.
문제를 게시하거나 Athena 공식 교환 및 테스트 그룹에 직접 가입하십시오 : 857518324, 언제든지 방문을 환영합니다!