【案例共创】开发者空间配合华为AskO3构建造数小程序
通过在华为开发者空间配合华为AskO3丝滑构建一个造数小程序,顾名思义,提供一种简便、快捷的数据生成与处理工具。在日常办公,或者测试需要数据堆积时可以快速的构造数据,本篇也在抛砖引玉,有更好想法的同学可以去体验开发者空间和AskO3
最新案例动态,请查阅【案例共创】开发者空间配合华为AskO3构建造数小程序。小伙伴们快来领取华为开发者空间进行实操吧!
本案例由开发者:banjin提供
1 概述
1.1 案例介绍
华为开发者空间是华为云为全球开发者打造的专属开发空间,汇聚昇腾、鸿蒙、鲲鹏、GaussDB、欧拉等各项根技术的开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。
AskO3是GTS基于盘古大模型构建的领域知识大模型,旨在提升伙伴知识获取效率和作业效率。它提供了三大核心应用:O3智能搜索、O3智能问答和O3智能助手。
通过在华为开发者空间配合华为AskO3丝滑构建一个造数小程序,顾名思义,提供一种简便、快捷的数据生成与处理工具。在日常办公,或者测试需要数据堆积时可以快速的构造数据,本篇也在抛砖引玉,有更好想法的同学可以去体验开发者空间和AskO3
1.2 适用对象
- 企业
- 个人开发者
- 高校学生
1.3 案例时间
本案例总时长预计30分钟。
1.4 案例流程
说明:
- 领取云主机,准备MySQL数据库;
- 用AskO3智能助手构造代码;
- 运行代码,查看程序效果。
1.5 资源总览
本案例预计花费总计0元。
| 资源名称 | 规格 | 单价(元) | 时长(分钟) |
|---|---|---|---|
| 云主机 | 2 vCPUs | 4 GB | X86 | 免费 | 30 |
2 构建造数小程序
2.1 环境准备
1. 访问开发者空间
点击链接进入开发者空间页面,点击我的云主机下方的进入桌面访问云主机。
2. 准备数据库
MySQL 是一个开源、跨平台、功能强大且广泛应用的关系型数据库管理系统,支持多种数据类型、存储引擎和高级特性,具有高性能、安全性及事务处理能力,可通过 SQL 操作数据,适用于各类应用程序。
准备了一个MySQL的数据库,也可以用云上的rds更简单,开箱即用。云主机安装MySQL步骤如下:
- 安装mysql
sudo apt update
sudo apt install mysql-server
- 登录并创建用户,初始化表。
#登录数据库
sudo mysql
#创建用户,testuser表示用户名,123456表示密码,都可以自定义修改。@'%' 表示任何主机都可以连接到数据库
create user testuser@'%' identified by '123456';
#授权,all privileges on \*.\* 表示授权给该用户所有数据库和表的所有权限
grant all privileges on \*.\* to testuser@'%' ;
#创建数据库
create database school;
#切换数据库
use school;
#创建表
CREATE TABLE students (
student_id INT AUTO_INCREMENT PRIMARY KEY COMMENT '学生ID',
name VARCHAR(50) NOT NULL COMMENT '学生姓名',
age INT COMMENT '年龄',
major VARCHAR(100) COMMENT '专业',
email VARCHAR(100) UNIQUE COMMENT '电子邮件'
);
2.2 用AskO3智能助手生成代码
- 打开AakO3的智能编程助手
点击AskO3打开O3社区,点击右上角登录/注册先登录,然后点击智能编程助手。
-
生成造数程序
使用如下提问让Asko3帮我们生成程序,只需要修改必须的信息以及对程序微调就可以使用了,提问内容:
CREATE TABLE students (
student_id INT AUTO_INCREMENT PRIMARY KEY COMMENT '学生ID',
name VARCHAR(50) NOT NULL COMMENT '学生姓名',
age INT COMMENT '年龄',
major VARCHAR(100) COMMENT '专业',
email VARCHAR(100) UNIQUE COMMENT '电子邮件'
);
写一个造数脚本,根据如上MySQL数据库表结构,生成对应列的随机值,使用并行插入,并提供页面可以设置造数的数据量进行插入。要求前后端均在一个python脚本里实现,并提供脚本使用步骤。
-
生成的代码
**注意:**智能编程助手的回答具有随机性,相同的提问也会得到不同的结果,以下是本次文档编写时的生成代码,仅供参考:
import random
import string
import threading
from flask import Flask, request, render_template_string
import pymysql
app = Flask(__name__)
# 数据库连接配置
DB_CONFIG = {
'host': 'localhost',
'user': 'root',
'password': 'your_password',
'database': 'your_database',
'charset': 'utf8mb4',
'cursorclass': pymysql.cursors.DictCursor
}
# 生成随机字符串
def random_string(length=10):
letters = string.ascii_lowercase
return ''.join(random.choice(letters) for \_ in range(length))
# 生成随机年龄
def random_age():
return random.randint(18, 30)
# 生成随机专业
def random_major():
majors = ['Computer Science', 'Mathematics', 'Physics', 'Biology', 'Chemistry']
return random.choice(majors)
# 生成随机电子邮件
def random_email():
return f"{random_string(5)}@{random_string(3)}.com"
# 插入数据
def insert_data(num_records):
connection = pymysql.connect(\*\*DB_CONFIG)
try:
with connection.cursor() as cursor:
for \_ in range(num_records):
name = random_string(10)
age = random_age()
major = random_major()
email = random_email()
sql = "INSERT INTO students (name, age, major, email) VALUES (%s, %s, %s, %s)"
cursor.execute(sql, (name, age, major, email))
connection.commit()
finally:
connection.close()
# 并行插入数据
def parallel_insert(num_records, num_threads):
records_per_thread = num_records // num_threads
threads = []
for \_ in range(num_threads):
thread = threading.Thread(target=insert_data, args=(records_per_thread,))
threads.append(thread)
thread.start()
for thread in threads:
thread.join()
# 前端页面
@app.route('/', methods=['GET', 'POST'])
def index():
if request.method == 'POST':
num_records = int(request.form['num_records'])
num_threads = int(request.form['num_threads'])
parallel_insert(num_records, num_threads)
return f"插入 {num_records} 条记录完成"
return render_template_string('''
\<form method="post"\>
\<label for="num_records"\>数据量:\</label\>
\<input type="number" id="num_records" name="num_records" required\>
\<label for="num_threads"\>线程数:\</label\>
\<input type="number" id="num_threads" name="num_threads" required\>
\<button type="submit"\>生成并插入数据\</button\>
\</form\>
''')
if \__name_\_ == '__main__':
app.run(debug=True)
注:生成的代码中,数据库连接配置需要根据创建数据库那一步设置的用户密码填写。
2.3 运行代码
运行可以参考AskO3智能编程助手给的操作步骤,也可以在云主机中使用CodeArts IDE for Python编辑器运行,后者更方便查看和修改代码,以下是运行步骤:
- 创建项目
打开云主机桌面CodeArts IDE for Python。
打开后,点击新建工程,工程名称自定义即可,点击创建。
创建好后,左下角选择管理->设置。
在搜索框中输入:activate,点击Python,勾选在使用插件创建的终端中激活Python环境。
打开终端,前方出现**(venv)**字样表示创建成功。
(如果没有请点击小垃圾桶图标关闭终端重新打开一下。)
- 安装依赖
在终端窗口中执行AskO3智能编程助手提供的所需依赖的安装命令。
**注意:**由于回答内容的随机性,智能编程助手提供的依赖安装命令也不尽相同,如果使用的文档中代码,可以完全使用以下命令安装,如果使用个人对话AskO3智能编程助手得到的代码,请执行其提供的配套的依赖安装命令。
pip install flask pymysql cryptography
- 复制代码
将步骤2.2生成的代码复制到main.py。代码中的数据库连接配置修改为2.1创建的用户、密码、数据库。
- 运行体验
在终端窗口输入以下命令运行代码,可以看到代码运行在了http://127.0.0.1:5000。
python main.py
在浏览器输入上面的连接打开页面,输入插入数据量和线程数,多线程插入数据库数据可以提供插入效率,提高资源利用率。线程数建议小于等于CPU核心数的1-2倍,如1000、2,然后选择生成并插入数据。
**注意:**前端页面不尽相同,以实际智能编程助手生成的页面为准。
可以在终端命令窗口查询students表数据量验证数据是否插入成功。
select count(\*) from school.students;
如果查出的是1000条数据跟插入数量一致,表示数据插入成功。
至此,本次实验全部内容完成。
更多推荐




所有评论(0)