Project Icon

text-generation-webui-telegram_bot

功能丰富的Telegram AI聊天机器人扩展

text-generation-webui的Telegram机器人扩展,支持多种语言模型和丰富功能。具备按钮交互、角色扮演和图像生成能力,可独立运行或作为扩展使用。提供独立用户会话、历史记录保存和防刷屏等实用特性,支持Google Colab运行。安装配置简便,适合个人和群组聊天使用。

Image1

llama.cpp(默认)、exllama或transformers的封装器。 & oobabooga/text-generation-webui的扩展。

为Telegram聊天提供各种额外功能,如按钮、前缀、语音/图像生成。


如何安装(独立应用):

  1. 克隆此仓库
    git clone https://github.com/innightwolfsleep/llm_telegram_bot
  2. 安装依赖
    pip install -r llm_telegram_bot\requirements_app.txt

如何运行(独立应用):

  1. https://t.me/BotFather 获取机器人令牌
  2. 将机器人令牌添加到环境变量(参见.env.example)或configs\telegram_token.txt文件
  3. 将模型文件移至models\
  4. configs\app_config.json中设置model_path为你的模型路径
  5. 启动run.cmd(Windows)或run.sh(Linux)

(可选)使用exllama:

git clone https://github.com/turboderp/exllama source\generators\exllama
pip install -r source\generators\exllama\requirements.txt

(可选)使用exllamav2:

git clone https://github.com/turboderp/exllamav2 source\generators\exllamav2
cd source\generators\exllamav2
python setup.py install --user

(可选)要使用GPU加速的llama.cpp,请按照指南重新安装abetlen/llama-cpp-python:llama-cpp-python#installation-with-hardware-accelerationWindows指南


如何安装(扩展模式):

  1. 首先安装oobabooga/text-generation-webui,添加模型,设置所需选项
  2. 运行cmd_windows.batcmd_linux.sh以启用虚拟环境
  3. 将此仓库克隆到"text-generation-webui\extensions"
    git clone https://github.com/innightwolfsleep/text-generation-webui-telegram_bot extensions\telegram_bot
  4. 安装依赖
    pip install -r extensions\telegram_bot\requirements_ext.txt

如何使用(扩展模式):

  1. https://t.me/BotFather 获取机器人令牌
  2. 将机器人令牌添加到extensions\telegram_bot\configs\telegram_token.txt文件或oobabooga环境中
  3. 在CMD_FLAGS.txt中添加标志--api --extension telegram_bot
  4. 运行相应的start_OS脚本 (目前不支持直接集成)

如何安装/使用(Google Colab):

  1. manuals/llm_telegram_bot_cublas.ipynb运行笔记本
  2. 安装,设置机器人令牌,运行

(可选)如果遇到网络问题,请在app_config.json中将proxy_url更改为你自己的代理。例如:https://127.0.0.1:10808

功能:

  • 聊天模板(参见[manuals/custom_prompt_templates.md])
  • 聊天和笔记本模式
  • 所有用户的会话是分开的(按chat_id)
  • 本地会话历史 - 服务器重启后对话不会丢失。用户和角色之间的历史记录是分开的。
  • 生成过程中显示"X正在输入"(用户不会认为机器人卡住了)
  • 按钮:扮演、继续上一条消息、重新生成最后一条消息、从历史记录中删除最后几条消息、重置历史按钮、新角色加载菜单
  • 可以通过按钮从text-generation-webui\characters加载新角色
  • 可以在对话过程中通过按钮加载新模型
  • "+"或"#"用户消息前缀用于扮演:"#Chiharu sister"或"+Castle guard"。甚至可以让机器人生成你自己的消息"+You"
  • "-"或"!"前缀替换机器人最后一条消息
  • "++"前缀在聊天中替换机器人名字(切换到另一个角色)
  • "--"前缀在聊天中替换你的名字
  • "=="前缀将消息添加到上下文
  • "📷"前缀通过SD api生成照片。写成"📷Chiharu Yamada",而不是单独的"📷"。需要先运行(StableDiffusion)并带--api参数。
  • 通过下载/转发聊天.json文件来保存/加载历史记录
  • 集成自动翻译(可以设置模型/用户语言参数)
  • 语音生成(silero),英语和俄语版本
  • .cfg中的translation_as_hidden_text选项 - 如果你想用机器人学习英语
  • telegram_users.txt - 允许使用的用户列表(如果为空 - 允许所有人使用)
  • 防刷屏 - 每个用户每15秒只能发送一条消息
  • 改进的群聊模式

配置:

