通过代理如何调通openai的api

news2024/11/18 16:55:38

调通openai的api

  • 一、前提
  • 二、通过curl调通openai的api
  • 三、通过python调通openai的api

一、前提

  • 会魔法上网
  • 本地运行代理软件,知道端口号(如1081)。
127.0.0.1:1081

二、通过curl调通openai的api

  • 如果在国外,没有qiang,直接:
curl https://api.openai.com/v1/chat/completions   -H "Content-Type: application/json"   -H "Authorization: Bearer $OPENAI_API_KEY"   -d '{
    "model": "gpt-3.5-turbo",
    "messages": [
      {
        "role": "system",
        "content": "You are a poetic assistant, skilled in explaining complex programming concepts with creative flair."
      },
      {
        "role": "user",
        "content": "Compose a poem that explains the concept of recursion in programming."
      }
    ]
  }'
  • 在国内,走代理
curl -x socks5://127.0.0.1:1081 https://api.openai.com/v1/chat/completions   -H "Content-Type: application/json"   -H "Authorization: Bearer xxx"   -d '{
    "model": "gpt-3.5-turbo",
    "messages": [
      {
        "role": "system",
        "content": "You are a poetic assistant, skilled in explaining complex programming concepts with creative flair."
      },
      {
        "role": "user",
        "content": "Compose a poem that explains the concept of recursion in programming."
      }
    ]
  }'

在这里插入图片描述

三、通过python调通openai的api

poetry管理依赖。

  • poetry add ‘httpx[socks]’

(1)加单引号的原因:防止zsh尝试解释或扩展方括号
(2)支持socks5

  • 代码:
import os
from openai import OpenAI

os.environ['http_proxy'] = 'socks5://127.0.0.1:1081'
os.environ['https_proxy'] = 'socks5://127.0.0.1:1081'


client = OpenAI(
  api_key="xxx"
)

completion = client.chat.completions.create(
  model="gpt-3.5-turbo",
  messages=[
    {"role": "system", "content": "You are a poetic assistant, skilled in explaining complex programming concepts with creative flair."},
    {"role": "user", "content": "Compose a poem that explains the concept of recursion in programming."}
  ]
)

print(completion.choices[0].message)
  • 结果:
ChatCompletionMessage(content="In the realm of loops and cycles we traverse,\nA concept profound, like a poet’s verse,\nRecursion, a waltz of code’s elegant dance,\nA mesmerizing concept, a captivating trance.\n\nImagine a function that calls itself anew,\nUnraveling mysteries, like a tale that’s true,\nA self-contained magic, a loop in disguise,\nWith depths untold, where a solution lies.\n\nWhen at its core, a problem we face,\nToo complex to solve in a linear pace,\nRecursion emerges, with dazzling embrace,\nDividing the puzzle in a smaller space.\n\nJust like a mirror reflecting its own view,\nRecursion mirrors itself, a successor it brews,\nThrough fractal-like patterns, it gracefully repeats,\nFathoming nature’s design, from fibers to beets.\n\nWith every recursive step, a mystic unfold,\nA new layer exposed, stories yet to be told,\nLike Russian dolls, nested, each snug within,\nRecursion unravels intricate paths to begin.\n\nYet, beware of the dragon that lurks from within,\nFor an unchecked recursion may suck you in,\nA beast called infinite loop, a nightmare so deep,\nWhere time gets tangled, in an abyss it seeps.\n\nBut fear not, dear programmer, and heed my plea,\nFor recursion's power can be harnessed, you see,\nWith careful rules and base cases in place,\nThe beauty of recursion, you'll flawlessly embrace.\n\nFrom Fibonacci's spiral, to trees that enfold,\nRecursion paints masterpieces, stories untold,\nA symphony of iterations, a harmonious sight,\nAs recursive shadows dance in the programming light.\n\nSo, let us embrace this poetic technique,\nIn the realm of programming, courageous and sleek,\nFor recursion, the enchantress of code divine,\nWeaves elegance and power, forever to shine.", role='assistant', function_call=None, tool_calls=None)

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AWS 专题学习 P7 (FSx、SQS、SNS)

文章目录 Amazon FSx – 概述Amazon FSx for LustreFSx Lustre - 文件系统部署选项 Amazon FSx for NetApp ONTAPAmazon FSx for OpenZFSHybrid Cloud 存储AWS 存储云原生选项AWS 存储网关Amazon S3 File GatewayAmazon FSx File GatewayVolume GatewayTape GatewayStorage Gat…

设计一个Key-Value缓存去存储最近的Web Server查询的结果

1: 定义Use Case和约束 Use Cases 我们可以定义如下 Scope: User 发送一个 search request, 缓存命中成功返回DataUser 发送一个 search request, 缓存未命中,未成功返回DataService 有高可用 约束和假设 状态假设 Traffic 分布不是均匀的 热度高的查询总是被…

HarmonyOS鸿蒙学习基础篇 - 什么是HarmonyOS

概述 HarmonyOS是华为开发的一款面向未来的全场景分布式智慧操作系统,将逐步覆盖18N全场景终端设备; 对消费者而言 HarmonyOS用一个‘统一的软件系统’ 从根本上解决消费者面对大量智能终端体验割裂的问题,为消费者带来同意便利安全的智慧化全…

使用 Python 创造你自己的计算机游戏(游戏编程快速上手)第四版:第十五章到第十八章

十五、反转棋游戏 原文:inventwithpython.com/invent4thed/chapter15.html 译者:飞龙 协议:CC BY-NC-SA 4.0 在本章中,我们将制作反转棋,也称为黑白棋或奥赛罗。这个双人棋盘游戏是在网格上进行的,因此我们…

【Qt5】QString的成员函数trimmed

2024年1月19日,周五下午 QString 的 trimmed 方法是用于移除字符串两端的空白字符(空格、制表符、换行符等)的方法。它返回一个新的字符串,该字符串是原始字符串去除两端空白后的结果。 下面是一个简单的示例: #incl…

【Linux 内核源码分析】堆内存管理

堆 堆是一种动态分配内存的数据结构,用于存储和管理动态分配的对象。它是一块连续的内存空间,用于存储程序运行时动态申请的内存。 堆可以被看作是一个由各个内存块组成的堆栈,其中每个内存块都有一个地址指针,指向下一个内存块…

实体类(VO,DO,DTO)的划分

实体类(VO,DO,DTO)的划分 什么是“实体类” 实体类的主要职责是存储和管理系统内部的信息,它也可以有行为,甚至很复杂的行为,但这些行为必须与它所代表的实体对象密切相关。实体类有两方面内容…

51单片机8*8点阵屏

8*8点阵屏 8*8点阵屏是一种LED显示屏,它由8行和8列的LED灯组成。每个LED灯的开闭状态都可以独立控制,从而可以显示出数字、字母、符号、图形等信息。 8*8点阵屏的原理是通过行列扫描的方式,控制LED灯的亮灭,从而显示出所需的图案或…

使用MySQL建立外键约束时,报错3780的问题分析,和解决办法

今天在用语句给两个表建立外键约束时,报了3780的错误–具体描述如下: 大概意思就是或说,主表和从表的create_use 和 user_id 两个字段这不兼容 经过一顿分析之后发现,是因为这两个表的这两列数据类型不一样 解决办法–修改表中…

毫米波雷达4D点云生成(基于实测数据)

本期文章分享TI毫米波雷达实测4D点云生成的代码,包含距离、速度、水平角度、俯仰角度,可用于日常学习。 处理流程包含:数据读取和解析、MTI、距离估计、速度估计、非相干累积、2D-CFAR、水平角估计、俯仰角估计、点云生成、坐标转换等内容。…

【大数据Hive】hive 行列转换使用详解

