RajNamann/ai-nexus

GitHub: RajNamann/ai-nexus

AI Nexus 是一个轻量级多供应商AI聊天机器人Web应用,通过统一界面简化与不同AI模型的交互过程。

Stars: 0 | Forks: 0

# AI Nexus 中心 AI Nexus 是一个支持多供应商的AI聊天机器人Web应用。它为用户提供一个简洁统一的聊天界面,允许用户选择AI供应商、选择模型、调整生成设置,并利用本地聊天历史记录继续对话。 该项目有意设计为轻量级。它使用Node.js后端,无需任何外部npm依赖,前端则采用原生HTML、CSS和JavaScript。 ## 功能特性 - 支持多个AI供应商的统一聊天界面 - 从用户界面选择供应商和模型 - 可输入自定义模型ID以适应更新或未支持的模型名称 - 调节响应创造力的温度控制 - 可编辑的系统提示 - 浏览器内保存聊天历史记录 - 从侧边栏重新打开先前的对话 - 删除单个聊天记录或清除全部聊天历史 - 暗色渐变UI主题 - 后端API密钥处理,确保密钥不暴露在前端代码中 - 本地Ollama支持,适用于希望本地运行模型的用户 ## 支持的供应商 AI Nexus 目前包含以下适配器: - OpenAI - Anthropic - Google Gemini - Mistral - Groq - OpenRouter - Ollama 云端供应商需要API密钥。Ollama可在本地运行,前提是用户机器上已安装并启动了Ollama。 ## 项目结构 ``` . +-- public | +-- app.js # Frontend chat logic and local chat history | +-- index.html # Main application markup | +-- styles.css # Dark gradient UI styling +-- .env.example # Environment variable template +-- package.json # Project metadata and scripts +-- README.md # Project documentation +-- server.js # Node.js server and AI provider adapters ``` ## 环境要求 - Node.js 18 或更新版本 - 你希望使用的任何云端AI供应商的API密钥 - 可选:本地安装Ollama以使用本地模型 ## 设置步骤 1. 克隆或打开项目文件夹。 2. 根据 `.env.example` 创建 `.env` 文件。 ``` copy .env.example .env ``` 在 macOS 或 Linux 上: ``` cp .env.example .env ``` 3. 添加你希望使用的API密钥。 ``` OPENAI_API_KEY=your_openai_key ANTHROPIC_API_KEY=your_anthropic_key GEMINI_API_KEY=your_gemini_key MISTRAL_API_KEY=your_mistral_key GROQ_API_KEY=your_groq_key OPENROUTER_API_KEY=your_openrouter_key ``` 你无需添加所有密钥。只添加你计划使用的供应商密钥即可。 4. 启动应用。 ``` npm start ``` 5. 在浏览器中打开应用。 ``` http://localhost:3000 ``` ## 环境变量 | 变量名 | 用途 | | ---------------------- | -------------------------------------------------------- | | `PORT` | 可选服务器端口,默认为 `3000`。 | | `OPENAI_API_KEY` | 启用 OpenAI 模型。 | | `ANTHROPIC_API_KEY` | 启用 Anthropic Claude 模型。 | | `GEMINI_API_KEY` | 启用 Google Gemini 模型。 | | `MISTRAL_API_KEY` | 启用 Mistral 模型。 | | `GROQ_API_KEY` | 启用 Groq 托管的模型。 | | `OPENROUTER_API_KEY` | 启用 OpenRouter 模型。 | | `OLLAMA_BASE_URL` | 可选 Ollama 服务器URL,默认为 `http://localhost:11434`。 | ## 使用方法 1. 从侧边栏选择一个供应商。 2. 从模型下拉菜单中选择一个模型。 3. 可选输入自定义模型ID。 4. 根据需要调整温度。 5. 如果需要改变助手行为,编辑系统提示。 6. 输入消息并按回车键或点击发送。 应用会将对话发送到所选供应商,并在聊天窗口中显示助手的响应。 ## 温度 温度控制模型响应的创造性或可预测性。 - 较低值如 `0.2` 使响应更集中和一致。 - 中等值如 `0.7` 适合一般对话。 - 较高值如 `1.0` 或更高使响应更具创造性但可预测性降低。 ## 聊天历史 AI Nexus 使用 `localStorage` 在浏览器中存储聊天历史。 当前行为: - 消息发送后,对话会自动保存。 - 先前的聊天记录出现在“聊天历史”部分。 - 点击历史记录项可恢复对话。 - 恢复的聊天包含消息、供应商、模型、温度和系统提示。 - 最多存储 30 条最近聊天记录。 - 用户可以删除单条聊天记录或清除全部历史。 重要提示:聊天历史记录仅存储在本地浏览器中。它不会跨设备同步,也不会存储在服务器上。 ## API 设计 前端与两个后端端点通信: ### `GET /api/providers` 返回可用的供应商、模型列表以及每个供应商是否已配置。 ### `POST /api/chat` 向所选供应商发送聊天请求。 请求体示例: ``` { "provider": "openai", "model": "gpt-4o-mini", "temperature": 0.7, "messages": [ { "role": "system", "content": "You are a helpful AI assistant." }, { "role": "user", "content": "Explain AI Nexus in simple words." } ] } ``` 响应示例: ``` { "reply": "AI Nexus is a single chat app that lets you use different AI models from one place." } ``` ## 添加新供应商 可以在 `server.js` 中的 `providers` 对象内添加新供应商。 每个供应商需要: - `name`:显示给用户的名称 - `envKey`:API密钥的环境变量名 - `models`:默认模型ID列表 - `chat()`:向供应商发送消息并返回文本的函数 示例结构: ``` customProvider: { name: "Custom Provider", envKey: "CUSTOM_PROVIDER_API_KEY", models: ["custom-model-name"], async chat({ model, messages, temperature }) { // Send request to provider here. return "Assistant response text"; } } ``` 如果供应商支持 OpenAI 聊天完成格式,可以复用现有的 `openAiCompatibleChat()` 辅助函数。 ## 使用 Ollama 的本地AI AI Nexus 默认包含一个 Ollama 供应商。 使用方法: 1. 安装 Ollama。 2. 拉取一个模型,例如: ``` ollama pull llama3.1 ``` 3. 确保 Ollama 正在运行。 4. 在 AI Nexus 内选择 Ollama。 如果你的 Ollama 服务器运行在另一个URL,请更新: ``` OLLAMA_BASE_URL=http://localhost:11434 ``` ## 安全说明 - API密钥应仅存储在 `.env` 文件中。 - 不要将API密钥放在 `public/app.js`、`index.html` 或任何前端文件中。 - 不要将 `.env` 文件提交到公开仓库。 - 当前项目不包含用户账户、身份验证或服务器端对话存储。 ## 测试 项目当前使用简单的语法和冒烟检查。 运行 JavaScript 语法检查: ``` node --check server.js node --check public/app.js ``` 启动应用: ``` npm start ``` 然后打开: ``` http://localhost:3000 ``` 你也可以验证供应商端点: ``` http://localhost:3000/api/providers ``` ## 当前限制 - 无用户登录系统 - 无数据库 - 聊天历史仅限浏览器 - 尚无流式响应 - 尚无文件上传支持 - 尚无网络搜索或检索模式 - 随着供应商发布新模型,供应商模型列表可能需要更新 ## 未来可能的改进 - 流式AI响应 - 网络搜索模式 - 用户账户 - 服务器端聊天历史 - 将聊天导出为 Markdown 或 PDF - 重命名聊天记录 - 搜索聊天历史 - 文件上传与文档分析 - 语音输入 - 图像生成支持 ## 致谢 由 Naman Raj Srivastava 开发。
标签:AI模型管理, AI聊天界面, API集成, GNU通用公共许可证, MITM代理, Node.js, Syscall, Web开发, 人工智能, 可观测性, 后端开发, 多供应商AI, 多模态安全, 数据可视化, 暗色主题, 本地AI, 模型选择, 温度控制, 用户模式Hook绕过, 用户界面, 系统提示, 聊天历史, 软件开发, 轻量级应用