我在electron中集成了自己的ai大模型
同学们可以私信我加入学习群!
正文开始
- 前言
- 一、大模型选择
- 二、获取key
- 三、调用api
- 四、调用ai模型api时,解决跨域
- 总结
前言
最近单位把gpt、文心一言、通义千问、星火等等等等你能想到的ai大模型都给禁掉了,简直丧心病狂。
不知道有多少感同身受的难兄难弟,反正我是忍不了了。所以我自己调用大模型的api,搭建了一个小工具。
难点基本没有,分享出来,做个参考。
ai模型以通义千问为例。
一、大模型选择
不差钱的选文心一言,传说是国内最强,也不知道有没有什么事实依据。反正像我这样差钱的,选择通义千问200w算力基础版+100w算力plus版,180天有效期。用不完,根本用不完。
如果哪天用完了,是续费,还是拿同事账号继续白嫖,都可以接受。毕竟付费模式,100w算力也才8块钱,对于只吃大布丁,不看小布丁的家庭而言,毛毛雨啦。
二、获取key
大模型调用要根据不同厂家的不同方案来集成,但是无一例外,大部分厂家都提供了api调用的方式。
每个人都可以像调用自家后端接口一样,去掉用官方提供的api。咱们自家的后端,通过用户名密码就能验证用户是否为合法用户,那这种公用的api如何确定调用的人是否合法呢,那就是key的概念。
可以把key当成一把钥匙,它就相当于用户名密码的功能,告诉后端系统,我是合法用户,给我数据吧。
阿里,申请key的页面:https://dashscope.console.aliyun.com/apiKey

拿到key后,就可以合法地白嫖ai大模型了,只要每次调用接口的时候,带着key就行。
三、调用api
先上接口调用示例代码:
method: 'post',url: 'http://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation',
headers: {'Authorization': 'Bearer sk-c0fda7c09b304ab*************************'},
如果按照官网介绍,一个具备key信息的接口大概是上面这样的。“ sk-c0fda7c09b304ab*************************”就是自己的key,为防泄漏,我把后面的内容用*表示。每个人一个key,如果你的key被别人知道了,那人家就可以愉快地消费你的算力。当然,key泄露后第一件事,就是赶紧弃用原来的,重新申请。
不出意外的话,一定会出意外的。
直接在前端按照上面的方式调用接口,大概率会报跨域错误。这是篇回忆的文章,所以我写文章时,也没有具体的报错信息可供参考。如果跨域都不了解的同学,我建议后面的步骤还是不要研究了,可能会有点难度。还是直接私信我,信得过兄弟的话,就让我给你做个壳,你输入key就直接能用。
我以那些欠我钱不还的所有亲戚的身家性命为誓,绝对不会开后门坑人。
言归正传,我尝试了各种方式,都无法避免跨域,所以只能说明问题不在我们写的前端代码,而是ai厂家后端服务的设置。如果有直接通过前端调用阿里通义千问大模型,并且成功的哥们,衷心希望不吝赐教。
四、调用ai模型api时,解决跨域
我在用apifox尝鲜调用api时,是成功的。这说明什么,这说明转一下后端调用,这个接口就允许跨域了。这需要一点分析能力,如果理解不了,那就记住结论:把前端调用方式,改成后端调用。
因为我的项目是基于electron,所以自带后端,只要用后端框架甚至是用nodejs手撸一个最简单的后端服务就行。如果前后端分离项目,可能就麻烦点了,需要在后端增加一个接口。
所以我们的整体思路就从:前端——>ai接口
变为:
前端——>后端——>ai接口
我在electron用koa监听3001端口,开启了一个后端服务:
const Koa = require('koa')
const Router = require('koa-router')
const cors = require('koa-cors')
const bodyParser = require('koa-bodyparser')
const https = require('https')
const axios = require('axios')
exports.createServerKoa=()=>{const koa = new Koa();const router = new Router();koa.use(cors())koa.use(bodyParser())router.post('/api/getQwenOutput', async (ctx, next) => {ctx.set('Access-Control-Allow-Origin', '*');var data = JSON.stringify(ctx.request.body);var config = {method: 'post',url: 'http://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation',headers: {'Authorization': 'Bearer sk-c0fda7c09b304a*****************','Content-Type': 'application/json','Accept': '*/*'},httpsAgent: new https.Agent({rejectUnauthorized: false,}),data : data};const aiResult=await axios(config)ctx.body={data:aiResult.data}});koa.use(router.routes());koa.listen(3001,()=>{console.log('createServerKoa启动')});
}
选择koa是因为它轻量简单,如果前后端分离项目,建议还是选择midwayjs、nestjs等,如果已有java后端,那就直接在controller层加接口即可。一句话,只要能有个后端接口即可。
如果是和我一样,就为了这个ai工具开了后端服务和接口,那一定要注意别忘了写
ctx.set('Access-Control-Allow-Origin', '*');
要不然后端调ai的接口没问题,但是自己前端调自己后端跨域被拦,就尴尬了。
这一通操作下来,应该就能正常调用ai的接口了。
效果如图:

就是这个ai貌似不太聪明的样子,连博主都没听过?没理由啊。
总结
老夫只有三步:
- 申请key
- 调api
- 解决跨域
大家有什么好的点子,可以私信博主,博主最喜欢的就是不务正业的需求。
相关文章:
我在electron中集成了自己的ai大模型
同学们可以私信我加入学习群! 正文开始 前言一、大模型选择二、获取key三、调用api四、调用ai模型api时,解决跨域总结 前言 最近单位把gpt、文心一言、通义千问、星火等等等等你能想到的ai大模型都给禁掉了,简直丧心病狂。 不知道有多少感同…...
oracle rac环境归档日志清除
文章目录 一、处理步骤1、使用终端登录上服务器查看磁盘使用状态2、使用恢复备份管理工具RMAN删除归档日志 二、详细操作步骤三、定时任务自动清归档日志1、编写删除脚本4、测试脚本运行情况5、设置定时任务每周执行一次,并测试运行效果 昨天单位的所有系统都连不上…...
【数据结构】树与二叉树(廿六):树删除指定结点及其子树(算法DS)
文章目录 5.3.1 树的存储结构5. 左儿子右兄弟链接结构 5.3.2 获取结点的算法1. 获取大儿子、大兄弟结点2. 搜索给定结点的父亲3. 搜索指定数据域的结点4. 删除结点及其左右子树a. 逻辑删除与物理删除b. 算法DSTc. 算法解析d. 代码实现递归释放树算法DS e. 算法测试 5. 代码整合…...
交叉编译 和 软硬链接 的初识(面试重点)
目录 交叉编译的初认识Q&A Q1: 编译是什么? Q2: 交叉编译是什么? Q3: 为什么要交叉编译 Q3.1:树莓派相对于C51大得多,可以集成编译器比如gcc,那么树莓派就不需要交叉编译了吗? Q4: 什么是宿主机和…...
Docker attach 命令
docker attach:连接到正在运行中的容器。 语法 docker attach [OPTIONS] CONTAINER要attach上去的容器必须正在运行,可以同时连接上同一个container来共享屏幕(与screen命令的attach类似)。 官方文档中说attach后可以通过CTRL-…...
Keil5个性化设置及常用快捷键
Keil5个性化设置及常用快捷键 1.概述 这篇文章是Keil工具介绍的第三篇文章,主要介绍下Keil5优化配置,以及工作中常用的快捷键提高开发效率。 第一篇:《安装嵌入式单片机开发环境Keil5MDK以及整合C51开发环境》https://blog.csdn.net/m0_380…...
rtsp点播异常出现‘circluar_buffer_size‘ option was set but it is xx
先说现象: 我使用potplay播放器来点播rtsp码流的时候可以点播成功,同事使用vlc和FFplay来点播rtsp码流的时候异常。 排查思路: 1.开始怀疑是oss账号问题,因为ts切片数据是保存在oss中的,我使用的是自己的oss账号,同事使用的是公司…...
C++ Qt QString用法详解与代码演示
作者:令狐掌门 技术交流QQ群:675120140 csdn博客:https://mingshiqiang.blog.csdn.net/ 文章目录 创建和初始化长度和容量修改字符串字符串比较查找和提取数值转换arg格式化`arg` 的基本用法精确控制占位符多占位符的复杂替换使用大括号占位符注意事项迭代Unicode 和编码QSt…...
安全攻击及防范手册
目录 1 概述 1.1 简介 1.2 参考资料 2 安全隐患及预防措施 <...
Visual Studio 使用MFC 单文档工程绘制单一颜色直线和绘制渐变颜色的直线(实例分析)
Visual Studio 使用MFC 单文档工程从创建到实现绘制单一颜色直线和绘制渐变颜色的直线 本文主要从零开始创建一个MFC单文档工程然后逐步实现添加按键(事件响应函数),最后实现单一颜色直线的绘制与渐变色直线的绘制o( ̄▽࿾…...
一起学docker系列之八使用 Docker 安装配置 MySQL
目录 前言步骤 1:拉取 MySQL 镜像步骤 2:运行 MySQL 容器步骤 3:检查容器状态步骤 4:进入 MySQL 容器步骤 5:配置 MySQL 字符编码步骤 6:重启 MySQL 容器步骤 7:测试字符编码步骤 8:…...
4G执法记录仪在大型安保集团,保安集团、蓝天救援队中的 应用,行为规范化,人员定位,考勤打卡,应急指挥调度
【智能化升级】揭秘4G/5G执法记录仪在安保与救援领域如何重塑行业标准与效率 在快速发展的社会当中,大型安保集团、保安集团和蓝天救援队所肩负的任务日益繁重与复杂。无论是在平时的治安巡查、安保执勤,还是在突发公共事件的应急响应中,如何…...
分布式事务,一致性理论, 两阶段提交(2PC), 三阶段提交(3PC),Seata分布式事务方案
文章目录 分布式事务:1、一致性理论2、两阶段提交(2PC)3、三阶段提交(3PC)4、Seata分布式事务方案 上一篇降到了 分布式锁,先来和大家聊一聊分布式事务, 分布式锁的链接如下: http…...
摆脱无用代码的负担:TreeShaking 的魔力
🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…...
A-莲子的软件工程学【算法必会题目】(JavaPythonC++实现)
文章目录 A-莲子的软件工程学题目背景解题思路Python题解代码Java题解代码C++题解代码代码OJ评判结果代码讲解Python 代码解释:Java 代码解释:C++ 代码解释:寄语A-莲子的软件工程学 题目背景 在宇宙射线的轰击下,莲子电脑里的一些她自己预定义的函数被损坏了。 对于一名…...
STM32-SPI1控制AD7705(Sigma-Delta-ADC芯片)
STM32-SPI1控制AD7705(Sigma-Delta-ADC芯片) 原理图手册说明功能方框图引脚功能 片内寄存器通信寄存器(RS2、RS1、RS00、0、0)设置寄存器时钟寄存器数据寄存器(RS2、RS1、RS00、1、1)测试寄存器(…...
13年老鸟总结,性能测试方法汇总+性能响应很慢排查方法(详全)
目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、性能测试包含哪…...
[网络] 3. HTTP 3 与 HTTP 2 有什么区别
协议不同 HTTP2 是基于 TCP 协议实现的 HTTP3 是基于 UDP 协议实现的QUIC HTTP3 新增了 QUIC 协议来实现可靠性的传输握手次数 HTTP2 是基于 HTTPS 实现的,建立连接需要先进行 TCP 3次握手,然后再进行 TLS 3次握手,总共6次握手。 HTTP3 只需要…...
IDEA中的Postman?完全免费!
Postman是大家最常用的API调试工具,那么有没有一种方法可以不用手动写入接口到Postman,即可进行接口调试操作?今天给大家推荐一款IDEA插件:Apipost Helper,写完代码就可以调试接口并一键生成接口文档!而且还…...
用JAVA编程解决数位和相等问题
如果一个正整数转化成二进制与转换成八进制后所有数位的数字之和相等,则称为数位和相等的数。 前几个数位和相等的正整数为 1, 8, 9, 64, …… 请问第 23 个数位和相等的正整数是多少?用JAVA编程解决 可以通过编程计算第 23 个数位和相等的正整…...
Python|GIF 解析与构建(5):手搓截屏和帧率控制
目录 Python|GIF 解析与构建(5):手搓截屏和帧率控制 一、引言 二、技术实现:手搓截屏模块 2.1 核心原理 2.2 代码解析:ScreenshotData类 2.2.1 截图函数:capture_screen 三、技术实现&…...
龙虎榜——20250610
上证指数放量收阴线,个股多数下跌,盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型,指数短线有调整的需求,大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的:御银股份、雄帝科技 驱动…...
iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘
美国西海岸的夏天,再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至,这不仅是开发者的盛宴,更是全球数亿苹果用户翘首以盼的科技春晚。今年,苹果依旧为我们带来了全家桶式的系统更新,包括 iOS 26、iPadOS 26…...
简易版抽奖活动的设计技术方案
1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...
【网络安全产品大调研系列】2. 体验漏洞扫描
前言 2023 年漏洞扫描服务市场规模预计为 3.06(十亿美元)。漏洞扫描服务市场行业预计将从 2024 年的 3.48(十亿美元)增长到 2032 年的 9.54(十亿美元)。预测期内漏洞扫描服务市场 CAGR(增长率&…...
聊聊 Pulsar:Producer 源码解析
一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台,以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中,Producer(生产者) 是连接客户端应用与消息队列的第一步。生产者…...
【大模型RAG】Docker 一键部署 Milvus 完整攻略
本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装;只需暴露 19530(gRPC)与 9091(HTTP/WebUI)两个端口,即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...
uniapp微信小程序视频实时流+pc端预览方案
方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度WebSocket图片帧定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐RTMP推流TRTC/即构SDK推流❌ 付费方案 (部分有免费额度&#x…...
Matlab | matlab常用命令总结
常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...
【JVM面试篇】高频八股汇总——类加载和类加载器
目录 1. 讲一下类加载过程? 2. Java创建对象的过程? 3. 对象的生命周期? 4. 类加载器有哪些? 5. 双亲委派模型的作用(好处)? 6. 讲一下类的加载和双亲委派原则? 7. 双亲委派模…...
