Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🤖 Yuan's LLM Chat Bot

English | 简体中文

一个基于 Streamlit 和 Claude AI 构建的轻量级聊天机器人应用

Python Streamlit License


Demo

📖 项目简介

Yuan's LLM Chat Bot 是一个基于 Streamlit 和 Claude AI(Haiku 模型)构建的轻量级、用户友好的聊天机器人应用。该项目展示了如何创建一个具有对话历史、API 密钥管理和速率限制的交互式聊天界面。

项目演示

✨ 功能特性

  • 💬 交互式聊天界面:由 Streamlit 驱动的简洁直观的聊天 UI
  • 🔑 灵活的 API 密钥管理:支持自定义 API 密钥或默认配置
  • 📝 对话历史记录:保留最近 10 条消息作为上下文
  • ⏱️ 速率限制:内置速率限制(请求间隔 1 秒)防止 API 滥用
  • 🎨 Markdown 支持:响应内容支持富文本格式,包括代码块、列表和内联代码
  • 🕒 时间戳显示:为每条消息显示时间戳,便于追踪对话
  • 🐳 Docker 支持:通过 Docker 容器化轻松部署
  • ⚡ Token 高效:使用 Claude 3 Haiku 模型(可更改)实现经济高效的对话

🚀 快速开始

环境要求

安装步骤

  1. 克隆仓库

    git clone https://github.com/geekie-yuan/chatBot
    cd chatBot
  2. 安装依赖

    pip install -r requirements.txt
  3. 运行应用

    streamlit run claude_chat.py
  4. 打开浏览器

    访问 http://localhost:8501

🐳 Docker 部署

  1. 构建 Docker 镜像

    docker build -t claude-chatbot .
  2. 运行容器

    docker run -p 8501:8501 claude-chatbot
  3. 访问应用

    在浏览器中打开 http://localhost:8501

🔧 配置说明

API 密钥设置

应用支持两种配置 API 密钥的方式:

  1. 通过界面(推荐):启动应用后在侧边栏输入你的 API 密钥
  2. 默认密钥:修改 claude_chat.py 中的 DEFAULT_API_KEY(第 34 行)

⚠️ 注意:确保你的 API 密钥以 sk-ant-api 开头以保证正常功能。

自定义选项

你可以在 claude_chat.py 中自定义以下参数:

参数 说明 默认值
MIN_TIME_BETWEEN_REQUESTS 速率限制间隔 1 秒
HISTORY_LENGTH 保留在上下文中的消息数量 10 条
INSTRUCTIONS Claude 行为的系统提示词 见代码
max_tokens 每次响应的最大 token 数 2000

📁 项目结构

chatBot/
├── claude_chat.py      # 主应用程序文件
├── requirements.txt    # Python 依赖项
├── Dockerfile         # Docker 配置文件
├── .streamlit/        # Streamlit 配置目录
├── README.md          # 项目文档(中文)
└── README_EN.md       # 项目文档(英文)

🛠️ 技术栈

📝 使用提示

  1. 首次对话:机器人会自我介绍并提及 token 限制
  2. 清空历史:刷新页面以开始新对话
  3. 速率限制:消息之间至少等待 1 秒以避免速率限制警告
  4. 上下文窗口:机器人会记住最近 10 条消息作为上下文

🐛 常见问题

问题 解决方案
API 密钥错误 验证你的 API 密钥格式(应以 sk-ant-api 开头)
连接超时 检查你的网络连接和 API 密钥有效性
速率限制警告 在发送下一条消息前等待指定时间
Docker 健康检查失败 确保端口 8501 未被其他应用占用

🤝 贡献

欢迎贡献!请随时提交 Pull Request。

  1. Fork 本仓库
  2. 创建你的特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交你的更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 打开一个 Pull Request

📄 许可证

本项目采用 MIT 许可证 开源。

👤 作者

Yuan

🙏 致谢

  • 使用 Streamlit 构建
  • 灵感来自于对简单、易用的 AI 聊天界面的需求

⭐ 如果这个项目对你有帮助,请给它一个星标!

Made with ❤️ by Yuan

About

Lightweight chatbot with Streamlit & Claude AI | Docker-ready | Demo: https://ai.geekie.site

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages