当前位置: 首页 > news >正文

通义千问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.lryc.cn/news/484122.html

相关文章:

  • H3C ER8300G2-X未授权导致信息泄露漏洞(CVE-2024-32238)
  • 随手记:简单实现纯前端文件导出(XLSX)
  • SwiftUI 高级开发教程系列 - 第 3 章:数据持久化
  • 代码随想录第二十四天| 93.复原IP地址 78.子集 90.子集II
  • Linux编程:基于 Unix Domain Socket 的进程/线程间通信实时性优化
  • PET-文件包含-FINISHED
  • 《WebGL编程指南》书籍分享
  • go T 泛型
  • React的基础API介绍(二)
  • 远程开发测试必看:如何在群晖NAS上运行网页版Ubuntu
  • JAVA题目笔记(十五)经典算法题
  • 「Mac玩转仓颉内测版8」入门篇8 - Cangjie函数与方法
  • 2024最新版JavaScript逆向爬虫教程-------基础篇之Proxy与Reflect详解
  • 代码修改材质参数
  • [C++11] 包装器 : function 与 bind 的原理及使用
  • java项目-jenkins任务的创建和执行
  • 单片机中的BootLoader(重要的概念讲解)
  • 【数据分享】中国食品工业年鉴(1984-2023) PDF
  • 优选算法 - 1 ( 双指针 移动窗口 8000 字详解 )
  • FairyGUI和Unity联动(入门篇)
  • Go:文件输入输出以及json解析
  • 编写红绿起爆线指标(附带源码下载)
  • 设计模式(四)装饰器模式与命令模式
  • Android11 修改系统语言
  • vue3 查看word pdf excel文件
  • java八股-垃圾回收机制-垃圾回收算法,分代回收,垃圾回收器
  • iSCSI 和FC的概述
  • 一文了解Android中的AudioFlinger
  • 超全面!一文带你快速入门HTML,CSS和JavaScript!
  • C语言 | Leetcode C语言题解之第557题反转字符串中的单词III