# workbench-backend **Repository Path**: NetAxeClub/workbench-backend ## Basic Information - **Project Name**: workbench-backend - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-03-25 - **Last Updated**: 2025-05-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AI流式问答WebSocket后端 基于FastAPI实现的WebSocket后端,使用OpenAI API提供AI问答的流式接口给前端调用。 ## 功能特点 - 使用WebSocket实现流式响应 - 集成OpenAI API实现AI对话功能 - 支持JSON格式的请求,兼容OpenAI聊天格式 ## 安装依赖 ```bash pip install -r requirements.txt ``` ## 配置环境变量 复制`.env.example`文件为`.env`,并填写您的OpenAI API密钥: ```bash # 复制环境变量示例文件 cp .env.example .env # 编辑.env文件,填写您的API密钥 OPENAI_API_KEY=***** OPENAI_API_BASE=https://api.deepseek.com # 可选,如果使用代理或自定义端点 OPENAI_MODEL=deepseek-chat # 默认使用的模型 ``` ## 运行服务 ```bash python main.py ``` 服务将在 http://localhost:8000 启动,WebSocket接口地址为 ws://localhost:8000/ws/chat ## API文档 启动服务后,访问 http://localhost:8000/docs 查看API文档。 ## 前端连接示例 ### 简单文本请求 ```javascript // 创建WebSocket连接 const socket = new WebSocket('ws://localhost:8000/ws/chat'); // 连接建立时的处理 socket.onopen = function(e) { console.log('WebSocket连接已建立'); // 发送简单文本消息 socket.send('你好,请介绍一下自己'); }; // 接收消息的处理 socket.onmessage = function(event) { const message = event.data; if (message === '[DONE]') { console.log('响应完成'); } else { console.log('收到消息片段:', message); // 在前端界面上追加显示消息片段 } }; // 连接关闭的处理 socket.onclose = function(event) { console.log('WebSocket连接已关闭'); }; ``` ### OpenAI格式的JSON请求 ```javascript // 创建WebSocket连接 const socket = new WebSocket('ws://localhost:8000/ws/chat'); // 连接建立时的处理 socket.onopen = function(e) { console.log('WebSocket连接已建立'); // 发送OpenAI格式的JSON请求 const messages = [ { role: "system", content: "你是一个有帮助的AI助手" }, { role: "user", content: "你好,请介绍一下自己" } ]; socket.send(JSON.stringify({ messages })); }; // 接收消息的处理 socket.onmessage = function(event) { const message = event.data; if (message === '[DONE]') { console.log('响应完成'); } else { console.log('收到消息片段:', message); // 在前端界面上追加显示消息片段 } }; // 连接关闭的处理 socket.onclose = function(event) { console.log('WebSocket连接已关闭'); }; ``` ```shell ModelPlatforms (suppliers) ├── id ├── name ├── platform_name ├── status ├── api_configs (一对多 → APIConfigurations) └── models (一对多 → ModelDB) APIConfigurations (api_configs) ├── id ├── platform_id (外键 → suppliers.id) ├── api_key └── api_url ModelDB (models) ├── id ├── name ├── supplier_id (外键 → suppliers.id) └── description ```