Vanna适配鲲鹏开源任务
1. 背景介绍
开源for Huawei(参考https://developer.huaweicloud.com/programs/opensource/contributing/) 通过和公司、高校、社区的开发者合作,完成鲲鹏、昇腾、欧拉、鸿蒙、高斯、云服务等与开源软件的适配开发,帮助繁荣Huawei的基础生态,同时让开源软件能够更加简单、高效的运行于华为云上。开始之前,开发者可以下载 开源for Huawei Wiki(参考:https://gitcode.com/HuaweiCloudDeveloper/OpenSourceForHuaweiWiki/overview) 了解详细的开发步骤,技术准备,以及开发过程需要的各种资源。
2. 需求分析
2.1 项目影响力
vanna是一个基于MIT许可的开源Python框架,用于SQL生成和相关功能。它允许用户在数据上训练一个模型,然后通过提问生成在数据库上运行的SQL查询语句,并将查询结果通过表格和图表的方式展示给用户。
源码地址:https://github.com/vanna-ai/vanna
官网主页:https://vanna.ai/docs/
主要开发语言:python
截至2024年9月19日,vanna在GitHub上拥有10.8k的star和839的fork,有57名贡献者。最近一次代码提交时间为2024年9月17日。
以下是star历史图:
2.2 任务目的和范围
本任务的主要目的是让vanna项目适配至鲲鹏处理器和GaussDB数据库,确保项目能够在这些平台上高效运行。该任务能够扩展鲲鹏处理器和GaussDB数据库的适用范围,扩大其在AI和深度学习领域的竞争力和影响力。
能力要求:完成该任务需要具备深度学习和自然语言处理领域(NLP)的知识,熟悉鲲鹏处理器的架构和部署,掌握数据库部署和访问技巧。开发过程中主要使用Python语言。
2.3 适配任务清单
生态 |
生态细类 |
是否需要适配 |
使用场景说明 |
昇腾生态 |
昇腾算力/指令适配 |
否 |
需要验证 |
鲲鹏生态 |
鲲鹏算力/指令适配 |
否 |
需要验证 |
|
基于鲲鹏云CCE环境的部署(使用openEuler操作系统) |
是 |
在鲲鹏云CCE容器中部署本任务中涉及的相关服务和DEMO |
|
基于鲲鹏云ECS环境的部署(使用openEuler操作系统) |
否 |
|
|
使用鲲鹏云OBS对象存储 |
否 |
|
|
使用鲲鹏云GaussDB数据库 |
是 |
数据存储需要对接GaussDB数据库 |
鸿蒙生态 |
|
否 |
|
可能需要适配的云服务清单(仅内部参考)
云服务大类 |
云服务 |
是否可能对接 |
使用场景说明 |
基础设施 |
短信&消息 |
|
|
数据库 |
|
|
|
运维 |
LTS |
|
|
|
AOM |
|
|
|
APM |
|
|
中间件 |
CSE |
|
|
|
DMS |
|
|
3. 工作量评估
任务 |
估计人天 |
基于CCE容器完成环境搭建和GaussDB数据库功能适配 |
3 |
完成DEMO设计和功能验证 |
2 |
输出开发资料和博客 |
2 |
总计估计工作量 |
7 |
4. 任务分解
4.1 完成vanna演示Demo的设计、开发和部署
DEMO 流程图参考如下:
基于DEMO设计完成开发和部署:
- 环境适配:确保DEMO流程可以在鲲鹏处理器和Euler操作系统上顺利进行(基于CCE容器)。
- 数据库扩展:使用兼容GaussDB的数据库操作PyMysql库函数,对其进行扩展和配置以丰富训练数据。
- 模型训练:借助GaussDB数据库的元数据(数据库内关于自身数据的描述信息)、相关文档说明、参考样例SQL等训练一个模型。
- 模型推理:在收到用户自然语言描述的问题时,从模型中通过语义检索出相关的内容组装进Prompt,交给LLM生成SQL语句在GaussDB数据库中进行查询并返回结果。
- 文档撰写:写出文档列出详细的步骤并通过开源平台进行发布,旨在确保即便是初学者也能跟随并成功复现结果。
4.2 完成任务心得输出
在华为云开发者论坛发表博客,介绍完成这些任务的过程和心得。包括如下内容:vanna适配鲲鹏处理器和GaussDB数据库的技术挑战、解决方案等。
5. 任务评分和验收材料
5.1 任务价值和难度评分
编号 |
项目 |
难度系数 |
备注 |
1 |
项目影响力 |
3 |
开源项目,社区活跃度高,具有较大的行业影响力 |
2 |
开发复杂度 |
1 |
|
3 |
商业价值 |
3 |
可以通过API开放、云服务、技术支持等方式变现 |
综合评分 |
2 |
|
5.2 验收评分(总分100分)
编号 |
项目 |
验收地址 |
分值 |
验收得分 |
备注 |
1 |
完成vanna适配功能开发。 |
|
0 |
|
根据功能完成度、代码质量、测试代码质量、文档质量等综合评分。需要提交临时代码的地址和提交记录。 |
2 |
代码推送上游社区。 |
|
0 |
|
需要提交官网代码的地址和提交记录。 |
3 |
完成功能演示DEMO基于华为云鲲鹏环境的部署和功能验证,并提供详细的环境配置文档。 |
|
40 |
|
需要提供DEMO测试前端访问地址,提供环境配置文档地址。 |
4 |
发布博客介绍适配心得 |
|
10 |
|
已经发布的博客/心得链接地址 |
5 |
通过开源平台发布vanna在鲲鹏、昇腾以及欧拉操作系统的安装、配置、使用及相关任务的文档 |
|
10 |
|
项目的安装、配置、使用及相关任务撰写详细的文档 |
6 |
商业变现:成为项目的committer,或者基金会成员,通过华为云云商店上架该开源软件并提供技术支持等可获得额外商业价值加分。 |
|
40 |
|
提供云商店产品目录。 |
参考资料
1. 开源for Huawei介绍、环境搭建、示例项目、开发和部署指南:https://gitcode.com/HuaweiCloudDeveloper/OpenSourceForHuaweiWiki/overview
2. 华为昇腾社区首页:https://www.hiascend.com/developer
3. 华为鲲鹏社区首页:https://www.hikunpeng.com/developer
4. 华为欧拉社区首页:https://www.openeuler.org/
- 点赞
- 收藏
- 关注作者
评论(0)