版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
项目12
搭建轻量级AI问答机器人理解AI问答机器人的基本工作流程掌握Django中视图、模板和路由的综合应用学会调用第三方大模型API获取智能问答结果能够使用Bootstrap对页面进行基础美化与布局项目目标掌握简单的会话数据管理与页面渲染逻辑初步具备将AI能力集成到Web项目中的工程意识任务12.1
项目环境搭建与结构设计12.1.1使用PyCharm创建与配置项目过渡页12.1.1使用PyCharm创建与配置项目图12-1使用PyCharm新建项目12.1.1使用PyCharm创建与配置项目图12-2使用命令行终端安装Django5.212.1.1使用PyCharm创建与配置项目在命令行终端执行以下命令:django-adminstartprojectai_chatbotcdai_chatbotpythonmanage.pystartappchat12.1.1使用PyCharm创建与配置项目图12-3AI问答机器人项目的目录结构12.1.1使用PyCharm创建与配置项目在/ai_chatbot/ai_chatbot/settings.py的INSTALLED_APPS属性中添加以下加粗代码:INSTALLED_APPS=['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','chat',#新增]12.1.1使用PyCharm创建与配置项目在/ai_chatbot/ai_chatbot/settings.py的TEMPLATES属性中添加以下加粗代码:TEMPLATES=[{'BACKEND’: 'django.template.backends.django.DjangoTemplates','DIRS':[BASE_DIR/'templates'],#新增'APP_DIRS':True,…},},]12.1.1使用PyCharm创建与配置项目图12-4新建模板文件夹templates12.1.2基础功能开发实现过渡页12.1.2基础功能开发实现在/ai_chatbot/chat/添加以下代码:fromdjango.urlsimportpathfrom.viewsimportchat_pageurlpatterns=[ path("",chat_page,name="chat_page"),]12.1.2基础功能开发实现在/ai_chatbot/ai_chatbot/urls.py添加以下粗体代码:fromdjango.contribimportadminfromdjango.urlsimportpath,includeurlpatterns=[path("admin/",admin.site.urls),path("chat/",include("chat.urls")),]12.1.2基础功能开发实现在/ai_chatbot/chat/views.py添加以下代码:fromdjango.shortcutsimportrender
defchat_page(request):returnrender(request,"chat.html")12.1.2基础功能开发实现在/ai_chatbot/templates/添加以下代码:<!DOCTYPEhtml><htmllang="zh"><head> <metacharset="UTF-8"> <title>AI智能问答</title></head><body><h2>AI智能问答</h2><p>项目初始化成功,页面可以正常访问。</p></body></html>12.1.2基础功能开发实现图12-5AI问答机器人项目成功运行在PyCharm的命令行终端执行以下命令:pythonmanage.pyrunserver任务12.2
接入千问大模型API,实现智能问答12.2.1注册并开通千问大模型API过渡页12.2.1注册并开通千问大模型API图12-6阿里云百炼首页12.2.1注册并开通千问大模型API图12-7创建一个APIKey12.2.2后端业务逻辑实现过渡页12.2.2后端业务逻辑实现首先在chat应用中新建services目录,并编写通义千问调用模块qwen.py,并在/ai_chatbot/chat/services/qwen.py文件中添加以下代码:importrequestsfromdjango.confimportsettingsdefcall_qwen(prompt):url="/api/v1/services/aigc/text-generation/generation"headers={"Authorization":f"Bearer{settings.DASHSCOPE_API_KEY}","Content-Type":"application/json"}data={"model":"qwen-turbo","input":{ "prompt":prompt}}response=requests.post(url,headers=headers,json=data)result=response.json()returnresult["output"]["text"]12.2.2后端业务逻辑实现在/ai_chatbot/chat/views.py中添加以下加粗代码:fromdjango.shortcutsimportrenderfrom.services.qwenimportcall_qwen
defchat_page(request):answer=""question=""
ifrequest.method=="POST":question=request.POST.get("question","").strip()ifquestion:answer=call_qwen(question)
returnrender(request,"chat.html",{"question":question,"answer":answer})12.2.3前端页面交互逻辑实现过渡页12.2.3前端页面交互逻辑实现在/ai_chatbot/templates/chat.html中添加以下代码:<!DOCTYPEhtml><htmllang="zh-CN"><head><metacharset="UTF-8"><title>AI智能问答</title></head><body><h2>AI问答机器人</h2><hr><!--问答显示区域-->{%ifquestion%}<div><p><strong>你:</strong></p><p>{{question}}</p></div><div><p><strong>AI:</strong></p><prestyle="white-space:pre-wrap;">{{answer}}</pre></div>{%else%}<p>请输入问题并提交,开始与AI对话。</p>{%endif%}<hr><!--输入表单--><formmethod="post">{%csrf_token%}<inputtype="text"name="question"placeholder="请输入你的问题"style="width:80%;"required><buttontype="submit">提交</button></form></body></html>12.2.3前端页面交互逻辑实现图12-8简易AI问答机器人页面12.2.3前端页面交互逻辑实现图12-9简易AI问答机器人回答问题任务12.3
优化页面显示效果与整体体验12.3.1优化页面显示效果过渡页12.3.1优化页面显示效果在/ai_chatbot/templates/chat.html替换为如下代码:<!DOCTYPEhtml><htmllang="zh-CN"><head><metacharset="UTF-8"><title>AI智能问答</title><linkhref="/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css"rel="stylesheet"integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH"crossorigin="anonymous"><scriptsrc="/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz"crossorigin="anonymous"></script></head><bodyclass="bg-light"><divclass="containerpy-4"style="max-width:800px;"><h3class="text-centermb-4">AI问答机器人</h3>{%ifquestion%}<divclass="cardmb-3"><divclass="card-body"><strong>你:</strong><pclass="mb-0">{{question}}</p></div></div><divclass="cardborder-primarymb-4"><divclass="card-body"><strong>AI:</strong><preclass="mb-0"style="white-space:pre-wrap;">{{answer}}</pre></div></div>{%else%}<pclass="text-mutedtext-center">请输入问题,开始与AI对话</p>{%endif%}<formmethod="post">{%csrf_token%}<divclass="input-group"><inputtype="text"name="question"class="form-control"placeholder="请输入你的问题"required><buttonclass="btnbtn-primary"type="submit">发送</button></div></form></div></body></html>12.3.1优化页面显示效果图12-10使用Bootstrap优化后的AI问答机器人页面12.3.1优化页面显示效果在首先在PyCharm的命令行终端中输入以下命令进行安装markdown第三方库: pipinstallmarkdown然后在/ai_chatbot/chat/services/qwen.py文件中修改以下加粗代码:…response=requests.post(url,headers=headers,json=data)result=response.json()text=result["output"]["text"]html=markdown.markdown(text,extensions=["extra","codehilite"])returnhtml12.3.1优化页面显示效果在/ai_chatbot/templates/chat.html文件中对answer变量添加一个safe的过滤器:…<divclass="cardborder-primarymb-4"><divclass="card-body"><strong>AI:</strong><preclass="mb-0"style="white-space:pre-wrap;">{{answer|safe}}</pre></div></div>…12.3.1优化页面显示效果图12-11支持Markdown的AI问答机器人页面12.3.2保存并在当前页面显示问答历史过渡页12.3.2保存并在当前页面显示问答历史在/ai_chatbot/chat/views.py添加修改以下加粗代码:fromdjango.shortcutsimportrenderfrom.services.qwenimportcall_qwen
defchat_page(request):history=request.session.get("chat_history",[])
ifrequest.method=="POST":question=request.POST.get("question","").strip()ifquestion:answer=call_qwen(question)history.append({"question":question,"answer":answer})request.session["chat_history"]=history
returnrender(request,"chat.html",{"history":history})12.3.2保存并在当前页面显示问答历史为了数据持久化保存到数据库中,在命令行中执行以下命令:pythonmanage.pymakemigrationspythonmanage.pymigrate12.3.2保存并在当前页面显示问答历史在/ai_chatbot/templates/chat.html添加以下加粗代码:…<divclass="containerpy-4"style="max-width:800px;"><h3class="text-centermb-4">AI问答机器人</h3>
{%ifhistory%}{%foriteminhistory%}<divclass="cardmb-3"><divclass="card-body"><strong>你:</strong><pclass="mb-0">{{item.question}}</p></div></div>
<divclass="cardborder-primarymb-4"><divclass="card-body">
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 初中微机试题及精准答案
- 汽修知识试题及精准答案
- 眼底病诊断与激光治疗新方法
- 2025-2026学年民宿模型教学设计
- 2026年教资历年考试模拟题及答案详解
- 2026年新员工简单模拟题及答案详解
- 《农药基本知识》课件
- 大辰艺术设计(秦皇岛)有限公司介绍企业发展分析报告模板
- 2026年机械员证考试模拟题及答案详解
- 2026年特殊药品考试模拟试卷(含答案)
- 中建三局项目样板引路(样板间)专项施工方案图文完整版
- 大学计算机与人工智能基础 课件全套 第1-8章 计算机基础 - 人工智能技术
- 2025浙教版(2024)八年级上册科学教学计划(三篇)
- 存货报废处置管理办法
- rood治疗技术课件
- 心理调适-开学第一课(课件)-小学生主题班会版
- 2《哦香雪》公开课一等奖创新教学设计统编版高中语文必修上册-2
- 30题仪表工程师岗位常见面试问题含HR问题考察点及参考回答
- 商务智能与数据可视化分析基础全套教学课件
- 城市更新培训课件
- 小学生反诈知识宣传课件
评论
0/150
提交评论