Mac版 Windows Copilot 基于chatglm 无需联网, 可从不同App内快速启动

Brief

copilot for mac, a pale imitation of windows copilot

 

在学习pyqt的过程中,经常向gpt提问,加快学习进度。但每次遇到问题后【复制–>打开浏览器–>切换标签–>填入输入框并提问】的过程重复多次,总会感到厌烦。为了让自己能够在工作/学习过程中更加专注于内容,而自己又稍微懂一些编程…. 于是,便有了本项目。

本项目在较早时 (本文发布前一个多月) 已经完成,经过这段时间的使用,已经基本满足自己的要求。并且,在这过程中也已经将能够发现并解决的问题处理完成

仓库:https://github.com/craii/mac_companion_for_M_Chip_mac   ||  https://github.com/craii/mac_companion

基本要求

  1. 【断网运行】:因为之前被openAI 封了账号,因此有了被迫害妄想症,总是担心被【卡脖子】,因此这也就有了模型必须能够断网运行的执念;
  2. 【性能】:内存和cpu占用不能太高,如果光是运行模型就赢把机器性能吃完,无法运行平时工作需要用到软件,那是完全没有意义的,因此,程序驻留后台时,肯定不能把电脑卡死;同时,在推理时也要足够快;
  3. 【快捷】:无需复制、粘贴,最好能选中文字,然后直接将这些文字作为prompt,发给模型处理,并得到结果;
  4. 【对话页面】:如果遇到需要追问或提供更长的上下文才能得到更好结果的场景,可以有类似chatgpt的对话页面,获得更好的交互体验;

mac_companion常驻后台,并在mac 顶部菜单栏设置快捷入口。可以让我在绝大多数 app 中,可通过鼠标右键的服务菜单,快速将选中的文字作为 prompt 提交给 Chatglm 并得到答复,当然如果你不想使用chatglm也可以在修改少量代码的情况下,替换为其他支持 openai-like api的模型,或者直接改为调用openai的api。 本项目有两个版本

 

成果展示

  • 在各个App中直接获取文字作为prompt, 省去复制粘贴的重复操作:
  • 运行对话页面:
  • 功能截图

 

业务流程

我们的实现逻辑比较简单,大致就是:copilot启动后,会启动一个监听服务;当监听到苹果的automator脚本发送过来的选中文本后,将其发送给本地模型处理,然后在将模型的回答进行展示出来 (详见下图) 。

可见,通过此流程,可以省略复制、粘贴的过程,便捷性得到了较好的保证。而且,感谢 THUDM  的杰作: chatglm, 以及  li-plus 提供的cpp加速,让在mac上本地低成本运行chatglm模型成为了可能, 并且也提供了不错的webUI。

Mac版

mac companion 业务流程

 

 

如何使用

项目源码已上传至 github: https://github.com/craii/mac_companion

mac_companion常驻 mac 顶部菜单栏。可以让我在绝大多数 app 中,可通过鼠标右键的服务菜单,快速将选中的文字作为 prompt 提交给 Chatglm 并得到答复,当然如果你不想使用chatglm也可以在修改少量代码的情况下,替换为其他支持 openai-like api的模型,或者直接改为调用openai的api。 本项目有两个版本

  • mac_companion: 本仓库,你可以在参照下述安装说明完成 Setup 即可使用;
  • mac_companion【直接运行版】:如果你的 
    mac 使用的是M系列芯片

     ,可转至此仓库 ,参照对应文档下载安装即可。也可以直接下载包含模型和运行环境的整合包(下载后最好用仓库最新代码文件覆盖一下):

整合包 , 提取码:fyEe

整合包已经集成了本项目的虚拟环境、chatglm 所需的虚拟环境 以及 chatglm 模型。下载完成后只需要切换到解压目录下,运行 “`python run.py“` 即可运行(我已在两台m-chip的mac上测试可行)。 “`INTEL芯片“` 的mac未经测试,但应该是不能运行的,因为本项目使用的 chatglm 在进行cpp编译时采用的参数中指定了arm平台。

 

