前面在博文 “如何自己建造一个AI智能助手” https://blog.csdn.net/cnds123/article/details/ 是基于通义千问(Qwen)API(免费额度可用)构建的AI智能助手。
你只需要一个通义千问的DashScope API Key https://dashscope.console.aliyun.com/apiKey (获取 API Key。阿里云账号免费注册,新用户送额度)。需要用支付宝对账号账号进行实名认证。
下面介绍,基于多个大模型,建造一个AI智能助手。
基于多个大模型自己建造一个AI智能助手,需要获取多个大模型的API Key。这里基于DashScope API Key 和DeepSeek 的API为例演示。
获取 DeepSeek API Key: https://platform.deepseek.com/sign_in
注意:DeepSeek调用 API 服务需要充值。实名认证后再充值,支付金额最少10元。【充值金额仅用于调用 API 服务,网页版及 App 对话免费使用,无需充值。】
需要有一个邮箱验证登录。创建成功后,系统会生成一个以 sk- 开头的 API Key
立即复制并妥善保存这个 Key,因为关闭对话框后通常无法再次查看完整 Key。
编程能力,这里,具体采用:
- 前端:纯 HTML + JavaScript
- 后端:Python FastAPI
- AI 模型:调用DashScope API Key 和DeepSeek 的API
- 输入框改进行:用多行文本域(<textarea>),不仅能输入多行内容,还能保留换行、缩进等格式,特别适合粘贴 Python 代码、JSON、Markdown 等结构化文本。支持 Enter 发送(避免换行冲突,需按 Ctrl+Enter发送)
注意:在运行这个应用时,需要安装这些第三方库。
安装命令:
pip install fastapi uvicorn httpx pydantic dashscope
解释一下这些第三方库的作用:
FastAPI: 构建API的主要框架。其中,FastAPI创建 Web API 应用的主要类;HTTPException用于抛出 HTTP 错误异常;CORSMiddleware:处理跨域资源共享(CORS)的中间件。
千问 Qwen 教程
pydantic: 通过Python类型注解来进行数据验证和设置管理。其中BaseModel 用于定义数据模型。
httpx: 支持异步的HTTP客户端。用于向 DeepSeek API 发送请求。
uvicorn: 用于运行FastAPI应用的ASGI服务器。运行 FastAPI 应用。
Dashscope:是阿里云推出的 模型即服务(MaaS)平台,提供包括通义千问(Qwen)在内的多种大模型 API,支持文本生成、图像生成、语音识别等。
先看运行效果截图:

项目结构
后端:backend/main.py 文件源码:
前端:frontend/index.html文件源码:
提示,可以把 marked.min.js、highlight.min.js、purify.min.js 下载到本地 static/ 目录,改用相对路径。其中,CDN (Content Delivery Network,内容分发网络)加载 marked 和 highlight.js 用于前端的交互输出格式。让 AI 返回的 代码块、Markdown 格式 能正确显示,并支持 Python 等语言的语法高亮!若缺乏格式输出python代码时就不好用了。引入purify.min.js,增强安全:purify.min.js 是 DOMPurify 库的压缩版,它的核心作用是: 安全地清理(Sanitize)HTML 字符串,防止 XSS(跨站脚本攻击)。1.启动后端服务在cmd中(下行若在Windows PowerShell中运行,去掉 /d):cd /d D:/ai-assistant-multiple/backend$env:DASHSCOPE_API_KEY="真实的DASHSCOPE_API_KEY "$env:DEEPSEEK_API_KEY="真实的DEEPSEEK_API_KEY"uvicorn main:app --port 8000如果你嫌输入比较麻烦,可以使用批处理文件(.bat)在D:ai-assistant-multiplebackend目录中用记事本建立名称为start_backend.bat批处理文件,以后只需双击这个 .bat 文件就能运行后端,无需手动输入命令。内容如下:
注意,在使用时不要关闭后端服务。2.打开前端直接双击 frontend/index.html 用浏览器打开3.聊天现在可以在前端网页中开始聊天!可以在同一个界面中体验不同 AI 模型的回答风格和能力了!输入框改用多行文本域(<textarea>),不仅能输入多行内容,还能保留换行、缩进等格式,特别适合粘贴 Python 代码、JSON、Markdown 等结构化文本。支持 Enter 发送(避免换行冲突,需按 Ctrl+Enter发送)用户点击“发送” → 立刻看到“正在思考…”,让用户在等待期间知道系统在工作,不会误以为卡死。未来可以继续扩展高级功能,如:· 保存聊天历史· 部署到公网,7x24 小时可用,分享链接给任何人版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/262885.html原文链接:https://javaforall.net
