zhayujie / chatgpt-on-wechat

基于大模型搭建的聊天机器人,同时支持 微信公众号、企业微信应用、飞书、钉钉 等接入,可选择GPT3.5/GPT-4o/GPT-o1/ Claude/文心一言/讯飞星火/通义千问/ Gemini/GLM-4/Claude/Kimi/LinkAI,能处理文本、语音和图片,访问操作系统和互联网,支持基于自有知识库进行定制企业智能客服。
https://docs.link-ai.tech/cow
MIT License
30.84k stars 8.07k forks source link

可以设置在微信聊天中切换模型吗? #1735

Closed li5bo5 closed 7 months ago

li5bo5 commented 8 months ago

⚠️ 搜索是否存在类似issue

总结

因为现在很多人都不止一个平台有账户, 多个平台希望可以支持快速切换, 可以在json中添加多个平台的配置信息, 输入平台的/命令 就可以直接在微信对话中切换平台。

举例

比如: 输入/wxyy 就调用文心一言的 输入/tyqw就调用通义千问的 .... 这样快速切换,可玩性就高了很多 /GPT3.5 /GPT4.0 /Claude /WXYY /XFXH /TYQW /Gemini /GLM-4 /LinkAI

动机

/更好用!!!

Simon-leomon commented 8 months ago

好想法,加入一个中间层,可以根据不同大模型的优点来开启一个融合应用,更符合用户需求特色的复合型“智能体”

li5bo5 commented 8 months ago

https://github.com/opentdp/wechat-rest 可以参考项目

li5bo5 commented 8 months ago

因为每次切换模型,都要重启项目,而重启项目要用到电脑、所以如果不能在微信中切换模型的话,就必须搭配电脑才能使用该项目。。。是不是略麻烦。。。如果可以切换,那就可以一次部署,永久使用了,

sisuad commented 8 months ago

我用xinference加载的本地模型,cow不用重启,直接引用xin提供的api,我在xinfernce里任意切换模型,cow就自动引用 了。你可以git上搜一搜它

li5bo5 commented 8 months ago

我用xinference加载的本地模型,cow不用重启,直接引用xin提供的api,我在xinfernce里任意切换模型,cow就自动引用 了。你可以git上搜一搜它

门槛有点高🤣🤣🤣

li5bo5 commented 8 months ago

我用xinference加载的本地模型,cow不用重启,直接引用xin提供的api,我在xinfernce里任意切换模型,cow就自动引用 了。你可以git上搜一搜它

比如出差、旅游、在外地。。想切换模型就很麻烦

QAbot-zh commented 8 months ago

我的做法是:oneapi 项目+ 提示词指令。oneapi项目提供了OpenAI格式的统一调用接口,这样在程序使用不同模型的时候就不需要根据模型文档去写不同的接口bot,只需要通过提示词指令切换不同的模型名称就好了。

li5bo5 commented 8 months ago

我的做法是:oneapi 项目+ 提示词指令。oneapi项目提供了OpenAI格式的统一调用接口,这样在程序使用不同模型的时候就不需要根据模型文档去写不同的接口bot,只需要通过提示词指令切换不同的模型名称就好了。

请问具体是是怎么操作的呢?one api我已经弄好了,渠道里面也添加了,在令牌里面业生成了令牌, 意思就是我在[chatgpt-on-wechat]项目的api里面,只需要填入生成的令牌?? 那么提示词指令怎么设置呢?求大佬指导

QAbot-zh commented 8 months ago

oneapi生成的令牌作为open_ai_api_key,然后oneapi的网址+v1作为open_ai_api_base。 提示词指令需要修改代码,可以自由发挥,参考如下:

# chat_gpt_bot.py

# OpenAI对话模型API (可用)
class ChatGPTBot(Bot, OpenAIImage):
    ....
    def reply(self, query, context=None):
        # acquire reply content
        if context.type == ContextType.TEXT:
            logger.info("[CHATGPT] query={}".format(query))

            session_id = context["session_id"]
            reply = None
            clear_memory_commands = conf().get("clear_memory_commands", ["#清除记忆"])
            if query in clear_memory_commands:
                self.sessions.clear_session(session_id)
                reply = Reply(ReplyType.INFO, "记忆已清除")
            elif query == "#清除所有":
                self.sessions.clear_all_session()
                reply = Reply(ReplyType.INFO, "所有人记忆已清除")
            elif query == "#更新配置":
                load_config()
                reply = Reply(ReplyType.INFO, "配置已更新")
            if reply:
                return reply

            session = self.sessions.session_query(query, session_id)
            logger.debug("[CHATGPT] session query={}".format(session.messages))

            api_key = context.get("openai_api_key")
            model = context.get("gpt_model")
            ''' 这里插入你的模型提示词指令解析 '''
            models_map = {
                "/GPT3.5": "gpt-3.5-turbo",
                "/GPT4": "gpt-4",
                "/xfxh": "讯飞星火",
               # 以此类推,模型名称要跟oneapi里匹配
            }
            for cmd in models_map:
               if query.startswith(cmd):
                   model = models_map[cmd]
                   query = query.lstrip(cmd)
                   break
            ''' 这里插入你的模型提示词指令解析 '''
            new_args = None
            if model:
                new_args = self.args.copy()
                new_args["model"] = model
couurh commented 7 months ago

搞定了吗

couurh commented 7 months ago

搞定了吗

kingdocker commented 7 months ago

目前用管理员命令切换的,不用重启项目:

model xunfei

model gpt-4

……

6vision commented 7 months ago

目前可以使用linkai的服务,根目录配置文件model设为空,通过linkai插件设置群聊和应用的映射,以后在网页切换应用的默认模型即可实时切换模型,可以不同群对应不同应用/不同模型 参考推文