参加腾讯与csdn举办的活动,活动链接:优快云
既然要参加比赛,就不是为了参加而参加,主要是从中获得一份成就感,想了一下便画了思维导图,按着导图去制作。
一、作品简介
本项目旨在构建一个基于Python的个人智能助手,它能够处理多种类型的用户交互,为用户提供诸如问答、信息查询等功能。
二、技术架构
1. 后端
- 使用Python语言,选择Flask框架构建Web服务接口,用于接收前端请求并返回处理结果。
- 数据存储方面,采用[文本]数据库存储用户相关数据(如历史交互记录等)。
2. 前端
- 使用Vue.js前端框架构建更复杂的交互界面。
3. AI相关
- 自然语言处理部分利现有的腾讯云混元大模型对用户输入进行分析和理解。
三、实现过程
(一)开发环境、开发流程
1. 开发环境
- 操作系统:[Windows/Linux]。
- 开发工具:VSCode用于本项目的编写。
- 依赖管理:使用[pip]管理Python库依赖,vite管理前端依赖。
2. 开发流程
- 需求分析阶段确定智能助手的功能需求,如问答功能涵盖的范围、信息查询的具体内容等。
- 设计阶段规划数据库结构、API接口以及前端界面布局。
- 编码阶段按照设计逐步实现功能模块,先实现核心的交互逻辑,再逐步添加周边功能。
- 测试阶段进行单元测试、集成测试,确保各个功能模块正常工作并且相互之间的交互没有问题。
(二)关键技术解析
前端技术
- Vue.js: 这是一个用于构建用户界面的渐进式JavaScript框架。它允许开发者采用组件化的方式来构建复杂的单页应用(SPA)。
- Vite: 是一个由Vue作者尤雨溪开发的现代前端构建工具,它提供了快速的冷启动、即时热模块替换(HMR)等功能,非常适合开发大型应用。
- Pinia: 是一个Vue的状态管理库,它提供了一种简单的方式来管理应用的状态,并且与Vue 3的设计理念完美集成。
后端技术
- Python: 是一种高级编程语言,因其简洁的语法和强大的库支持而被广泛使用。在这个项目中,Python用于构建后端服务。
- OpenAI API: OpenAI提供了一系列的API,可以用于访问其强大的机器学习模型,如GPT系列模型,用于自然语言处理等任务。
- 腾讯云API: 腾讯云提供了多种云服务和API,可以用于实现各种功能,如数据存储、计算资源、人工智能服务等。
项目结构
- .git/: 存放Git版本控制相关的文件。
- backend/: 后端服务目录,包含后端主程序
app.py
、对话数据文件conversations.json
、后端依赖包列表requirements.txt
等。 - frontend/: 前端应用目录,包含主组件
App.vue
、状态管理文件、组件等。
其他
- .env: 环境变量文件,用于存储敏感信息和配置。
- package.json: 前端项目的依赖包列表和脚本配置。
- vite.config.js: Vite的配置文件,用于自定义构建过程。
这个工程的关键技术涵盖了前端框架、状态管理、后端服务、API交互等多个方面,是一个典型的前后端分离的项目结构。
(三)腾讯云AI代码助手在上述过程中的助力
腾讯云AI代码助手在本项目中可以提供多方面的助力:
1. 在代码编写方面,它可以根据开发者输入的部分代码片段快速提供完整的函数实现或者代码逻辑补充。例如在构建API接口时,当开发者输入函数名和部分参数定义后,它能够给出完整的函数体结构,包括参数验证、数据库查询逻辑(如果涉及)等。
2. 在技术选型方面,它可以提供关于不同Python库和框架对比的信息。帮助开发者根据项目需求做出更合适的选择。
因为我使用的是visual studio code,所以安装也比较简单,只需搜索“腾讯云AI助手”安装即可。
安装完需要登录上对应的账号,这里我们使用微信账号登录
按照思维导图设计,我们向AI助手提问
这样就会帮我们分析并给出建议,我们只需按照步骤构建即可,全程我都没敲过一句代码。
按上面的建议,基本上就是分成
frontend和backend两个文件夹了,对应的是前端和前端的相关代码
列出主要使用到的控件
前端:
{
"name": "package.json",
"version": "0.0.0",
"private": true,
"type": "module",
"scripts": {
"dev": "vite",
"build": "vite build",
"preview": "vite preview"
},
"dependencies": {
"markdown-it": "^14.1.0",
"marked": "^15.0.6",
"pinia": "^2.0.0",
"vue": "^3.3.0",
"vue-router": "^4.2.0"
},
"devDependencies": {
"@vitejs/plugin-vue": "^5.2.1",
"vite": "^6.0.5",
"vite-plugin-vue-devtools": "^7.6.8"
}
}
后端
flask>=2.0.1
flask-cors>=3.0.10
openai>=1.0.0
python-dotenv>=0.19.0
aiohttp>=3.8.1
后台api地址localhost:5000
前端访问地址localhost:5173
当然我们只需要访问前端地址即可
详说一下功能
常用的主要是对话
对话主要围绕这三个功能,目前用得比较多是指能和智能体
评审的主要作用是帮你检查一下代码有没异常的地方,这点比较省时,在做单元测试前,很有必要评审一下。
四、使用说明
1. 启动项目
- 如果是后端服务,确保已安装所有依赖(通过
pip install -r requirements.txt
),然后在项目根目录下运行[Flask]启动命令(如python app.py
)。 - 对于前端项目,根据使用的框架进行相应的构建和启动操作(
npm run serve
)。
2. 功能交互
- 在Web界面中,用户可以输入问题或者指令到指定的输入框中,然后点击发送按钮或者直接按回车键。智能助手会根据输入内容进行分析处理并返回相应的结果。
五、效果展示
1. 最开始的形态
这个初步调整,一句句告诉助手要怎么优化。
跟个人助手不一样的地方,是可以登录不一样的账号,不是访客就可以访问
右上角分别对应的功能是
模型:目前主要是腾讯混云和openapi
模式:普通和伴侣模式,会增加更多的关心语句
评分:点击和踩的功能,个人觉得意义不是很大,其实喜欢的会话会保存,不行的会话会删除
皮肤:白天模型和晚上模型
导出:导出聊天会话的聊天记录
六、 后续
1. 模型的接入:按模型文档里提到的,其实是可以接入很多家模型进来,作为一个聚合。
2.情感的接入:虽然有伴侣模式,但是还不够,要像女友一样的持续输出,还要一定的调整。
3. 支持本地模型的训练:增加ollama等模式来帮自己完成更多的工作。
作为一名十几年的老技术,现在的AI确实惊艳到我,技术浪潮不断进化,我们要有一个持之以衡的心去对待。赛后我会开源AI帮我写的这套代码,有意向看的小伙伴下载看看。