华为云Flexus+DeepSeek征文|ModelArts Studio平台上的DeepSeek-V3/R1大模型商用服务下的——情感交流大师(男生版)
华为云Flexus+DeepSeek征文|ModelArts Studio平台上的DeepSeek-V3/R1大模型商用服务下的——情感交流大师(男生版)
项目目标
需要根用户输入的内容来分析如何回答,给出了四种回答方式,可以根据自身情况来修改。

前言
收到了一条邀请消息:【华为云】ModelArts Studio服务能力升级,邀您体验DeepSeek Tokens商用服务。
您好!华为云ModelArts Studio(MaaS)服务能力新升级,可支持一个API地址访问全部预置模型服务及获取对应模型清单,便捷接入大模型服务。
MaaS平台现提供DeepSeek Tokens商用服务,基于昇腾算力底座,性能优秀,快速响应,灵活按需计费,成本低至0.002元,不仅支持个人长期流畅对话DeepSeek,可用于学术研究,辅助办公学习,还能帮助企业按需测试,搭建智能客服、辅助文案生成等。

对于ModelArts Studio的整体架构来说,我们在应用服务的应用体验上就能找到我们要做的事情了。
目录
开启DeepSeek-V3/R1服务
连接地址:ModelArts Studio_MaaS_大模型即服务_华为云
从主页直接进入到【ModelArts Studio控制台】。

开启V3与R1的服务,开启后文字则显示为【关闭服务】。

在这里我们能看到对应的Token计费方式,相对价格来说还是很低廉的。
在线体验
我们可以在上图中看到【在线体验】的超链接,可以点击进入进行具体的测试。
通用问题:
你是一位情话专家,专门帮助男性解决聊天对话的问题,回复的内容都很有诗意,并且很有趣,返回的信息永远让对方有话可接,不会让聊天尬场。
1、理解聊天信息,给出对方的目的;
2、根据对方的目的,给出诗意的回复;
3、根据对方的目的,给出有趣的回复;
4、根据对方的目的,给出调侃的回复;
5、根据对方的目的,给出生活的回复;
6、返回的信息格式为json;
7、json格式为:{"Aim":"xxx","data":{"shi":"xxx","qu":"xxx","tiao":"xxx","sheng":"xxx"}}
8、不要返回多余的内容,如果json格式不正确则重新生成。
此次聊天问题是:你还没睡呢?
DeepSeek-V3-32K效果:

更换成R1的尝试一下:

DeepSeek-R1-32K效果:

由于是一行返回的所以我需要复制出来看一下:
{
"Aim":"表达关心或延续对话的意图",
"data":{
"shi":"夜幕是思念铺就的画布,我留一笔星光,等你来题诗。",
"qu":"月亮在值班,星星在打卡,我这个夜猫子正在给周公写请假条~",
"tiao":"嘘——我正和星星密谋偷走你的梦境,你怎么来查岗啦?",
"sheng":"在等咖啡机把月亮磨成朝阳呢,倒是你,明早的闹钟可要手下留情呀。"
}
}
两者都正常返回json数据了,但是从返回的内容上可以看到,如果使用V3返回的内容很纯粹,没有分析过程,如果使用R1的话就会有一个think的过程,在这里可以得到两者的区别,如果是想使用固定的json来返回最好的方法是使用V3模型,因为V3模型没有think的过程,能节约很多的时间,如果采用R1的模型则在think的过程中就消耗掉了很多的时间,毕竟我们需要把接口接出来就得采用接口返回效率高的模型。
创建-情感交流大师(男生版)-应用
我们需要先去创建一个空的应用,再去设计。

完成创建操作,这里的提示词是:
你是一位情话专家,专门帮助男性解决聊天对话的问题,回复的内容都很有诗意,并且很有趣,返回的信息永远让对方有话可接,不会让聊天尬场。
1、理解聊天信息,给出对方的目的;
2、根据对方的目的,给出诗意的回复;
3、根据对方的目的,给出有趣的回复;
4、根据对方的目的,给出调侃的回复;
5、根据对方的目的,给出生活的回复;
6、返回的信息格式为json;
7、json格式为:{"Aim":"xxx","data":{"shi":"xxx","qu":"xxx","tiao":"xxx","sheng":"xxx"}}
8、不要返回多余的内容,如果json格式不正确则重新生成。
此次聊天问题是用户输入的问题。
选择合适的模型,直接发布即可。

获取API接口
我们需要先获取API接口的连接与代码

获取访问代码:

申请APIKey
按照提示操作