Setup

所需Python版本:

 

  • mac_companion: 3.11.5;
  • chatglm-6b: 3.8.18;

Step 1

下载本仓库

git clone https://github.com/craii/mac_companion.git && cd mac_companion

Step 2

创建虚拟环境

python -m venv venv
source ./venv/bin/activate
pip install -r requirements.txt

注意此时创建了虚拟环境 venv之后,需要记录 venv 中的 python_executable 路径, 假设你运行 Step 1的命令时,是将 documents 路径下, 则 python_executable 路径为:/documents/mac_companion/venv/bin/python

 

Step 3

 

安装 chatglm:

安装完成后请务必先验证其是否被正确安装,并且能够启动 

OpenAI_API

 ,如果正常启动,那么你应该能够在终端看到类似下图的文字:

Mac版

注意:

  • 记录上图中地址 
    127.0.0.1:8001

     中的端口号:

    8001

     ;

  • 记录启动 
    OpenAI_API

     服务时使输入的命令:本项目使用的是量化加速后的 chatglm, 启动命令为:

    cd /Users/YOURNAME/Documents/chatglm.cpp-chatglm3/chatglm_cpp && MODEL=../chatglm3-ggml.bin /Users/YOURNAME/anaconda3/envs/chatglmcpp/bin/uvicorn chatglm_cpp.openai_api:app --host 127.0.0.1 --port 8001

Step 4

 

修改本项目中的 

config.py

 文件:

  • 修改 
    port

     的值为:你看到的端口号 (如以上图为例,则将其修改为8001);

  • 修改 
    aiserver_command

     : 

    cd /Users/YOURNAME/Documents/chatglm.cpp-chatglm3/chatglm_cpp && MODEL=../chatglm3-ggml.bin /Users/YOURNAME/anaconda3/envs/chatglmcpp/bin/uvicorn chatglm_cpp.openai_api:app --host 127.0.0.1 --port 8001

    (根据你的实际情况修改)

  • 修改 
    python_executable

     的值为:

    /documents/mac_companion/venv/bin/python

    (参考Step 2)

 

修改后的 

config.py

 可能如下:

Mac版

 

Step 5

 

  1. 双击 
    copilot.workflow

     ,会自动安装 

    copilot.workflow

    ,然后在打开的页面里,将下图中 

    红框

     和 

    篮框

    部分为 

    mac_companion

     的项目路径;

Mac版

双击后, copilot.workflow 如果没有自动打开,则在 启动台 中找到 自动操作 并用其打开copilot.workflow, 按照要求修改

Mac版

Step 6

 

回到 

mac_companion

 文件夹, 运行 

python App.py

mac_companion【直接运行版】

如果你使 mac_companion【直接运行版】,在本文末尾下载并解压后,按照下方视频,复制run.py的【绝对路径】后,在终端输入

python /Users/yourname/Documents/pythonscripts/mac_companion_PORTABLE/run.py

  即可运行(此处假设run.py的路径为/Users/yourname/Documents/pythonscripts/mac_companion_PORTABLE/run.py)。

To-Do List:

  1. 在chat和setting页面之外,补充history页面,可查询每次对话内容并导出;
  2. 在任一app内指定位置插入模型回答内容;

 

 文件名称:mac_companion.zip
 文件大小:4GB
 下载声明:本站部分资源来自于网络收集,若侵犯了你的隐私或版权,请及时联系我们删除有关信息。
 下载地址:

【仅适用于M-chip的mac】

我用夸克网盘分享了「【latest】mac_companion_PORTABLE.zip」,点击链接即可保存。打开「夸克APP」,无需下载在线播放视频,畅享原画5倍速,支持电视投屏。

链接:https://pan.quark.cn/s/7cb6be5a8d6c

提取码:fyEe

mac默认是2.7,因此对run.py做了对应修改,可直接运行

Elias Cheung
版权声明:本站原创文章,由 Elias Cheung2024-03-03发表,共计3855字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)

无觅相关文章插件,快速提升流量