# DeepSeekChatApp **Repository Path**: mingjue/deep-seek-chat-app ## Basic Information - **Project Name**: DeepSeekChatApp - **Description**: 一个基于 .NET 的简洁聊天应用,前端静态页面 + 后端 Web API,支持流式响应、Markdown 和数学公式。欢迎大家一起学习交流。 - **Primary Language**: C# - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2025-12-11 - **Last Updated**: 2025-12-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # DeepSeekChatApp 一个基于 .NET 的简洁聊天应用,前端静态页面 + 后端 Web API,支持流式响应、Markdown 和数学公式。 演示地址:https://www.huangbailan.com/chat/index.html ## 环境要求 - Windows / Linux / macOS,推荐 Windows 10+ - .NET SDK 8.0+ - 生产可选:IIS(需安装 .NET Hosting Bundle)或自托管 Kestrel ## 获取与启动(开发环境) 1. 安装 .NET SDK 8.0+ 2. 配置 API 密钥与地址:编辑 `appsettings.json` 3. 进入项目根目录运行: ```bash dotnet restore dotnet run ``` 4. 访问:`http://localhost:58316/`(或控制台日志显示的地址) ## 配置说明 - 默认 DeepSeek 配置: ```json "DeepSeek": { "ApiKey": "", "ApiUrl": "https://api.deepseek.com/v1/chat/completions", "Model": "deepseek-chat" } ``` - 鉴权头可定制:如供应商不是 `Authorization: Bearer `,可用 `AuthHeader`+`AuthPrefix` 调整。 ## 使用环境变量覆盖配置(推荐用于生产) - .NET 环境变量键使用双下划线 `__` 表示层级: - 覆盖 DeepSeek 密钥: ```powershell setx DeepSeek__ApiKey "YOUR_KEY" ``` ## 前端使用 - 浏览器访问首页后,在输入框下方左侧选择模型,右侧有“清空/发送”按钮。 ## 生产部署(自托管) 1. 发布构建: ```bash dotnet publish -c Release -o publish ``` 2. 运行: - 便携运行:`publish/DeepSeekChatApp.exe` - 或:`dotnet publish/DeepSeekChatApp.dll` 3. 配置监听地址(示例 0.0.0.0:5000): ```powershell $env:ASPNETCORE_URLS = "http://0.0.0.0:5000" ``` 4. 打开防火墙端口并配置反向代理(如需)。 ## 生产部署(IIS) 1. 安装 `.NET Hosting Bundle`(包含 ASP.NET Core 模块)。 2. 执行 `dotnet publish -c Release -o publish`。 3. 在 IIS 新建站点,物理路径指向 `publish` 目录(发布会生成 `web.config`)。 4. 配置站点绑定与应用池(.NET CLR:无托管,托管由 ASP.NET Core 模块完成)。 ## 健康检查与日志 - 健康检查:`GET /health`(返回状态与时间) - 启动日志在控制台输出;生产建议使用系统日志采集或文件日志。 ## 常见问题 - 供应商不兼容 OpenAI 格式:请提供接口要求,我可为该模型添加请求体与流式响应适配分支。 - 密钥安全:不要把真实密钥提交到仓库,生产使用环境变量或密钥管理服务。 ## 项目结构 - Backend:.NET Web API(SSE 流式响应) - Frontend:HTML/CSS/JS(静态文件在 `wwwroot`)