通义千问API调用测试 (colab-python,vue)

文章目录

  • 代码(来自官网)
  • colab中用python测试
  • Qwen2.5
    • 在官网上查看并确定过期时间
    • 这里看到我的免费额度到25年5月
    • 在同一个页面,点击API示例
  • 前端调用
    • 直接在前端调用的优缺点
    • 以vue为例(代码是基于官网node.js的代码转换而来)

代码(来自官网)

https://help.aliyun.com/zh/model-studio/getting-started/first-api-call-to-qwen?spm=a2c4g.11186623.help-menu-2400256.d_0_1_0.50d1b0a8IwWMDQ&scm=20140722.H_2840915._.OR_help-V_1

https://help.aliyun.com/zh/model-studio/user-guide/text-generation?spm=a2c4g.11186623.0.0.76741d1cJK9Ugg#24e54b27d4agt

pip install -U dashscope
import os
from openai import OpenAItry:client = OpenAI(api_key="这里要换成百炼API Key,sk-xxx",base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",)completion = client.chat.completions.create(model="qwen-plus",  # 模型列表:https://help.aliyun.com/zh/model-studio/getting-started/modelsmessages=[{'role': 'system', 'content': 'You are a helpful assistant.'},{'role': 'user', 'content': '你是谁?'}])print(completion.choices[0].message.content)
except Exception as e:print(f"错误信息:{e}")print("请参考文档:https://help.aliyun.com/zh/model-studio/developer-reference/error-code")

colab中用python测试

在这里插入图片描述
在这里插入图片描述

Qwen2.5

我打算使用这个免费额度
在这里插入图片描述

在官网上查看并确定过期时间

模型广场中找到对应的产品,点击查看详情
在这里插入图片描述

这里看到我的免费额度到25年5月

在这里插入图片描述

在同一个页面,点击API示例

在这里插入图片描述

前端调用

注:在 React 或 Vue 前端应用中,可以直接使用 axios 或 fetch 来调用 OpenAI API 或通义千问 API,而无需后端语言。不过,以下是一些情况可能仍会考虑使用后端的原因:

直接在前端调用的优缺点

优点:
开发简便:省去了后端的开发和维护,前端直接使用 axios 或 fetch 即可与 API 通信。
更快速的响应:直接从前端发起 API 请求,避免了经过后端的额外通信延迟。

缺点:
安全性问题:直接在前端调用 API 会暴露你的 API 密钥在浏览器中,这是很不安全的。用户可以在浏览器的开发者工具中轻易地看到你的 API 密钥,可能导致滥用和 API 费用的增加。
跨域限制:有些 API 出于安全原因会限制跨域访问,需要通过后端代理转发请求。
流量和配额控制:如果应用流量大,直接调用 API 的流量无法被控制,这可能导致 API 超负荷或产生高额费用。
在后端设置中转服务的优势
安全性:后端可以隐藏 API 密钥。前端将请求发送到后端,后端再调用 OpenAI API 或通义千问 API,这样 API 密钥不会暴露在前端。
请求管理:后端可以管理请求频率、添加缓存、处理失败重试等,提高应用的稳定性和响应速度。
数据处理:在调用 API 后,后端可以对结果进行一些数据处理或格式化,减少前端的负担,让前端专注于展示。

如果要在前端直接调用,如何保证一定的安全性?
如果你希望避免后端,可以考虑以下方法来减少风险(但并不能完全防止密钥泄露):
服务器环境变量:使用环境变量配置 API 密钥,不在代码中直接暴露密钥。
前端环境限制:将应用部署在一个有限访问范围的网络环境(例如公司内网),不过这对于公开的 Web 应用并不适用。
代理 API 访问:通过前端代理工具(如 Vite 代理)绕过一些跨域问题,但仍会暴露密钥。

总结来说,如果只是为了测试或快速验证功能,你可以在前端直接调用 LLM API。但对于生产环境,建议使用后端中转以确保应用的安全性和稳定性。

以vue为例(代码是基于官网node.js的代码转换而来)

pnpm install --save openai
某一个测试按钮
<button @click="test3">测试qianwen</button>async function getChatCompletion(userMessage) {console.log('qianwen');const apiKey = "替换为你的实际 API Key";  const baseURL = "https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions";try {const response = await axios.post(baseURL,{model: "qwen-plus",  // 模型列表:https://help.aliyun.com/zh/model-studio/getting-started/modelsmessages: [{ role: "system", content: "You are a helpful assistant." },{ role: "user", content: userMessage }]},{headers: {"Content-Type": "application/json","Authorization": `Bearer ${apiKey}`}});console.log(response.data.choices[0].message.content);return response.data.choices[0].message.content;} catch (error) {console.log(`错误信息:${error.message}`);console.log("请参考文档:https://help.aliyun.com/zh/model-studio/developer-reference/error-code");return null;}
}const test3 = ()=>{getChatCompletion('三天两夜的深圳行程')
}

控制台的输出
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/11336.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

BLDC基础知识复习【一】

焊接DDR的时候用镊子轻轻抖动一下&#xff0c;能晃动后复位代表焊接成功&#xff1b;用棉签和洗板水清洗板子&#xff0c;不要用纸擦 无刷没有定子和换向器&#xff0c;转子和定子反过来了&#xff1a; KV值越大&#xff0c;电机转速越大。电机转速 KV * 供电电压 外转子电机…

鸿蒙UI开发——自定义UI绘制帧率

1、概 述 随着设备屏幕的不断演进&#xff0c;当前主流设备采用LTPO屏幕&#xff08;可变刷新率屏幕&#xff09;&#xff0c;此类屏幕支持在多个档位之间切换屏幕帧率。 对于快速变化的内容&#xff0c;如射击游戏&#xff0c;交互动画等&#xff0c;显示帧率越高&#xff0…

递归写斐波那契数

在思考一些C语言编程题的解法时我们经常会碰到的一种算法是递归&#xff0c;递归的字面意思是传递回归&#xff0c;会用例子来解释和运用。 递归 例&#xff1a;在控制台输出指定项数的斐波那契数 斐波那契数列数列是指&#xff1a;1,1,2,3,5,8,13,21,34......从第三项开始等…

手写JDK动态代理实现AOP

AOP底层&#xff1f; AOP&#xff08;Aspect Oriented Programming&#xff0c;面向切面编程&#xff09;在 Java 中的实现有多种方式&#xff0c;其中使用 JDK 动态代理和 CGLIB 代理较为常见。 当你的应用程序遵循面向接口编程的原则时&#xff0c;JDK 动态代理是一个自然的…

Gin框架

GoWeb框架 GIN框架 基于httprouter开发的Web框架 安装与使用 安装 下载并安装GIN go get -u github.com/gin-gonic/gin 示例 package mainimport ("github.com/gin-gonic/gin" )func main() {// 创建一个默认的路由引擎r : gin.Default()// GET&#xff1a;请…

nodejs - nodejs安装步骤

安装 NodeJS 1.下载 NodeJS下载官网&#xff1a;https://nodejs.cn/download/ 2.验证 下载后解压安装&#xff0c;运行如下命令验证安装是否成功&#xff1a; node -v npm -v3.查看默认存放位置 查看npm默认存放位置&#xff0c;运行命令如下&#xff1a; npm get prefix…

Spring Boot框架:计算机课程管理的工程认证之光

摘要 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步成熟。本文介绍了基于工程教育认证的计算机课程管理平台的开发全过程。通过分析基于工程教育认证的计算机课程管理平台管理的不足&#xff0c;创建了一个计算机管理基于工程教育认…

游戏设计:推箱子【easyx图形界面/c语言】

在之前写程序设计的大作业时&#xff0c;在哔哩哔哩上跟着一个视频的学习的成果【第一个练习的】 今天整理文件的时候看到的&#xff0c;就发出来一下【CSDN和B站都有详细教程】 不是大项目&#xff0c;只有两个界面 这个代码只有两百行不到&#xff0c;但通过这个把基本的运…

C++数学

前言 C算法与数据结构 打开打包代码的方法兼述单元测试 数论&#xff1a;质数、最大公约数、菲蜀定理 组合数学汇总 计算几何 博弈论 曼哈顿距离与切比雪夫距离 红线是哈曼顿距离&#xff0c;绿线是切比雪夫距离。 二维曼哈顿距离转切比雪夫距离 曼哈顿距离&#xff1a;|…

如何安装VMWare Workstation 16虚拟机

1、到VMware官网下载安装包。 2、下一步。 3、勾选同意协议&#xff0c;下一步。 4、更换安装路径&#xff0c;下一步。 5、取消全部勾选&#xff0c;下一步。 6、下一步。 7、安装。 8、等待安装完成。 9、安装完成&#xff0c;启动软件。 10、输入许可证ZF3R0…

光流分析技术

光流分析技术是一种重要的计算机视觉和图像处理技术&#xff0c;它通过分析连续帧图像中像素点的运动轨迹和速度&#xff0c;来捕捉图像中物体的运动和相邻帧之间的位移信息。以下是对光流分析技术的详细介绍&#xff1a; 一、光流的基本概念 光流&#xff08;Optical Flow&am…

Bearer 和 Digest 两个区别

Bearer 和 Digest 是两种常见的身份验证机制,主要用于在网络通信中验证用户的身份,以下是它们之间的区别: 认证原理 Bearer:也称为承载令牌认证,其核心是使用一个令牌(Token)来代表用户的身份信息。用户在进行身份验证后,服务器会颁发一个令牌给客户端,客户端在后续…

H264三种RTP打包方式

1. 单一NALU模式 单一NALU模式 适用于小于MTU&#xff08;最大传输单元&#xff09;的NALU。这种模式下&#xff0c;一个RTP包包含一个完整的NALU。RTP头部之后紧跟着NALU头和NALU数据。 封装格式&#xff1a; RTP头 | NALU头 | NALU数据这种方式简单直接&#xff0c;但仅适…

亚马逊评论爬虫+数据分析

爬取评论 做分析首先得有数据&#xff0c;数据是核心&#xff0c;而且要准确&#xff01; 1、爬虫必要步骤&#xff0c;选好框架 2、开发所需数据 3、最后测试流程 这里我所选框架是seleniumrequest&#xff0c;很多人觉得selenium慢&#xff0c;确实不快&#xff0c;仅针对此…

批量缓存模版

批量缓存模版 缓存通常有两种使用方式&#xff0c;一种是Cache-Aside&#xff0c;一种是cache-through。也就是旁路缓存和缓存即数据源。 一般一种用于读&#xff0c;另一种用于读写。参考后台服务架构高性能设计之道。 最典型的Cache-Aside的样例&#xff1a; //读操作 da…

09 Oracle数据拯救:Flashback Technologies精细级数据恢复指南

文章目录 09 Oracle数据拯救&#xff1a;Flashback Technologies精细级数据恢复指南一、Flashback Technologies概览二、Flashback Query&#xff1a;查询过去的数据三、Flashback Table&#xff1a;恢复整个表四、Flashback Database&#xff1a;恢复整个数据库五、总结与最佳…

BIST(Built-in Self-Test,内建自测试)学习笔记

参考资料: 内建自测试&#xff08;Built-in Self-Test&#xff0c;简称BIST&#xff09;详解_built in self test-CSDN博客 芯片测试术语 &#xff0c;片内测试(BIST)&#xff0c;ATE测试-CSDN博客 可能是DFT最全面的介绍--BIST - 知乎 (zhihu.com) 汽车功能安全--TC3xx LB…

three.js 杂记

在Three.js中&#xff0c;Object3D是所有3D对象的基类&#xff0c;而Group是Object3D的一个子类。Group的目的是为了简化处理多个对象的集合。当你将对象添加到Group中时&#xff0c;它们会以一个单元格的形式被处理&#xff0c;参与Group的某些操作&#xff0c;例如位置更新、…

go函数传值是值传递?还是引用传递?slice案例加图解

先说下结论 Go语言中所有的传参都是值传递&#xff08;传值&#xff09;&#xff0c;都是一个副本&#xff0c;一个拷贝。 值语义类型&#xff1a;参数传递的时候&#xff0c;就是值拷贝&#xff0c;这样就在函数中就无法修改原内容数据。 基本类型&#xff1a;byte、int、bool…

穿越时空的全球时钟:一个实时多时区显示的网页应用

引言 在当今这个全球化时代&#xff0c;人们经常需要与世界各地的朋友、同事或客户进行沟通。然而&#xff0c;由于时差的存在&#xff0c;找到一个合适的沟通时间往往成为一大挑战。为了解决这一问题&#xff0c;我们开发了一个名为“全球时钟”的网页应用&#xff0c;它能够…