目录 一、前言 二、使用场景介绍 2.1 使用场景1 2.2 使用场景2 三、多行转多列 3.1 case when 函数 语法一 语法二 操作演示 3.2 多行转多列操作演示 四、多行转单列 4.1 concat函数 语法 4.2 concat_ws函数 语法 4.3 collect_list函数 语法 4.4 collect_set函…

数据结构之二叉树的性质与存储结构

数据结构之二叉树的性质与存储结构 1、二叉树的性质2、二叉树的存储结构 数据结构是程序设计的重要基础,它所讨论的内容和技术对从事软件项目的开发有重要作用。学习数据结构要达到的目标是学会从问题出发,分析和研究计算机加工的数据的特性,…

谁说知识库都是英文的 今天就来一个中文版的

1.安装 1.1创建目录 mkdir -p /opt/trilium-cn cd /opt/trilium-cn 1.2.编写docker-compose.yml文件 version: 3 services:trilium-cn:image: nriver/trilium-cnrestart: alwaysports:- "10012:8080"volumes:# 把同文件夹下的 trilium-data 目录映射到容器内- /opt…

5 python快速上手

数据类型(上) 1.整型1.1 定义1.2 独有功能1.3 公共功能1.4 转换1.5 其他1.5.1 长整型1.5.2 地板除 2. 布尔类型2.1 定义2.2 独有功能2.3 公共功能2.4 转换2.5 其他2.5.1 做条件自动转换 3.字符串类型3.1 定义3.2 独有功能(18/48)练…

SpringBoot教程(十五) | SpringBoot集成RabbitMq

SpringBoot教程(十五) | SpringBoot集成RabbitMq RabbitMq是我们在开发过程中经常会使用的一种消息队列。今天我们来研究研究rabbitMq的使用。 rabbitMq的官网: rabbitmq.com/ rabbitMq的安装这里先略过,因为我尝试了几次都失败了,后面等我…

【数据结构】详谈队列的顺序存储及C语言实现

循环队列及其基本操作的C语言实现 前言一、队列的顺序存储1.1 队尾指针与队头指针1.2 基本操作实现的底层逻辑1.2.1 队列的创建与销毁1.2.2 队列的增加与删除1.2.3 队列的判空与判满1.2.4 逻辑的局限性 二、循环队列2.1 循环队列的实现逻辑一2.2 循环队列的实现逻辑二2.3 循环队…

西瓜书读书笔记整理(十二) —— 第十二章 计算学习理论

第十二章 计算学习理论(上) 12.1 基础知识12.1.1 什么是计算学习理论(computational learning theory)12.1.2 什么是独立同分布(independent and identically distributed, 简称 i . i . d . i.i.d. i.i.d.&#xff0…

USRP相关报错解决办法

文章目录 前言一、本地环境二、相关报错信息二、解决办法1、更换电脑操作系统2、升级最新版固件 前言 在进行 USRP 开发时遇到了一些报错,这里做个记录解决问题的方法。 一、本地环境 电脑操作系统:Windows11MATLAB 版本:MATLAB 2021aUSRP …

JVM:Java类加载机制

Java类加载机制的全过程: 加载、验证、准备、初始化和卸载这五个阶段的顺序是确定的,类型的加载过程必须按照这种顺序按部就班地开始,而解析阶段则不一定:它在某些情况下可以在初始化阶段之后再开始, 这是为了支持Java…

竞赛保研 机器视觉 opencv 深度学习 驾驶人脸疲劳检测系统 -python

文章目录 0 前言1 课题背景2 Dlib人脸识别2.1 简介2.2 Dlib优点2.3 相关代码2.4 人脸数据库2.5 人脸录入加识别效果 3 疲劳检测算法3.1 眼睛检测算法3.2 打哈欠检测算法3.3 点头检测算法 4 PyQt54.1 简介4.2相关界面代码 5 最后 0 前言 🔥 优质竞赛项目系列&#x…