一定要复制一份留着:
NAemambBeK62OIjj_wVUrc7X9Wgtuc7UnhsbLSMlBqI0ultf_FFiHTxQ_CKOkmauzcUaVcCTTh9yx8aLztKPvg
API接口信息获取
代码内容:
# coding=utf-8
import requests
import json
import re
if __name__ == '__main__':
url = "https://api.modelarts-maas.com/v1/chat/completions" # API地址
api_key = "换成自己的" # 把yourApiKey替换成已获取的API Key
# Send request.
headers = {
'Content-Type': 'application/json',
'Authorization': f'Bearer {api_key}'
}
data = {
"model":"DeepSeek-V3", # 模型名称
"messages": [
{"role": "system", "content": """你是一位情话专家,专门帮助男性解决聊天对话的问题,回复的内容都很有诗意,并且很有趣,返回的信息永远让对方有话可接,不会让聊天尬场。
1、理解聊天信息,给出对方的目的;
2、根据对方的目的,给出诗意的回复;
3、根据对方的目的,给出有趣的回复;
4、根据对方的目的,给出调侃的回复;
5、根据对方的目的,给出生活的回复;
6、返回的信息格式为json;
7、json格式为:{"Aim":"xxx","data":{"shi":"xxx","qu":"xxx","tiao":"xxx","sheng":"xxx"}}
8、不要返回多余的内容,如果json格式不正确则重新生成。
此次聊天问题是用户输入的问题。"""},
{"role": "user", "content": "你好"}
],
# 是否开启流式推理, 默认为False, 表示不开启流式推理
"stream": False,
# 在流式输出时是否展示使用的token数目。只有当stream为True时改参数才会生效。
# "stream_options": { "include_usage": True },
# 控制采样随机性的浮点数,值较低时模型更具确定性,值较高时模型更具创造性。"0"表示贪婪取样。默认为0.6。
"temperature": 0.6
}
response = requests.post(url, headers=headers, data=json.dumps(data), verify=False)
json_str = response.json()['choices'][0]['message']['content']
# 返回效果:
aim = re.search(r'"Aim":\s*"([^"]+)"', json_str).group(1)
shi = re.search(r'"shi":\s*"([^"]+)"', json_str).group(1)
qu = re.search(r'"qu":\s*"([^"]+)"', json_str).group(1)
tiao = re.search(r'"tiao":\s*"([^"]+)"', json_str).group(1)
sheng = re.search(r'"sheng":\s*"([^"]+)"', json_str).group(1)
print(aim)
print(shi)
print(qu)
print(tiao)
print(sheng)
输出效果:

我们已经将所有的信息获取出来了,那么接下来我们就可以随意操作了。
完整代码:
# coding=utf-8
import tkinter as tk
from tkinter import ttk, messagebox
import requests
import re
import json
class ChatApp:
def __init__(self, root):
self.root = root
self.root.title("诗意回复生成器")
self.root.geometry("600x500")
self.root.configure(bg="#f0f8ff") # 小清新背景色
# 设置窗口图标
try:
self.root.iconbitmap('heart.ico') # 如果有准备图标文件可以加上
except:
pass
# 输入框区域
input_frame = tk.Frame(root, bg="#f0f8ff", pady=10)
input_frame.pack(fill=tk.X)
tk.Label(input_frame, text="输入对话内容:", bg="#f0f8ff", fg="#2e8b57",
font=("Microsoft YaHei", 10)).pack(side=tk.LEFT, padx=5)
self.user_input = tk.Entry(input_frame, width=50, font=("Microsoft YaHei", 10),
bd=2, relief=tk.GROOVE)
self.user_input.pack(side=tk.LEFT, padx=5, ipady=3)
self.user_input.bind("<Return>", lambda event: self.get_response())
submit_btn = ttk.Button(input_frame, text="生成回复", command=self.get_response,
style="TButton")
submit_btn.pack(side=tk.LEFT, padx=5)
# 响应显示区域
self.notebook = ttk.Notebook(root, style="TNotebook")
self.notebook.pack(fill=tk.BOTH, expand=True, padx=10, pady=5)
# 创建4个标签页
tabs = ["诗意回答", "趣味回答", "挑逗回答", "生活回答"]
self.text_widgets = {}
for tab in tabs:
frame = tk.Frame(self.notebook, bg="#f0f8ff")
self.notebook.add(frame, text=tab)
text = tk.Text(frame, wrap=tk.WORD, font=("Microsoft YaHei", 10),
bg="#f5f5f5", fg="#333", padx=10, pady=10,
height=10, bd=0, highlightthickness=0)
text.pack(fill=tk.BOTH, expand=True)
self.text_widgets[tab] = text
# 样式配置
self.style = ttk.Style()
self.style.configure("TButton", font=("Microsoft YaHei", 10), foreground="#2e8b57")
self.style.configure("TNotebook", background="#f0f8ff")
self.style.configure("TNotebook.Tab", font=("Microsoft YaHei", 10),
padding=[10, 5], background="#e0f7fa", foreground="#2e8b57")
def get_response(self):
user_content = self.user_input.get().strip()
if not user_content:
messagebox.showwarning("提示", "请输入对话内容")
return
url = "https://api.modelarts-maas.com/v1/chat/completions"
api_key = "更換自己的"
headers = {
'Content-Type': 'application/json',
'Authorization': f'Bearer {api_key}'
}
data = {
"model": "DeepSeek-V3",
"messages": [
{"role": "system", "content": """你是一位情话专家,专门帮助男性解决聊天对话的问题,回复的内容都很有诗意,并且很有趣,返回的信息永远让对方有话可接,不会让聊天尬场。
1、理解聊天信息,给出对方的目的;
2、根据对方的目的,给出诗意的回复;
3、根据对方的目的,给出有趣的回复;
4、根据对方的目的,给出调侃的回复;
5、根据对方的目的,给出生活的回复;
6、返回的信息格式为json;
7、json格式为:{"Aim":"xxx","data":{"shi":"xxx","qu":"xxx","tiao":"xxx","sheng":"xxx"}}
8、不要返回多余的内容,如果json格式不正确则重新生成。
此次聊天问题是用户输入的问题。"""},
{"role": "user", "content": user_content}
],
"stream": False,
"temperature": 0.6
}
try:
# 清空之前的回复
for widget in self.text_widgets.values():
widget.config(state=tk.NORMAL)
widget.delete(1.0, tk.END)
widget.insert(tk.END, "正在生成回复...")
widget.config(state=tk.DISABLED)
self.root.update()
response = requests.post(url, headers=headers, data=json.dumps(data), verify=False)
response.raise_for_status()
result = response.json()
content = result['choices'][0]['message']['content']
aim = re.search(r'"Aim":\s*"([^"]+)"', content).group(1)
shi = re.search(r'"shi":\s*"([^"]+)"', content).group(1)
qu = re.search(r'"qu":\s*"([^"]+)"', content).group(1)
tiao = re.search(r'"tiao":\s*"([^"]+)"', content).group(1)
sheng = re.search(r'"sheng":\s*"([^"]+)"', content).group(1)
# 预先定义标签与数据字段的映射关系
tab_mapping = {
"诗意回答": "shi",
"趣味回答": "qu",
"挑逗回答": "tiao",
"生活回答": "sheng"
}
# 批量更新所有标签页内容
for tab_name, field in tab_mapping.items():
widget = self.text_widgets[tab_name]
widget.config(state=tk.NORMAL)
widget.delete(1.0, tk.END)
# 构建显示的文本内容
content_parts = [
f"目的分析: {aim}\n\n",
f"{eval(field)}"
]
widget.insert(tk.END, "".join(content_parts))
widget.config(state=tk.DISABLED)
except requests.exceptions.RequestException as e:
messagebox.showerror("错误", f"请求API失败: {str(e)}")
for widget in self.text_widgets.values():
widget.config(state=tk.NORMAL)
widget.delete(1.0, tk.END)
widget.insert(tk.END, f"请求失败: {str(e)}")
widget.config(state=tk.DISABLED)
if __name__ == "__main__":
root = tk.Tk()
app = ChatApp(root)
root.mainloop()
效果在最上方我们已经看过了,我来截个图。

其实后面还可以增加很多种回答,我们就是看情况来改一下代码就行了,是不是很方便呢。
总结
感谢华为华为云Flexus+DeepSeek征文这次活动,让我体验了一下这么快的AI分析与优质效果,当前的使用方便度已经很高了,整个对接过程节本上就是分分钟搞定,有兴趣的小伙伴们快去尝试一下把:ModelArts Studio_MaaS_大模型即服务_华为云
希望本文能对大家有所有帮助。
828 B2B企业节已经开幕,汇聚千余款华为云旗下热门数智产品,更带来满额赠、专属礼包、储值返券等重磅权益玩法,是中小企业和开发者上云的好时机,建议密切关注官方渠道,及时获取最新活动信息,采购最实惠的云产品和最新的大模型服务!
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)