调用蓝耘Maas平台大模型API打造个人AI助理实战

article/2025/6/22 1:45:32

目录

  • 前言
  • 需求分析与环境配置
    • 明确需求
    • 环境准备
      • 选择合适的大模型
  • 蓝耘Mass平台介绍
  • API调用
    • 大模型API介绍
    • API 调用流程
  • 可交互AI助理开发
  • 总结

前言

大数据时代,个人隐私很难得到保障,如果我们需要借助大模型解决一些私人问题,又不想隐私被泄露和所用的大模型公司收集,这里我提供一个解决方案调用大模型的API实现一个本地化个人ai助理帮助我们解决问题,这是一个很好的解决办法。本次实验主要是借助蓝耘的Maas平台来调用大模型API,打造专属的AI助理

需求分析与环境配置

在开始动手实验之前,我们首先要明确我们的需求和进行环境配置。不清楚需求,干起活就会没有清晰的思路,没有好环境,就没有办法实现我们的AI助理。

明确需求

  • 功能层面, AI 助理需要能够精准理解我们的私人问题,并根据我们个人情况能给出准确且详细的解答。
  • 数据层面,涉及私人数据,我们要确保所有输入给AI 助理的数据仅在本地环境中处理,不会被上传至外部服务器。
  • 交互层面,有可视化图形界面窗口,AI 助理应该具备自然流畅的对话风格,并且响应迅速。

环境准备

