人工智能入门项目实践:基于Phi-4-mini-reasoning构建你的第一个智能问答系统

张开发
2026/4/16 14:48:49 15 分钟阅读

分享文章

人工智能入门项目实践:基于Phi-4-mini-reasoning构建你的第一个智能问答系统
人工智能入门项目实践基于Phi-4-mini-reasoning构建你的第一个智能问答系统1. 项目介绍与目标如果你刚接触人工智能领域想通过一个实际项目快速上手那么这个智能问答系统的构建教程就是为你准备的。我们将使用Phi-4-mini-reasoning这个轻量级但功能强大的模型配合Python Flask框架打造一个可以实际运行的AI问答应用。通过这个项目你将学会如何在本地环境部署Phi-4-mini-reasoning模型如何通过API调用模型进行问答交互如何用Flask搭建简单的Web服务如何用HTML/CSS创建基础的前端界面如何将AI模型整合到完整的应用流程中整个过程不需要复杂的配置跟着步骤走就能完成。最终你会得到一个可以输入问题、获取AI回答的完整系统原型。2. 环境准备与模型部署2.1 基础环境要求在开始之前请确保你的电脑满足以下条件操作系统Windows 10/11或macOS 10.15Python版本3.8或更高内存至少8GB16GB更佳存储空间至少10GB可用空间2.2 安装必要的Python包打开终端或命令提示符执行以下命令安装所需依赖pip install flask torch transformers这个命令会安装三个关键组件Flask用于构建Web应用PyTorchPhi-4-mini-reasoning模型的运行框架TransformersHugging Face提供的模型加载和调用库2.3 下载Phi-4-mini-reasoning模型在Python脚本中添加以下代码来加载模型from transformers import AutoModelForCausalLM, AutoTokenizer model_name microsoft/phi-4-mini-reasoning tokenizer AutoTokenizer.from_pretrained(model_name) model AutoModelForCausalLM.from_pretrained(model_name)第一次运行时程序会自动下载模型文件约4GB这可能需要一些时间取决于你的网络速度。3. 构建问答系统核心功能3.1 创建Flask应用框架新建一个名为app.py的文件添加基础Flask应用结构from flask import Flask, request, jsonify app Flask(__name__) app.route(/) def home(): return 智能问答系统已启动 if __name__ __main__: app.run(debugTrue)运行python app.py启动服务访问http://localhost:5000应该能看到欢迎信息。3.2 实现问答API接口在app.py中添加问答接口app.route(/ask, methods[POST]) def ask_question(): data request.json question data.get(question, ) inputs tokenizer(question, return_tensorspt) outputs model.generate(**inputs, max_length200) answer tokenizer.decode(outputs[0], skip_special_tokensTrue) return jsonify({answer: answer})这个接口接收JSON格式的问题返回模型生成的回答。你可以用Postman或curl测试这个API。3.3 添加简单的错误处理完善接口增加基本错误处理app.route(/ask, methods[POST]) def ask_question(): try: data request.json if not data or question not in data: return jsonify({error: 无效的请求格式}), 400 question data[question] if not question.strip(): return jsonify({error: 问题不能为空}), 400 # 原有生成逻辑... except Exception as e: return jsonify({error: str(e)}), 5004. 创建用户界面4.1 基础HTML页面在项目目录下创建templates文件夹新建index.html文件!DOCTYPE html html head title智能问答系统/title style body { font-family: Arial; max-width: 800px; margin: 0 auto; padding: 20px; } #question { width: 100%; padding: 10px; margin-bottom: 10px; } #ask-btn { padding: 10px 20px; background: #4CAF50; color: white; border: none; cursor: pointer; } #answer { margin-top: 20px; padding: 15px; border: 1px solid #ddd; min-height: 100px; } /style /head body h1智能问答系统/h1 input typetext idquestion placeholder输入你的问题... button idask-btn提问/button div idanswer/div script document.getElementById(ask-btn).addEventListener(click, async () { const question document.getElementById(question).value; const answerDiv document.getElementById(answer); if (!question) { answerDiv.innerHTML 请输入问题; return; } answerDiv.innerHTML 思考中...; try { const response await fetch(/ask, { method: POST, headers: { Content-Type: application/json }, body: JSON.stringify({ question }) }); const data await response.json(); answerDiv.innerHTML data.answer || data.error || 未知错误; } catch (error) { answerDiv.innerHTML 请求失败: error.message; } }); /script /body /html4.2 更新Flask路由修改app.py中的首页路由返回HTML页面from flask import render_template app.route(/) def home(): return render_template(index.html)5. 测试与优化5.1 完整运行系统现在你可以启动完整系统了运行python app.py打开浏览器访问http://localhost:5000在输入框中提问点击提问按钮查看AI生成的回答5.2 常见问题解决如果遇到以下问题可以尝试这些解决方案模型加载慢首次运行需要下载模型后续启动会快很多回答质量不高尝试更清晰具体地表述问题内存不足关闭其他占用内存的程序或考虑升级硬件API请求失败检查Flask服务是否正常运行控制台是否有错误信息5.3 性能优化建议当系统基本运行后可以考虑以下优化添加加载动画改善用户体验实现对话历史功能添加问题建议或自动补全对长回答进行分页显示6. 项目总结与扩展通过这个项目我们完成了一个完整的AI应用开发流程从模型部署到前后端整合。Phi-4-mini-reasoning虽然体积不大但在问答任务上表现相当不错特别适合初学者学习和实验。你可以基于这个原型进一步扩展添加用户认证系统实现多轮对话功能集成更多AI模型能力部署到云服务器供他人访问整个项目用到的技术栈都是当前AI应用开发的主流选择掌握这些基础后你可以更轻松地探索更复杂的AI应用场景。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。

更多文章