最新案例動態,請查閲【案例共創】開發者空間配合華為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條數據跟插入數量一致,表示數據插入成功。
至此,本次實驗全部內容完成。