注册蓝耘平台账号
如果还未拥有蓝耘平台账号的小伙伴,需前往蓝耘平台官网注册一下账号。(https://cloud.lanyun.net//#/registerPage?promoterCode=0131)
获取 API 密钥
成功登录蓝耘平台后,点击Maas平台找到 “API KEY管理” 选项,点击 “创建API KEY” 平台将为你生成一串唯一的 API 密钥。这串密钥是你调用蓝耘 Maas 平台 API 的重要凭证,务必妥善保管,切勿向他人透露,以免造成安全风险。
在这里插入图片描述
在这里插入图片描述

选择合适的大模型

蓝耘 Maas 平台提供了多种大模型供选择,如 DeepSeek - R1、DeepSeek - V3、QwQ - 32B 等。在这里插入图片描述

每个模型在自然语言处理、图像识别、代码生成等方面各有专长。鉴于我们打造个人 AI 助理主要用于处理文本类的私人问题,在自然语言处理方面表现卓越的 DeepSeek - R1 模型是不错的选择。它具备强大的语义理解能力,能深入剖析我们输入的问题,并生成高质量的回答。在这里插入图片描述

在平台的模型介绍页面,我们可详细了解各模型的特点、适用场景以及调用价格(蓝耘平台会免费赠送超千万 Token,并且长期有效,可以支持我们使用很长一段时间),综合评估后确定符合自身需求的模型。

蓝耘Mass平台介绍

考虑到有些读者可能不了解Mass平台究竟是什么,这里做简单介绍。

在这里插入图片描述

MaaS 平台即 “模型即服务”(Model as aService)平台,是一种依托云计算的人工智能服务模式。模型即服务(MaaS)平台面向企业开发者、创业者及非技术背景用户,提供开箱即用的热门AI模型服务,支持零代码体验、API快速集成与灵活计费,降低AI应用开发门槛,加速业务创新。允许用户通过API接口或其他方式访问和使用预先训练好的机器学习模型,无需自己从头开始训练模型,使得即使没有深厚机器学习背景的用户也能享受到高水平的AI技术支持。(引用蓝耘官方介绍)

平台也支持各种文本、图像、视频大模型的选择。
在这里插入图片描述
也可以在体验中心,直接体验模型。
在这里插入图片描述

API调用

完成上述需求分析与环境配置后,接下来进入更关键的 API 调用与功能实现环节。

大模型API介绍

大模型API是大模型对外提供服务的接口。通过API,开发者不需要了解大模型复杂的内部结构和运行机制,就能将大模型强大的功能集成到自己的应用、系统中。同时我们也可以调用大模型的API对模型进行微调、推理训练等。

API 调用流程

确定调用方式​
蓝耘 Maas 平台为开发者提供了清晰且便捷的 API 调用方式。以常见的 HTTP 请求为例,我们可以借助各类编程语言中的 HTTP 请求库来发起调用。在 Python 语言中,常用的requests库能够方便地构造请求。我们要根据所选大模型 API 的要求,确定请求的 URL 地址。
构造请求参数​
请求参数是 API 调用的关键部分,它决定了我们向大模型传递的信息以及期望得到的响应形式 。​

  • 认证信息:将之前获取的蓝耘平台 API 密钥包含在请求头中,获取调用权限。
  • 模型相关参数:指定要调用的具体模型名称,在请求参数中明确设置模型参数。根据需求设置生成文本的最大长度(max_tokens),如设置为 200,意味着大模型生成的回答不超过 200 个 token;控制生成文本的随机性(temperature),取值范围在 0 - 1 之间,这里设置为 0.7,生成的文本会相对更具多样性。

Python 使用requests库调用蓝耘 Maas 平台大模型 API 代码:

import requestsurl = "https://maas-api.lanyun.net/v1/chat/completions"
headers = {"Content-Type": "application/json","Authorization": "Bearer 这里改成自己的API密钥"
}
data = {"model": "/maas/deepseek-ai/DeepSeek-R1","messages": [{"role": "system","content": "You are a helpful assistant."},{"role": "user","content": "Hello!"}]
}response = requests.post(url, headers=headers, json=data)
if response.status_code == 200:result = response.json()print(result)
else:print(f"请求失败,状态码: {response.status_code}")

不懂的朋友可以再看看官方文档,想快速实现的也可以直接用我的代码。
在这里插入图片描述
利用Jupyter Notebook环境我们先试试,模型API是否调用成功
在这里插入图片描述
AI助理回答:Hello! How can I assist you today? 😊
调用的deepseek-r1模型API,deepseek也是有深度思考和正常输出的,还给我们回复了一个微笑的可爱表情包。看来已经进入助理角色了。

可交互AI助理开发

上面那个界面,对于不懂代码的用户来说,比较不友好,我们要开发的是在UI窗口能直接用自然语言进行交互的AI助理。这次开发环境是 VS code,用python代码实现。

1.首先是蓝耘Mass平台API调用,进行设置API信息,这一步是我们调用大模型的关键

self.api_url = "https://maas-api.lanyun.net/v1/chat/completions"
self.api_key = "请替换为您的实际API密钥"  # 请替换为您的实际API密钥

API调用主要是用到python的requests库,因为这个库是python的第三方库,我们本地可能并没有安装,调用的时候就会报错。
在这里插入图片描述
别担心,我们只需要在终端输入命令

pip install requests

就能完成库的安装,看见有“Successfully installed”就是安装成功了。
在这里插入图片描述
2.选择需要调用的模型为deepseek -r1模型,并且给模型设置身份为私人助理

 headers = {"Content-Type": "application/json","Authorization": f"Bearer {self.api_key}"}data = {"model": "/maas/deepseek-ai/DeepSeek-R1","messages": [{"role": "system","content": self.system_role},{"role": "user","content": user_message}]}

这里可以看到,我们给模型的身份和我们自己的身份。

 # 初始化对话self.append_message("系统", "私人助理已就绪,请问有什么可以帮您?")# 设置系统角色self.system_role = "你是一位专业的私人助理,负责帮助用户处理各种事务。你的回答应该简洁、专业且友好。"

在这里插入图片描述
3.交互窗口的开发
主窗口和基本的设置,将窗口大小设置为600*500的块

self.root.geometry("600x500")

用户输入区域(输入框+发送按钮)

# 输入框框架
self.input_frame = tk.Frame(root)
self.input_frame.pack(padx=10, pady=5, fill=tk.X)# 输入框
self.user_input = tk.Entry(self.input_frame)
self.user_input.pack(side=tk.LEFT, fill=tk.X, expand=True)
self.user_input.bind("<Return>", self.send_message)  # 绑定回车键发送# 发送按钮
self.send_button = tk.Button(self.input_frame, text="发送", command=self.send_message)
self.send_button.pack(side=tk.RIGHT)

消息显示功能实现

def append_message(self, sender, message):self.chat_history.configure(state='normal')self.chat_history.insert(tk.END, f"{sender}: {message}\n\n")self.chat_history.configure(state='disabled')self.chat_history.see(tk.END)  # 自动滚动到底部

消息发送功能实现

def send_message(self, event=None):user_message = self.user_input.get()if not user_message.strip():returnself.append_message("你", user_message)self.user_input.delete(0, tk.END)# 禁用控件防止重复发送self.send_button.config(state=tk.DISABLED)self.user_input.config(state=tk.DISABLED)# 使用线程发送请求threading.Thread(target=self.get_ai_response, args=(user_message,)).start()

上面就是我们实现的主要代码了,现在运行看看效果。
在这里插入图片描述
最上面是整个窗口的名字“Deepseek-R1 私人助理”,初始时,系统会告诉我们他是你的私人助理,并且询问你是否需要帮助,下面的框可以输入我们的请求,比如我下面的prompt“你好,现在是晚饭时间,为我推荐清淡且富有营养的晚餐”,点击右下角的发送按钮,发送请求就好。
在这里插入图片描述
现在,是不是已经开始期待我们的私人助理会给出怎么样的回答了,一起看看吧。(十几秒的时间AI助理就能给我们回复,还是很快的,不需要像本地部署的大模型一样要等很久才能收到回复)
在这里插入图片描述
我们的小助理给出了一份很不错的食谱,接下来告诉小助理我们的忌口食物和喜爱食物,让他调整食谱。在这里插入图片描述小助手根据我的喜好为我提供了新食谱,考虑到营养问题,把一日三餐的食都提供了,还告诉我应该怎么搭配,怎么食用。真所谓考虑的面面俱到,我对我的小助理非常满意。

这里我们的小助手是有长记忆的,可以支持进行多轮对话,不用担心token不够,蓝耘平台给我们提供了免费的千万token

4.可调整:

  • 窗口界面可根据自己的喜好进行调整美化。
  • 可以根据自己的喜好对助手回复风格进-行设置,还可以让助手扮演自己喜欢的角色。
  • 模型可更换,用完了deepseek-r1的token也可以换成其他的。

在这里插入图片描述
平台可以看到调用API的数量和token用量,实时监控并更新,方便我们查看
在这里插入图片描述
5.为了让更多人都能轻松实现这一AI私人助理,我决定把完整的代码分享给大家。

import tkinter as tk
from tkinter import scrolledtext, messagebox
import requests
import threadingclass AIChatApp:def __init__(self, root):self.root = rootself.root.title("DeepSeek-R1 私人助理")self.root.geometry("600x500")# 设置API信息self.api_url = "https://maas-api.lanyun.net/v1/chat/completions"self.api_key = "请替换为您的实际API密钥"  # 请替换为您的实际API密钥# 创建聊天历史显示区域self.chat_history = scrolledtext.ScrolledText(root, wrap=tk.WORD, state='disabled')self.chat_history.pack(padx=10, pady=10, fill=tk.BOTH, expand=True)# 创建用户输入区域self.input_frame = tk.Frame(root)self.input_frame.pack(padx=10, pady=5, fill=tk.X)self.user_input = tk.Entry(self.input_frame)self.user_input.pack(side=tk.LEFT, fill=tk.X, expand=True)self.user_input.bind("<Return>", self.send_message)self.send_button = tk.Button(self.input_frame, text="发送", command=self.send_message)self.send_button.pack(side=tk.RIGHT)# 初始化对话self.append_message("系统", "私人助理已就绪,请问有什么可以帮您?")# 设置系统角色self.system_role = "你是一位专业的私人助理,负责帮助用户处理各种事务。你的回答应该简洁、专业且友好。"def append_message(self, sender, message):self.chat_history.configure(state='normal')self.chat_history.insert(tk.END, f"{sender}: {message}\n\n")self.chat_history.configure(state='disabled')self.chat_history.see(tk.END)def send_message(self, event=None):user_message = self.user_input.get()if not user_message.strip():returnself.append_message("你", user_message)self.user_input.delete(0, tk.END)# 禁用发送按钮和输入框,避免重复发送self.send_button.config(state=tk.DISABLED)self.user_input.config(state=tk.DISABLED)# 在新线程中发送请求,避免界面冻结threading.Thread(target=self.get_ai_response, args=(user_message,)).start()def get_ai_response(self, user_message):try:headers = {"Content-Type": "application/json","Authorization": f"Bearer {self.api_key}"}data = {"model": "/maas/deepseek-ai/DeepSeek-R1","messages": [{"role": "system","content": self.system_role},{"role": "user","content": user_message}]}response = requests.post(self.api_url, headers=headers, json=data)if response.status_code == 200:result = response.json()ai_response = result.get('choices', [{}])[0].get('message', {}).get('content', "未能获取有效回复")self.append_message("助理", ai_response)else:self.append_message("系统", f"请求失败,状态码: {response.status_code}")messagebox.showerror("错误", f"API请求失败: {response.status_code}")except Exception as e:self.append_message("系统", f"发生错误: {str(e)}")messagebox.showerror("错误", f"发生异常: {str(e)}")finally:# 重新启用发送按钮和输入框self.root.after(0, lambda: [self.send_button.config(state=tk.NORMAL),self.user_input.config(state=tk.NORMAL),self.user_input.focus()])if __name__ == "__main__":root = tk.Tk()app = AIChatApp(root)root.mainloop()

总结

在大数据隐私风险下,我们可以尝试利用蓝耘 Maas 平台调用大模型 API 实现打造本地化 AI 助理,保护隐私数据不被泄露。通过 Python 代码实现 API 调用,开发带 UI 的交互助理,支持多轮对话。重中之重是蓝耘平台免费送超千万长期有效 Token,降低使用成本,为隐私保护下的智能问题解决提供新方案,为我们的AI助理实现提供了坚实的保障。
在这里插入图片描述

蓝耘平台注册链接奉上
https://cloud.lanyun.net//#/registerPage?promoterCode=0131


http://www.hkcw.cn/article/uTqqMxQORj.shtml

相关文章

智联未来:低空产业与AI新纪元-(下)

1. 隐形战场&#xff1a;全球规则制定权争夺战 低空经济的崛起&#xff0c;本质是数字主权的争夺战。当美国FAA将无人机适航认证周期延长至36个月&#xff0c;欧盟推出"天空云图"计划整合全境飞行数据时&#xff0c;中国正以制度创新构建自己的规则体系。 1.1 空域…

关于销售的几点注意事项

一、把客户当朋友聊 做买卖这事儿啊&#xff0c;说白了就是人和人打交道。您要是见着客户就背产品说明书&#xff0c;人家扭头就走。得学会听对方说话&#xff0c;琢磨他到底想要啥。就像您去菜市场买菜&#xff0c;摊主要是光说"这菜新鲜"&#xff0c;您可能没感觉…

C++语法系列之右值

前言 本来是想在C11里写这篇文章的&#xff0c;发现东西很多&#xff0c;就单独列一篇文章了&#xff0c; 右值这个概念是在C11中提出来的&#xff0c;以前只有左值和左值引用的概念&#xff0c;C11后提出了右值和右值引用&#xff0c;为什么要提出右值和右值引用&#xff1f;…

day17 常见聚类算法

目录 准备操作 聚类评估指标介绍 1.轮廓系数&#xff08;Sihouette Score&#xff09; 2.CH指数&#xff08;Calinski-Harabasz Index&#xff09; 3.DB指数&#xff08;Davies-Bounldin Index&#xff09; KMeans聚类 算法原理 确定簇数的方法&#xff1a;肘部法 KMeans算法的…

LCS 问题解释

最长公共子序列问题&#xff08;Longest Common Subsequence&#xff09;&#xff0c;该问题可以表述为&#xff0c;在 A , B A,B A,B 中找出一段子序列 x x x&#xff0c;使得 x x x 既是 A A A 的子序列&#xff0c;又是 B B B 的子序列。 你可以理解为&#xff0c;在两…

Windows最快速打开各项系统设置大全

目录 一、应用背景 二、设置项打开方法 2.1 方法一界面查找&#xff08;最慢&#xff09; 2.2 方法二cmd命令&#xff08;慢&#xff09; 2.3 方法三快捷键&#xff08;快&#xff09; 2.4 方法四搜索栏&#xff08;快&#xff09; 2.5 方法五任务栏&#xff08;最快&am…

OTSU算法原理与Python实现:图像二值化的自动阈值分割

1 引言 图像二值化是计算机视觉中的基础操作&#xff0c;它将灰度图像转换为黑白图像&#xff0c;常用于文档扫描、目标检测等任务。OTSU算法&#xff08;大津法&#xff09;是一种自动确定二值化阈值的算法&#xff0c;无需人工干预&#xff0c;通过最大化类间方差来分离前景和…

python:批量创建文件

#需求&#xff1a;在指定路径下批量创建3000#可以先弄个10个文本文件&#xff0c;文件格式为序号——物资类别——用户识别码组成 #1.序号从0001到3000 #2.物资类别包括&#xff1a;水果&#xff0c;烟酒&#xff0c;粮油&#xff0c;肉蛋&#xff0c;蔬菜 #3.用户识别码为9位的…

kafka学习笔记(三、消费者Consumer使用教程——配置参数大全及性能调优)

本章主要介绍kafka consumer的配置参数及性能调优的点&#xff0c;其kafka的从零开始的安装到生产者&#xff0c;消费者的详解介绍、源码及分析及原理解析请到博主kafka专栏 。 1.消费者Consumer配置参数 配置参数默认值含义bootstrap.servers无&#xff08;必填&#xff09;…

静态综合实验

题目 1.划分IP地址 因为所有网段基于192.168.1.0/24&#xff0c;所以需要自己进行合理的划分。如图&#xff0c;我已经划分完成。 2.启动 3.给五个路由器进行改名 4.给网关写入IP地址 R1 R2 R3 R4 5.完成网段的声明和环回接口的创建 6.在R1上进行ping&#xff0c;观察是否…

流媒体基础解析:音视频封装格式与传输协议

在视频处理与传输的完整流程中&#xff0c;音视频封装格式和传输协议扮演着至关重要的角色。它们不仅决定了视频文件的存储方式&#xff0c;还影响着视频在网络上的传输效率和播放体验。今天&#xff0c;我们将深入探讨音视频封装格式和传输协议的相关知识。 音视频封装格式 什…

保持本地 Git 项目副本与远程仓库完全同步

核心目标&#xff1a; 保持本地 Git 项目副本与 GitHub 远程仓库完全同步。 关键方法&#xff1a; 定期执行 git pull 命令。 操作步骤&#xff1a; 进入项目目录&#xff1a; 在终端/命令行中&#xff0c;使用 cd 命令切换到你的项目文件夹。执行拉取命令&#xff1a; 运行…

Go语言的context

Golang context 实现原理 本篇文章是基于小徐先生的文章的修改和个人注解&#xff0c;要查看原文可以点击上述的链接查看 目前我这篇文章的go语言版本是1.24.1 context上下文 context被当作第一个参数&#xff08;官方建议&#xff09;&#xff0c;并且不断的传递下去&…

2025年全国青少年信息素养大赛复赛C++算法创意实践挑战赛真题模拟强化训练(试卷3:共计6题带解析)

2025年全国青少年信息素养大赛复赛C++算法创意实践挑战赛真题模拟强化训练(试卷3:共计6题带解析) 第1题:四位数密码 【题目描述】 情报员使用4位数字来传递信息,同时为了防止信息泄露,需要将数字进行加密。数据加密的规则是: 每个数字都进行如下处理:该数字加上5之后除…

NeRF PyTorch 源码解读 - 体渲染

文章目录 1. 体渲染公式推导1.1. T ( t ) T(t) T(t) 的推导1.2. C ( r ) C(r) C(r) 的推导 2. 体渲染公式离散化3. 代码解读 1. 体渲染公式推导 如下图所示&#xff0c;渲染图像上点 P P P 的颜色值 c c c 是累加射线 O P → \overrightarrow{OP} OP 在近平面和远平面范围…

Sentiment analysis integrating LangGraph and large-scale conceptual models

Sentiment analysis integrating LangGraph and large-scale conceptual models 核心目标&#xff1a; 让电脑更聪明地理解大量用户评论&#xff08;比如邮件、社交媒体、调查问卷&#xff09;&#xff0c;自动分析出大家是夸还是骂&#xff08;情感分析&#xff09;&#xff…

DeepSeek R1-0528:深度思考能力的重大跃升与技术突破全解析

引言 2025年5月28日&#xff0c;DeepSeek再次以其标志性的"深夜发布"方式&#xff0c;悄然推出了R1模型的最新版本——DeepSeek-R1-0528。这次被官方定义为"小版本升级"的更新&#xff0c;实际上带来了令人瞩目的性能提升。新版本不仅在数学、编程与通用逻…

Python 训练营打卡 Day 40

训练和测试的规范写法 一、黑白图片的规范写法&#xff0c;以MNIST数据集为例 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms # 用于加载MNIST数据集 from torch.utils.data import DataLoader # 用于创建…

题海拾贝:P8598 [蓝桥杯 2013 省 AB] 错误票据

Hello大家好&#xff01;很高兴我们又见面啦&#xff01;给生活添点passion&#xff0c;开始今天的编程之路&#xff01; 我的博客&#xff1a;<但凡. 我的专栏&#xff1a;《编程之路》、《数据结构与算法之美》、《题海拾贝》 欢迎点赞&#xff0c;关注&#xff01; 1、题…

AI炼丹日志-26 - crawl4ai 专为 AI 打造的爬虫爬取库 上手指南

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; Java篇&#xff1a; MyBatis 更新完毕目前开始更新 Spring&#xff0c;一起深入浅出&#xff01; 大数据篇 300&#xff1a; Hadoop&…