AI开发 - 用GPT写一个GPT应用的真实案例

ops/2024/12/19 21:33:40/

就在昨天,我的同事推荐给我了一个第三方的公共大模型API,这个API集合了国际上上几乎所有知名的大模型,只需要很少的费用,就可以接入到这些大模型中并使用它们。成本之低,令人乍舌!包括我们现在无法试用的 GPT-4o也在其中。

考虑到平台规则,在这里我就不说这个公共API平台的名字了,简称A平台吧。

之前我写过一篇文章:大模型:把GPT搬回家 - chatGPT的本地化API -Node.js调用

在文章中,我介绍了如何实现GPT的本地化,但是前提是需要一台美国服务器,需要有openai的付费账号。

而现在,上面的这个公共API平台A平台,无需科学上网,也无需注册任何大模型的账号,直接就可以调用。所以,这让一切变得简单了很多。

所以我忽然突发奇想,能否让GTP ,用这个API 来设计一个GPT本地应用呢?

于是我我就开始尝试了,(需要说明的是,A平台也提供web版,我在这次测试中还是用了GTP的web对话来完整我上面的设想,主要是比较习惯)

于是我就问了GPT三轮 ,第一轮如图

 然后第二轮和第三轮,我加了一些其他的条件,比如增加了loading效果之类的、增加新话题按钮等等。GTP全部妥妥地完成了,包括 html、css、js 全部都妥妥的完成了!(注意:GPT 官方web对话框目前已经升级了,会自动切换画面,并且会在原答案上迭代答案,不再是不管三七二十一的输出,非常实用。)

然后我就又用Node.js 做了个webServer, 这样 可以放静态HTML ,也可以用来做我本地地API接入A平台的API,模型设置为GPT-4o,(如何用Node.js 来做一个webserver,这个非常简单 不会的同学请看我之前地web开发文章主要是 node.js 的路由如何实现的文章。)

以下是本地API接入A平台API的代码

async gptPost(req, response) {try {const data = req.body;const options = {url: `${baseUrl}/chat/completions`,method: "POST",headers: {"Authorization": `Bearer ${apiKey}`,"Content-Type": "application/json",},data: {model: "gpt-4o",messages: data,},};const res = await axios(options);return res.data.choices;} catch (err) {console.error('Error creating Kalurecord:', err);return null;}}

这样不到10分钟时间,我就把一个GTP本地应用做好了,而且是手机PC自适应。效果如下:

这是一个基于GPT-4o的本地化应用,我自己有个服务器和域名,于是丢上去就可以直接用了,在这个上面稍微增加一些功能,就可以完全成为一个商业化的产品,可以给很多企业提供服务。比如说 在单API的基础上,开设多个分帐号,这样企业内每个用户都又自己单独的'GPT', 相互间不干扰,上面我的存储只用了本地localStorage,如果企业用,可以用一个数据库来代替。这样信息也本地化了。这个后面我们可以继续讨论这个话题,让这个case变得更丰富和充实。

这个案例也说明,在未来,程序员的核心竞争力,不再是编写代码,不再是编程思维,不再是算法,也不再是经验,而是在提问题的结构化能力在对业务逻辑的理解和描述,这样才能让gpt充分理解你的需求,并且将需求细化、模块化,程序员最终进行组合,生成一个完整的产品。

可怕吗? 但这也是机会!

好吧,你学会了吗,赶紧动手吧! 


http://www.ppmy.cn/ops/143289.html

相关文章

java client http请求 返回数据 实时循环监听 url 中资源是否生成

1、php 中 执行 exec 调用操作系统 命令行 执行 以下 java 代码 生成 的jar 2、php 执行命令是 以上1 需要命令行 输入 参数 taskid 3、实现实时监听 MP3 url 是否生成 4、 package com.example.filedemo.controller;import java.io.BufferedReader; import java.io.InputStre…

Redis bitmaps 使用

应用场景: 记录id为 1 的用户,2024年12月签到情况,并统计; 记录 1号签到 zxys-redis:0>setbit 1:202412 1 1 记录 2号签到 zxys-redis:0>setbit 1:202412 2 1 记录 3号未签到 zxys-redis:0>setbit 1:202412 3 0 …

设计模式之 桥接模式 C# 范例

桥接模式(Bridge Pattern)是一种结构型设计模式,它将抽象与实现解耦,使得两者可以独立变化。桥接模式通常适用于以下情形: 类的功能可以在不同的维度上变化,例如在图形界面开发中,可能有不同的…

C#—BitArray点阵列

C#—BitArray点阵列 在 C# 中,BitArray 类用来管理一个紧凑型的位值数组,数组中的值均为布尔类型,其中 true(1)表示此位为开启,false(0)表示此位为关闭。 当需要存储位&#xff08…

波动理论、传输线和S参数网络

波动理论、传输线和S参数网络 传输线 求解传输线方程 对于传输线模型,我们通常用 R L G C RLGC RLGC 来表示: 其中 R R R 可以表示导体损耗,由于电子流经非理想导体而产生的能量损耗。 G G G 表示介质损耗,由于非理想电介质…

【ORACLE】一个允许关键字作为别名所引起的语法歧义场景

前言 最近在看SQL语法解析器,发现了antlr4提供的PlSql语法树存在一个BUG,然后我顺着这个BUG,构造了一条SQL,在ORACLE执行,如下 然后神奇的事情出现了,这个查询竟然没有返回行!t1表左关联t2&…

pyparsing restOfLine

在 pyparsing 中,restOfLine 是一个解析器(parser),用于匹配当前位置到行尾的所有内容,通常在解析文件或处理逐行数据时非常有用。 restOfLine 的特性 匹配内容:从当前位置一直匹配到换行符 \n 或字符串结…

【数据结构——线性表】单链表的基本运算(头歌实践教学平台习题)【合集】

目录😋 任务描述 相关知识 测试说明 我的通关代码: 测试结果: 任务描述 本关任务:编写一个程序实现单链表的基本运算。 相关知识 为了完成本关任务,你需要掌握:初始化线性表、销毁线性表、判定是否为空表、求线性…