app_config.json - 作为独立应用运行的配置(使用run.shrun.cmdext_config.json - 作为oobabooga/text-generation-webui扩展运行的配置

x_config.json
    bot_mode=admin
        特定的机器人模式。admin用于个人使用
            - admin - 机器人以聊天模式回答所有人。所有按钮(包括全局设置)对所有人可用。(默认)
            - chat - 机器人以聊天模式回答所有人。所有按钮(除全局设置外)对所有人可用。(推荐用于聊天)
            - chat-restricted - 与chat相同,但用户不能更改默认角色
            - persona - 与chat-restricted相同,但重置/重新生成/删除消息功能也不可用。
            - notebook - 笔记本模式。不会自动添加前缀,只用"\n"分隔用户和机器人消息。限制与聊天模式相同。
            - query - 与notebook相同,但没有历史记录。每个问题对机器人来说都像新对话,不受之前问题影响
    user_name_template=
        用户名模板,适用于群聊。
        如果为空,机器人总是获取用户的默认名称 - You。默认情况下,即使在群聊中,机器人也将所有用户视为单一实体"You"
        但可以通过模板强制机器人识别Telegram用户名:
            FIRSTNAME - 用户名(Jon)
            LASTNAME - 用户姓(Dow)
            USERNAME - 用户昵称(superguy)
            ID - 用户ID(999999999)
        因此,user_name_template="USERNAME FIRSTNAME ID"转换为用户名"superguy Jon 999999999"
        但如果你计划使用模板和群聊 - 你应该在stopping_strings中添加"\n"符号以防止机器人冒充!!!
    generator_script=GeneratorLlamaCpp
        生成器脚本名称(generators文件夹):
            - generator_exllama - 基于llama-cpp-python,推荐
            - generator_llama_cpp - 基于llama-cpp-python,推荐
            - generator_langchain_llama_cpp - 基于langchain+llama
            - generator_transformers - 基于transformers,未经测试
            - generator_text_generator_webui_openapi - 使用oobabooga/text-generation-webui OpenAPI扩展
            - (已损坏) generator_text_generator_webui - 集成到oobabooga/text-generation-webui的模块(目前已损坏:()
            - (已过时) generator_text_generator_webui_api - 使用oobabooga/text-generation-webui API(旧API版本)
    model_path=models\llama-13b.ggml.q4_0.gguf
        模型文件或目录路径
    characters_dir_path=characters
    default_char=Example.yaml
        默认角色和角色文件夹路径
    presets_dir_path=presets
    default_preset=Shortwave.yaml
        默认生成预设和预设文件夹路径
    model_lang=en
    user_lang=en
        默认模型和用户语言。用户语言可以由用户个别切换。
    html_tag_open=<pre>
    html_tag_close=</pre>
        TG中机器人回答的标签。默认为预格式化文本(pre)
    history_dir_path=history
        用户历史记录目录
    token_file_path=configs\\telegram_token.txt
        机器人令牌。向https://t.me/BotFather询问
    admins_file_path=configs\\telegram_admins.txt
        ID在admins_file中的用户切换到管理员模式,可以选择全局设置(生成设置和模型)
    users_file_path=configs\\telegram_users.txt
        如果users_file中只有一个ID - 机器人将忽略除此ID(多个ID)外的所有用户。即使是管理员也会被忽略
    generator_params_file_path=configs\\telegram_generator_params.json
        默认文本生成参数,被选择的预设覆盖
    user_rules_file_path=configs\\telegram_user_rules.json
        用户规则矩阵
    telegram_sd_config=configs\\telegram_sd_config.json
        Stable Diffusion API配置
    stopping_strings=<END>,<START>,end{code}
        生成设置 - 哪些文本模式停止文本生成?如果机器人发送太多文本,请添加"\n"。
    eos_token=None
        生成设置
    translation_as_hidden_text=on
        如果为"on"且模型/用户语言不同 - 翻译将写在隐藏文本下。如果为"off" - 翻译不隐藏,消息中没有原文。
    sd_api_url="http://127.0.0.1:7860"
    Stable Diffusion API URL,需要使用"photo"前缀
    proxy_url
        用于避免提供商封锁

generator_params.json
    生成器配置

sd_config.json
    Stable Diffusion配置

telegram_admins.txt
    强制使用管理员模式的用户ID列表。如果telegram_users不为空 - 也必须在telegram_users中!

telegram_users.txt
    允许与机器人交互的用户ID(或群组ID)列表。如果为空 - 允许所有人

telegram_token.txt(你也可以使用.env替代)
    Telegram机器人令牌
telegram_user_rules.json
各种机器人模式的按钮可见性配置

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号