- 创建并管理与GPT的对话。
- 实时显示上下文tokens窗口。
- 查看并随时设置与GPT对话的参数,例如temperature、top_p、presence_penalty等。
- 专门的通道显示内部过程调用。
- 提供一个文件通道,您可以通过此通道给GPT上传文件或下载文件。
- 语音功能。
- 群聊功能12。
- AI-Care。你的AI可以主动关心你3。
- 可选的插件功能,包括(持续增加与优化中):
- 支持自定义插件。
GPTUI在命令行环境下运行,支持Linux,macOS,Windows和Android平台6。 使用textual-web提供的功能,您还可以在浏览器中运行GPTUI,并分享给远方的好友,不需要对方做任何的准备,也不需要对方具有API Key,只要有网络和浏览器即可👍。
GPTUI提供了轻量级的构建AI应用的Kernel,使您可以方便地拓展GPTUI的功能或构建自己的AI应用。
kernel依赖于jobs和handlers实现具体的功能。要实现新的功能,您只需编写或组合自己的jobs与handlers。 GPTUI的manger和kernel完全不依赖于client应用,您可以轻松地将manger或kernel转移到别的地方使用。GPTUI的应用层(client)采用CVM架构,其中model层提供了基础的可重复使用的与LLM交互的功能模块,不依赖于views和controllers的具体实现,若要构件自己的AI应用,您可以从这里开始,完全复用kernel、manger以及models,若要更换或拓展UI功能,通常您只需要修改controllers以及views。 详请参考开发文档
如果需要用到gptui的部分组件或功能,你可以把gptui当作一个库来导入并使用。
正常使用需要确保网络畅通,可以连接OpenAI。 如果遇到安装问题,请参考troubleshooting。
pip install gptui
在运行之前您需要配置API。 运行:
gptui
指定配置文件:
gptui --config <your_config_file_path>
本程序通过以下步骤加载文件:
- 从
--config
中读取配置文件,如果没有指定,则进行下一步。 - 从用户目录寻找
~/.gptui/.config.yml
,如果没有,则进行下一步。 - 拷贝默认的配置文件
gptui/config.yml
到~/.gitui/.config.yml
并使用。
git clone https://github.com/happyapplehorse/gptui.git
cd gptui
pip install .
在运行之前需要配置API。 运行:
gptui
# 或者您也可以
# python -m gptui
您还可以直接运行启动脚本(这样允许您修改源代码并即刻运行): 首先,安装依赖:
pip install -r requirements.txt
然后,运行启动脚本:
python main.py
当使用python main.py
或python -m gptui
来运行本程序时,使用gptui/config.yml
作为配置文件。
在Linux或macOS系统下,如果要使用语音功能,还需要额外安装pyaudio。
在~/.gptui/.env_gptui
中配置相应的API Keys。参考.env_gptui.example文件。当使用“WebServe”插件时,需提供GOOGLE_KEY
和GOOGLE_CX
,它们可免费地从谷歌获取。
配置文件的示例请参考./config.yml
,其中列出了所有可配置的选项。
根据您所使用的平台,最好配置以下选项:
- os: 系统平台
否则,部分功能可能不能正常使用,比如复制代码与语音相关功能。
详细的配置说明请查看这里。
- chat area: 聊天内容的显示区域。
- status area: 程序状态显示区域。显示响应动画以及通知等。
- input area: 聊天内容的输入区域。
- auxiliary area: 辅助信息区域,显示程序内部与LLM的“内部交流”,包括函数调用信息等。
- control area: 程序的控制区,在这里可以显示和设置程序的状态,例如动态地控制OpenAI的聊天参数。
- chat tabs: 对话标签页。
- conversation control: 对话的控制按钮。从上到下依次为:
+
: 新建对话>
: 保存对话<
: 载入对话-
: 删除对话x
: 删除对话文件n
: 新建一次性对话↥
: 上传文件。
- panel selector: 面板选择区域。从上到下依次为:
C
: 对话的文件记录。D
: 系统文件树。A
: 辅助信息面板。T
: 文件管道面板。P
: 插件选择面板。
- switches:直接控制开关。从左到右依次为:
R
: 程序状态自动保存与恢复开关。V
: 语音开关。S
: 语音朗读回复开关。F
: 折叠聊天中的文件。|Exit|
: 退出程序。
- dashboard:聊天的上下文窗口的大小。
- others:
<
: 前一个聊天。>
: 后一个聊天。1
: 聊天的数量。☌
: 运行状态。↣
: 折叠右侧非聊天区。?
: 帮助文档。
☌: 就绪状态。
☍:有任务正在运行。
在control area中切换到S
,输入命令后回车。目前支持以下命令:
- 设置聊天参数
命令:set_chat_parameters()
参数:字典形式的OpenAI聊天参数,参考OpenAI Chat。
示例:set_chat_parameters({"model": "gpt-4", "stream": True})
- 设置最大发送token数量的比例
命令:set_max_sending_tokens_ratio()
参数:发送token数量占总的token窗口的比例,float的形式。剩余的token数量作为GPT返回token数的限制。
示例:set_max_sending_tokens_ratio(0.5)
GPTUI为常用功能提供了快捷键,参考帮助。
另外,您还可以按ESC
,ctrl+[
或者ctrl+/
来呼出快捷键菜单(此种方式的快捷键功能更全,但与直接的快捷键键位并不完全一致.)。
GPTUI的部分插件功能需要依靠提示词,您可以继续帮助我完善这些提示词。 我希望在一些状态变化时,有合适的动画提示,如果您有好的创意,欢迎帮我实现它。 每个贡献者可以在程序中留下一条语录。
本项目使用OpenAI的文本转语音(TTS)服务来生成语音输出 请注意,您听到的声音不是由真人发出的,而是由人工智能技术合成的。
GPTUI 建立在众多优秀的开源组件基础之上,遵循和使用 MIT License 开源协议,您可以自由地使用。
Footnotes
-
本插件使用了open-interpreter , 需要先按open-interpreter的说明配置好open-interpreter的环境和API。 Open-interpreter具有执行代码的权限,在开启此功能前请确保你已经了解其中的风险。 ↩
-
Windows平台我还没有测试,部分功能的驱动还没有写,例如代码复制,语音功能等,后续会完善相关功能。 在Android上运行时,请使用Termux终端工具,部分拓展功能例如代码复制和语音功能需要安装Termux-API并赋予权限。 ↩