FreeClaude35Assistant 是一个基于 Python 开发的 AI 助手应用程序,集成了强大的 Claude-3-5-Sonnet 模型。该项目提供了终端和图形界面两种交互模式,支持实时流式输出,为用户带来流畅的对话体验。项目地址:https://github.com/xwy-morax/FreeClaude35Assistant
-
Claude-3-5-Sonnet 模型集成:
- 免费使用,不限速,不限量
- 当前最强大的 AI 模型之一,具有卓越的理解和生成能力
-
双模式支持:
- 终端模式:适合命令行爱好者
- 图形界面模式:提供直观的可视化交互
-
实时流式输出:
- 在终端和图形界面中实现 AI 响应的实时显示
- 使用普通 Python 终端实现炫酷的实时输出效果,非伪效果
-
多行输入支持:方便用户输入复杂问题或长文本
-
响应时间统计:显示首次响应时间和总耗时
-
可中断响应:用户可随时停止 AI 输出
本项目的一大亮点是在终端和 tkinter 图形界面中实现了真正的实时流式输出,具体实现如下:
-
终端模式:
- 利用 Python 的
print
函数结合end=''
和flush=True
参数 - 示例代码:
print(data, end='', flush=True)
- 这种方式可以在没有任何修改的普通终端中实现炫酷的实时输出效果
- 利用 Python 的
-
图形界面模式:
- 使用 tkinter 的
after
方法定期更新文本框内容 - 示例代码:
self.master.after(10, self.process_response)
- 通过频繁更新 UI,实现流畅的实时显示效果
- 使用 tkinter 的
本项目直接集成了 Claude-3-5-Sonnet 模型,这是当前最先进的 AI 模型之一。关键特性包括:
- 免费使用:无需支付任何费用
- 不限速:快速响应用户请求
- 不限量:可以无限次使用,不受配额限制
通过 API 调用实现:
url = "http://154.40.59.71:3000/v1/chat/completions"
headers = {
'Authorization': 'Bearer sk-7C6d3vJK6LTKvuN5Eb6091Ff7663440cB703B17628907291',
'Content-Type': 'application/json; charset=utf-8'
}
payload = {
"messages": messages,
"model": "claude-3-5-sonnet-20240620",
"stream": True,
}
应用程序启动时,用户可以选择以下两种模式之一:
- 终端模式:适合喜欢命令行界面的用户,支持多行输入和实时输出。
- 图形界面模式:提供直观的可视化界面,适合大多数用户使用。
- 支持多行输入,按两次 Enter 键发送消息
- 实时显示 AI 响应,模拟打字机效果
- 提供独立的停止按钮窗口,随时中断 AI 输出
- 显示响应时间统计
- 美观的聊天界面,支持滚动查看历史消息
- 多行输入框,支持 Shift+Enter 换行
- 实时显示 AI 响应,自动滚动
- 内置停止按钮,方便中断长回答
为了帮助用户了解 AI 的响应速度,应用程序会显示两个时间指标:
- 首次响应时间:从发送请求到收到 AI 的第一个字符的时间
- 总耗时:从发送请求到接收完整响应的总时间
- 使用独立线程处理 AI 请求,确保 UI 响应性
- 通过队列实现线程间通信,保证数据传输的安全性
在运行程序之前,请确保已安装所需的 Python 库:
pip install requests
-
克隆项目仓库:
git clone https://github.com/xwy-morax/FreeClaude35Assistant.git
-
进入项目目录:
cd FreeClaude35Assistant
-
运行主程序:
python main.py
-
在弹出的窗口中选择运行模式(终端或图形界面)
- 选择终端模式后,会出现一个用于停止 AI 输出的小窗口,保持它打开。
- 在终端中,您可以开始输入消息。支持多行输入,按两次 Enter 键发送消息。
- AI 的响应会实时显示在终端中,呈现出炫酷的打字机效果。
- 如需停止 AI 的输出,点击小窗口中的"停止 AI 输出"按钮。
- 输入"退出"、"exit"或"quit"(不区分大小写)来结束对话。
- 选择图形界面模式后,会打开主程序窗口。
- 在底部的文本框中输入您的消息。使用 Shift+Enter 换行,直接按 Enter 发送消息。
- AI 的响应会实时显示在上方的聊天记录区域。
- 使用"发送"按钮或按 Enter 键发送消息。
- 如需停止 AI 的输出,点击"停止"按钮。
- 关闭窗口即可退出程序。
- 流式处理:通过流式处理 AI 的响应,大大减少了等待时间。
- 多线程设计:将 AI 请求和响应处理放在单独的线程中,确保 UI 响应性。
- 动态 UI 更新:采用定期检查队列的方式更新 UI,平衡实时性和性能消耗。
- 内存管理:使用队列管理 AI 响应,避免将全部响应存储在内存中。
- 支持多种 AI 模型:可以轻松集成其他 AI 模型。
- 对话历史管理:添加保存和加载对话历史的功能。
- 主题定制:为图形界面模式添加多种颜色主题。
- 国际化支持:添加多语言支持。
- 语音输入输出:集成语音识别和语音合成功能。
- 图像处理能力:允许用户上传图片,并由 AI 进行分析或描述。
- API 密钥保护:避免在代码中硬编码 API 密钥。
- 输入验证:对用户输入进行 sanitization,防止潜在的注入攻击。
- HTTPS:确保与 AI 服务器的通信使用 HTTPS 加密。
- 错误处理:完善错误处理机制,避免泄露敏感信息。
本项目采用 MIT 许可证。您可以自由使用、修改和分发本代码,但请保留原作者的版权声明。
我们欢迎对本项目的贡献!如果您想为项目做出贡献,请遵循以下步骤:
- Fork 本仓库
- 创建您的特性分支 (git checkout -b feature/AmazingFeature)
- 提交您的更改 (git commit -m 'Add some AmazingFeature')
- 推送到分支 (git push origin feature/AmazingFeature)
- 打开一个 Pull Request
Q: 应用程序支持哪些操作系统? A: 本应用程序支持 Windows、macOS 和 Linux 等主流操作系统。
Q: 如何处理网络连接不稳定的情况? A: 程序已实现了基本的错误处理。对于网络不稳定的情况,您可以尝试重新发送消息或检查网络连接。
Q: 是否支持离线使用? A: 不支持。本应用程序需要连接互联网才能访问 Claude-3-5-Sonnet AI 服务。
FreeClaude35Assistant 项目展示了如何将先进的 AI 模型 Claude-3-5-Sonnet 集成到简单而功能强大的用户界面中。通过支持终端和图形界面两种模式,以及实现真正的实时流式输出,本项目为不同类型的用户提供了灵活的交互方式。
项目的核心优势在于:
- 免费使用 Claude-3-5-Sonnet 模型,不限速,不限量
- 在普通 Python 终端中实现炫酷的实时输出效果
- 简洁而强大的代码实现,为进一步开发和定制提供了坚实的基础
我们鼓励开发者和用户探索这个项目,尝试不同的使用场景,并为其贡献新的想法和改进。无论您是 AI 爱好者、学生还是专业开发者,FreeClaude35Assistant 都可以作为学习和实验的绝佳平台。
最后,我们期待看到这个项目如何在社区的参与下不断发展和改进。您的反馈和贡献将帮助我们打造一个更加强大和用户友好的 AI 助手应用程序。让我们一起探索 AI 的无限可能性!