我在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貌似不太聪明的样子,连博主都没听过?没理由啊。


总结

老夫只有三步:

  1. 申请key
  2. 调api
  3. 解决跨域

大家有什么好的点子,可以私信博主,博主最喜欢的就是不务正业的需求。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

京东采销面对面,洞悉行业新趋势 京东3C数码生态大会在武汉圆满举行

为促进湖北省3C数码产业发展,本地企业降本增效、促进行业交流、充分发挥京东集团全链路生态服务能力,支持地方3C特色产业提质增量。2023年11月23日,由京东零售、京东物流主办,湖北省电子商务行业协会联合协办的“聚力共赢、携手共…

算法笔记:OPTICS 聚类

1 基本介绍 OPTICS(Ordering points to identify the clustering structure)是一基于密度的聚类算法 OPTICS算法是DBSCAN的改进版本 在DBCSAN算法中需要输入两个参数: ϵ 和 MinPts ,选择不同的参数会导致最终聚类的结果千差万别,因此DBCSAN…

Hologres性能优化指南1:行存,列存,行列共存

在Hologres中支持行存、列存和行列共存三种存储格式&#xff0c;不同的存储格式适用于不同的场景。 在建表时通过设置orientation属性指定表的存储格式&#xff1a; BEGIN; CREATE TABLE <table_name> (...); call set_table_property(<table_name>, orientation,…

什么是工业物联网(IOT)?这样的IOT平台你需要吗?——青创智通

物联网(IOT)是指在互联网上为传输和共享数据而嵌入传感器和软件的互联设备的广泛性网络。这允许将从物理对象收集的信息(数据)存储在专用服务器或云中。通过分析这些积累的信息&#xff0c;通过提供最优的设备控制和方法&#xff0c;可以实现一个更安全、更方便的社会。在智能家…

2023.11.23 云服务器实现 Spring Boot 项目文件上传并访问

环境介绍 云服务器&#xff1a;京东云云服务器系统&#xff1a; CentOS 7.9JDK 版本&#xff1a;1.8Spring Boot 版本&#xff1a;2.7.17 具体步骤 步骤一 首先我们得先创建一个 Spring Boot 项目 创建如下目录结构 关于如何创建一个 Spring Boot 项目 请点击下方链接详细了解 …

ARKit增加一个盒子

ARKit增加一个盒子 体验一下ARKit的能力&#xff0c;在室内随便加点小球&#xff0c;然后在AR中显示出来。 效果如下图&#xff1a; 以下为操作流程。 新建项目 新建一个空项目&#xff0c;项目一定要选择 Augmented Reality App&#xff0c;能够省很多的事。 之后的 conte…

想问问各位大佬,网络安全这个专业普通人学习会有前景吗?

网络安全是一个非常广泛的领域&#xff0c;涉及到许多不同的岗位。这些岗位包括安全服务、安全运维、渗透测试、web安全、安全开发和安全售前等。每个岗位都有自己的要求和特点&#xff0c;您可以根据自己的兴趣和能力来选择最适合您的岗位。 渗透测试/Web安全工程师主要负责模…

SIP协议在语音通信的应用方式

在企业语音通信的过程中&#xff0c;SIP协议支持的网络通信技术通过网络为用户提供了无数的通信便利&#xff0c;已成为企业不可或缺的重要通信技术。由于SIP协议是语音通信帮助企业实现这些优势的原因&#xff0c;因此了解支持这些呼叫的SIP协议的上下文至关重要。 什么是SIP?…

累计定点160+车型,商汤绝影凭什么领跑规模化量产?

2023广州车展火热进行&#xff0c;智能化技术加速“内卷”。 商汤绝影多款合作量产车型亮相2023广州车展&#xff0c;包括昊铂 GT、传祺ES9、E8系列和本田雅阁、捷途旅行者、极氪X等&#xff0c;全方位呈现在智能驾驶和智能座舱领域的最新成果&#xff0c;以AI“新科技”&…

【快速解决】使用IDEA快速搭建SpringBoot项目(超详细)

前言 Spring Boot是Spring Framework的一款脚手架式框架&#xff0c;可以帮助开发者快速构建基于Spring的企业级应用程序。本篇博客将介绍如何使用IntelliJ IDEA&#xff08;以下简称IDEA&#xff09;来快速搭建一个Spring Boot项目。 目录 ​编辑 前言 使用IDEA快速搭建Spri…

社区物联网云服务架构设计

文章目录 1 摘要2 架构图2.1 社区物联网云服务网络拓扑图2.2 社区物联网云服务通讯流程图2.3 社区远程开锁功能流程图 3 应用场景 1 摘要 随着社区管理越来越智能化&#xff0c;社区物联网升级与改造的市场空间也越来越大。社区物联网包含楼宇对讲、门禁门锁、通道闸等等设备系…

如何一键消除图片里的水印?图片去水印教程一看就会!

如何一键消除图片水印&#xff1f;在现今的数字时代&#xff0c;我们常常会遇到带有水印的图片&#xff0c;而传统的方法往往费时且复杂&#xff0c;让我们感到困扰。那么如何一键消除图片水印呢&#xff1f;今天&#xff0c;我们为您推荐一款非常实用的去水印软件&#xff0c;…