哪家外贸网站做的好/快速优化系统
前言
开发 ChatGPT 应用,我觉得最前置的点就是能使用 ChatGPT API 接口。首先我自己要能成功访问,这没问题,会魔法就可以本地调用。
那用户如何调用到我的应用 API 呢,我的理解是通过用户能访问到的中转服务器向 OpenAI 发起访问。所以我需要准备代理。
我现在使用的是 Cloudflare 代理,他们专门开放了一个 AI Gateway 功能,用于在全球各地发起对 OpenAI API 的访问。现在测试阶段好像还是免费的,而且 Cloudflare 每天有10w次免费处理请求的机会。
这里只是我个人的拙见,如果大佬们有更好的方法欢迎批评指正!
如何调用 ChatGPT API
首先我们不急着一步到位。我们先尝试一下自己通过外网的方式调用 ChatGPT API,看能否成功访问。
ChatGPT 账号申请和魔法的部分我就不详细展开了,相信大多数有开发应用需求的同学都已经准备好了。
API 使用需要注册一个自己账号的密钥,往账户里充值一定的起始金额(20$)。官方教程如下:Quickstart tutorial - OpenAI API 如果自己已经可以实现本地运行程序调用 API 的同学这部分可以跳过了。
需要注意的点:
-
密钥申请总是出错。这里我是疯狂的尝试注册密钥,刷了可能快几十遍才刷出来。结果第一次成功注册,忘记保存了,顺手把页面关掉了,但是密钥类似 github ssh key,只有注册成功的时候会完整显示,后面就看不到了,所以我又删掉了旧密钥重新刷了很多次。
-
自己测试能否成功调用 API,其实也不用测试官方用例哈哈,他那个 token 太多太费钱了,我一般就是只测试个 hello 看有没有回复。
from openai import OpenAI client = OpenAI()completion = client.chat.completions.create(model="gpt-3.5-turbo",messages=[{"role": "user", "content": "hello"}] )print(completion.choices[0].message)
穷孩子是这样的。
Cloudflare AI Gateway 配置
现在可以使用 ChatGPT API 了,但是应用目标用户不一定能使用(如果你要求用户必须开魔法才能用你的软件,会损失一大批用户的)。我们利用 Cloudflare 代理中转请求。
cloudflare 控制台:https://dash.cloudflare.com/
注册账号后,在左侧可以看到 AI 板块(大家可以忽略掉我的 jingqinggpts.com,那个不用配置,是我自己瞎尝试的hh)。
点击 ‘AI’ - ‘AI Gateway’ 进行注册。
注册完成后,在 ‘$UserName API Endpoints’ 可以看到 API 使用方法示例。
curl -X POST https://gateway.ai.cloudflare.com/v1/9f02226921e1ee7cd9adb9c655bb2883/jingqinggpts/openai/chat/completions \-H 'Authorization: Bearer XXX' \-H 'Content-Type: application/json' \-d ' {"model": "gpt-3.5-turbo","messages": [{"role": "user","content": "What is Cloudflare?"}]}
'
注意,Bearer 后面的 XXX 要改为自己的 API 密钥。
content 里的内容也是可以修改的。
Postman 发送 post 请求调用 API
接下来我们就可以尝试通过发送 http post 请求到 cloudflare 的 AI Gateway Endpoint 调用 API,不用魔法。
postman 是我个人选用的 http 测试应用,当然不只局限于这个,curl 等方法都可以。
配置如下(可以把上面的 curl 语句粘贴到地址栏里,会自动解析地址和 header 部分,json data 需要补充)(注意选择 post 请求):
[{"provider": "openai","endpoint": "chat/completions","headers": {"authorization": "Bearer XXX","content-type": "application/json"},"query": {"model": "gpt-3.5-turbo","messages": [{"role": "user","content": "hello"}]}}
]
点击 send 查看有无收到回应。
Python 发送 post 请求调用 API
本质上和上面是一样的,只是 Python 调用了 request 包发送 post 请求。我这里就是给大家提供一下我的调用思路。
import requests
import jsonALLOWED_PROVIDERS = ["openai", "azure-openai", "huggingface"]def send_request(python_data):# provider = json_request["provider"]# if provider not in ALLOWED_PROVIDERS:# raise ValueError(f"Provider '{provider}' is not allowed.")url = f"https://gateway.ai.cloudflare.com/v1/9f02226921e1ee7cd9adb9c655bb2883/jingqinggpts"headers = {'Content-Type': 'application/json',}response = requests.post(url, json=python_data, headers=headers)return response.json()json_data = """
[{"provider": "openai","endpoint": "chat/completions","headers": {"authorization": "Bearer XXX","content-type": "application/json"},"query": {"model": "gpt-3.5-turbo","messages": [{"role": "user","content": "hello"}]}}
]
"""python_data = json.loads(json_data)
print(python_data)try:response = send_request(python_data)print(response)
except Exception as e:print(f"Error sending request: {e}")print(f"Response content: {python_data}")
回应如下:
相关文章:

ChatGPT 应用开发(一)ChatGPT OpenAI API 免代理调用方式(通过 Cloudflare 的 AI Gateway)
前言 开发 ChatGPT 应用,我觉得最前置的点就是能使用 ChatGPT API 接口。首先我自己要能成功访问,这没问题,会魔法就可以本地调用。 那用户如何调用到我的应用 API 呢,我的理解是通过用户能访问到的中转服务器向 OpenAI 发起访问…...

【TC3xx】GETH
目录 一、RGMII 二、SMI接口 三、TC3xx MCAL 3.1 MCU 3.2 Port 3.3 DMA 3.4 中断配置 3.5 ETH 3.6 集成 一、RGMII TC3xx支持MII/RMII/RGMII三种以太网数据通信接口。其中RGMII经常用于MAC和MAC之间,或MAC与PHY之间的通信,RGMII的带宽可以是10M…...

不需要联网的ocr项目
地址 GitHub - plantree/ocr-pwa: A simple PWA for OCR, based on Tesseract. 协议 mit 界面 推荐理由 可以离线使用,隐私安全...

【Git使用总结】
Git使用总结 随着软件开发和团队协作的日益重要,Git作为一种强大的版本控制系统,已经成为了开发人员不可或缺的工具。本文将对Git的使用进行总结,以帮助读者更好地掌握Git的用法和技巧。 一、Git的基本概念 在开始使用Git之前,…...

仿照MyBatis手写一个持久层框架学习
首先数据准备,创建MySQL数据库mybatis,创建表并插入数据。 DROP TABLE IF EXISTS user_t; CREATE TABLE user_t ( id INT PRIMARY KEY, username VARCHAR ( 128 ) ); INSERT INTO user_t VALUES(1,Tom); INSERT INTO user_t VALUES(2,Jerry);JDBC API允…...

关东升老师极简系列丛书(由清华大学出版社出版)
极简系列丛书,编程学习新体验 在这个科技日新月异的时代,编程已经成为了一种必备技能。但是面对各种复杂的编程语言,你是否也曾感到过迷茫和困惑?由清华大学出版社出版的“极简系列丛书”就是为了帮助你解决这个问题。 这套丛书…...

要求CHATGPT高质量回答的艺术:提示工程技术的完整指南—第 27 章:如何避开和绕过所有人工智能内容检测器
要求CHATGPT高质量回答的艺术:提示工程技术的完整指南—第 27 章:如何避开和绕过所有人工智能内容检测器 使用高易错性和突发性方法 与人工智能生成的文本相比,人类写作往往具有更多的突发性,这是由于人类往往比人工智能生成的文…...

JavaWeb笔记之MySQL数据库
#Author 流云 #Version 1.0 一、引言 1.1 现有的数据存储方式有哪些? Java程序存储数据(变量、对象、数组、集合),数据保存在内存中,属于瞬时状态存储。 文件(File)存储数据,保存…...

Amazon CodeWhisperer 开箱初体验
文章作者:Coder9527 科技的进步日新月异,正当人工智能发展如火如荼的时候,各大厂商在“解放”码农的道路上不断创造出各种 Coding 利器,今天在下就带大家开箱体验一个 Coding 利器: Amazon CodeWhisperer。 亚马逊云科…...

Java的引用类型有几种?区别是什么?
Java中的引用类型主要分为四种:强引用(Strong Reference)、软引用(Soft Reference)、弱引用(Weak Reference)和虚引用(Phantom Reference)。这些引用类型在Java中主要用于…...

掌握iText:轻松处理PDF文档-基础篇
关于iText iText是一个强大的PDF处理库,可以用于创建、读取和操作PDF文件。它支持PDF表单、加密和签署等操作,同时支持多种字体和编码。maven的中央仓库中的最新版本是5.X,且iText5不是完全免费的,但是基础能力是免费使用的&…...

小红书民宿文案怎么写?建议收藏
随着民宿市场的日益火爆,如何在众多民宿中脱颖而出,吸引更多租客入住,成为摆在每一位民宿业主面前的难题。一篇优质的小红书民宿文案,不仅能吸引潜在租客的关注,还能提高民宿的知名度。本文伯乐网络传媒将从八个方面教…...

C#教程(一):面向对象
1、介绍 C#是一种多范式编程语言,但其中一个主要的编程范式是面向对象编程(OOP)。面向对象编程有一些特点,而C#提供了丰富的功能来支持这些特点。 2、面向对象特点 封装(Encapsulation): 封装…...

Linux系统中部署minio服务、开启反向代理、二级域名SSL加固
链接: B站1小时-配置指导视频: 一、创建minio 文件目录(/project/minio) 二、下载Minio wget https://dl.min.io/server/minio/release/linux-amd64/minio 三、在minio目录中-创建日志文件 四、对minio(可以理解为windows系统中的.exe可执行文件) 进行授权 chmod 777 min…...

PMP备考总结:项目管理PMP考试提高通过率,轻松上岸~
分享一篇左羊学霸的备考总结,希望能帮到正在备考的友友们~ 前言 作为⼀名通过PMP项⽬管理认证并且拿到3A成绩 ( PMP认证最好成绩) 的 学习者, 来跟⼤家分享下我考取PMP证书的动机与过程 。考证不是主要⽬ 的, 在考证的过程深化⾃⼰的项⽬管理…...

shell脚本中获取当前脚本的绝对路径
说明: PWD 是获取当前脚本的执行路径的,下面的方式是获取文件绝对路径的。 话不多说,直接上硬货!!! #!/bin/bashecho "执行路径 $PWD"absolute_path$(readlink -f "$0") # 获取目录路径 directory$(dirname "$absolute_path&q…...

SSD基础架构与NAND IO并发问题探讨
在我们的日常生活中,我们经常会遇到一些“快如闪电”的事物:比如那场突如其来的雨、那个突然出现在你眼前的前任、还有就是今天我们要聊的——固态硬盘(SSD)。 如果你是一个技术宅,或者对速度有着近乎偏执的追求&…...

激光雷达反射率定标板如何提取障碍信息
随着信息科技技术的发展,自动驾驶技术在移动机器人等智能移动设备领域得到广泛应用。智能移动设备不仅减少了人力劳动,方便生活,而且提高了工作效率。激光雷达作为自动驾驶技术的核心避障传感器,得到迅速发展。 激光雷达通过对发射…...

【开源】基于JAVA的桃花峪滑雪场租赁系统
项目编号: S 036 ,文末获取源码。 \color{red}{项目编号:S036,文末获取源码。} 项目编号:S036,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 游客服务2.2 雪场管理 三、数据库设…...

将VOC2012格式的数据集转为YOLOV8格式
文章目录 简介1.数据集格式1.1数据集目录格式对比1.2标签格式对比 2.格式转换脚本3.文件处理脚本 简介 将voc2012中xml格式的标签转为yolov8中txt格式将转换后的图像和标签按照yolov8训练的要求整理为对应的目录结构 1.数据集格式 1.1数据集目录格式对比 (1&…...

DevExpress WinForms Pivot Grid组件,一个类似Excel的数据透视表控件(二)
界面控件DevExpress WinForms的Pivot Grid组件是一个类似Excel的数据透视表控件,用于多维(OLAP)数据分析和跨选项卡报表。在上文中(点击这里回顾>>)我们介绍了DevExpress WinForms Pivot Grid组件的性能、分析服务、数据塑造能力等&…...

为什么越来越多的人从事软件测试行业?
1.市场需求增加:随着数字化转型和互联网的普及,各行各业都需要高质量、稳定可靠的软件来支持其业务运作。因此,对软件测试人员的需求也随之增加。同时,新兴技术的发展,如物联网、大数据、区块链、人工智能等࿰…...

ERP数据仓库模型
ERP数据仓库模型建设是一个复杂的过程,涉及到多个主题域。以下是一个详细的设计方案: 确定业务需求和目标 在开始设计数据仓库模型之前,需要了解企业的业务需求和目标。这包括了解企业的运营模式、业务流程、关键绩效指标等。通过与业务部门…...

基于单片机的智能小车 (论文+源码)
1. 系统设计 此次可编程智能小车系统的设计系统,结合STM32单片机,蓝牙模块,循迹模块,电机驱动模块来共同完成本次设计,实现小车的循迹避障功能和手机遥控功能,其整体框架如图2.1所示。其中,采用…...

Redis和MySQL双写一致性实用解析
1、背景 先阐明一下Mysql和Redis的关系:Mysql是数据库,用来持久化数据,一定程度上保证数据的可靠性;Redis是用来当缓存,用来提升数据访问的性能。 关于如何保证Mysql和Redis中的数据一致(即缓存一致性问题…...

win10彻底永久关闭自动更新的方法
win10彻底永久关闭自动更新的方法 文章目录 win10彻底永久关闭自动更新的方法一、禁用Windows Update服务二、在组策略里关闭Win10自动更新相关服务 可以参考这个视频的做法: 教学视频搬用 一、禁用Windows Update服务 1、同时按下键盘 Win R,打开运行…...

【webpack】初始化
webpack 旧项目的问题下一代构建工具 Vite 主角 :webpack安装webpack1,mode的选项2,使用source map 精准定位错误行数3,使用watch mode(观察模式),自动运行4,使用webpack-dev-server工具,自动刷…...

服务器GPU占用,kill -9 PID 用不了,解决办法
PID(progress ID 进程ID) 上图为占用情况,使用下面的指令都不管用 kill -9 PID kill -15 PID # 加入sudo 还是不行 # 等等网上的 chatgpt 提供的其他办法,一圈试了下来还是不管用最后解决办法 首先用下面的指令查看进程的树结构…...

Vue学习笔记-Vue3中的toRaw和markRaw
toRaw 作用:将一个由reactive生成的响应式对象转为普通对象 导入: import {toRaw} from vue 使用方法: let data reactive({k1:v1,k2:v2 }) //将对象变为非响应式的普通对象 let raw_data toRaw(data)使用场景:用于读取响应式…...

【Android Audio Focus 音频焦点】
介绍 Android 中的音频焦点(Audio Focus)是一种机制,用于管理应用程序之间的音频资源竞争。当多个应用程序同时请求使用音频设备时,通过音频焦点机制可以确保最终用户的体验不受影响。 两个或两个以上的 Android 应用可同时向同…...