大模型openai范式接口调用方法

本文将介绍如下内容:

  • 一、为什么选择 OpenAI 范式接口?
  • 二、调用 Openai 接口官方调用 Demo 示例
  • 三、自定义调用 Openai 接口

一、为什么选择 OpenAI 范式接口?

OpenAI 范式接口因其简洁、统一和高效的设计,成为了与大型语言模型(如 GPT 系列)交互的行业标准。它的优势在于:

  • 统一接口:无论是文本生成还是对话生成,都遵循统一标准,便于开发者快速上手和复用代码。
  • 简洁易用:基于 HTTP 请求的简单设计,让开发者能够轻松与模型交互,减少学习成本。
  • 高效管理:支持灵活调整生成参数,如温度、最大生成长度,优化模型输出。
  • 流式输出:支持实时生成,适合实时反馈的应用场景。

二、调用 Openai 接口官方调用 Demo 示例

1、Openai 接口官方文档如下:
  • OpenAI developer platform
  • https://platform.openai.com/docs/api-reference/introduction

其中主要接口有如下两种:

  • v1/chat/completions
  • v1/completions
2、chat/completions
  • Example request
curl https://api.openai.com/v1/chat/completions \-H "Content-Type: application/json" \-H "Authorization: Bearer $OPENAI_API_KEY" \-d '{"model": "gpt-4o","messages": [{"role": "developer","content": "You are a helpful assistant."},{"role": "user","content": "Hello!"}]}'
  • Response
{"id": "chatcmpl-123","object": "chat.completion","created": 1677652288,"model": "gpt-4o-mini","system_fingerprint": "fp_44709d6fcb","choices": [{"index": 0,"message": {"role": "assistant","content": "\n\nHello there, how may I assist you today?",},"logprobs": null,"finish_reason": "stop"}],"service_tier": "default","usage": {"prompt_tokens": 9,"completion_tokens": 12,"total_tokens": 21,"completion_tokens_details": {"reasoning_tokens": 0,"accepted_prediction_tokens": 0,"rejected_prediction_tokens": 0}}
}
3、completions
  • Example request
curl https://api.openai.com/v1/completions \-H "Content-Type: application/json" \-H "Authorization: Bearer $OPENAI_API_KEY" \-d '{"model": "gpt-3.5-turbo-instruct","prompt": "Say this is a test","max_tokens": 7,"temperature": 0}'
  • Response
{"id": "cmpl-uqkvlQyYK7bGYrRHQ0eXlWi7","object": "text_completion","created": 1589478378,"model": "gpt-3.5-turbo-instruct","system_fingerprint": "fp_44709d6fcb","choices": [{"text": "\n\nThis is indeed a test","index": 0,"logprobs": null,"finish_reason": "length"}],"usage": {"prompt_tokens": 5,"completion_tokens": 7,"total_tokens": 12}
}

三、自定义调用 Openai 接口

import requestsdef chat_completions(api_url, api_key, messages, input_payload, stream=False):url = f"{api_url}/v1/chat/completions"headers = {"Authorization": f"Bearer {api_key}","Content-Type": "application/json"}payload = {"model": "","stream": stream,"messages": messages,"max_tokens": 8096,"temperature": 0.1,"presence_penalty": 0.5,"frequency_penalty": 0.8,"top_p": 0.75  # 0.75}payload.update(input_payload)if stream:response = requests.post(url, json=payload, headers=headers, stream=True)for line in response.iter_lines():if line:try:data = line.decode("utf-8")print(data)  # Process each chunk of the stream as neededexcept Exception as e:print(f"Error processing stream data: {e}")else:response = requests.post(url, json=payload, headers=headers)return response.json()def completions(api_url, api_key, prompt,input_payload, stream=False):url = f"{api_url}/v1/completions"headers = {"Authorization": f"Bearer {api_key}","Content-Type": "application/json"}payload = {"model": "","stream": stream,"prompt": prompt,"max_tokens": 8096,"temperature": 0.1,"presence_penalty": 0.5,"frequency_penalty": 0.8,"top_p": 0.75  #0.75}payload.update(input_payload)if stream:response = requests.post(url, json=payload, headers=headers, stream=True)for line in response.iter_lines():if line:try:data = line.decode("utf-8")print(data)  # Process each chunk of the stream as neededexcept Exception as e:print(f"Error processing stream data: {e}")else:response = requests.post(url, json=payload, headers=headers)return response.json()if __name__ == "__main__":# chat_completions - Example usageapi_url = "http://127.0.0.1:20009"api_key = "EMPTY"model = "adapter1"  # "qwen2.5-32b"messages = [{"role": "user", "content": "随机给我一个1~10000的数字"}]payload = {"model": model,}response = chat_completions(api_url, api_key, messages, payload, stream=True)print(response)# completions-  Example usageapi_url = "http://127.0.0.1:20009"api_key = "EMPTY"model = "qwen2.5-32b"prompt = "Tell me a joke."payload = {"model": model,}response = completions(api_url, api_key, prompt, payload, stream=True)print(response)

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

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

相关文章

【FreeRTOS 教程 六】二进制信号量与计数信号量

目录 一、FreeRTOS 二进制信号量: (1)二进制信号量作用: (2)二进制信号量与互斥锁的区别: (3)信号量阻塞时间: (4)信号量的获取与…

C++模板编程——可变参函数模板之折叠表达式

目录 1. 什么是折叠表达式 2. 一元左折 3. 一元右折 4. 二元左折 5. 二元右折 6. 后记 上一节主要讲解了可变参函数模板和参数包展开,这一节主要讲一下折叠表达式。 1. 什么是折叠表达式 折叠表达式是C17中引入的概念,引入折叠表达式的目的是为了…

DeepSeek回答禅宗三重境界重构交易认知

人都是活在各自心境里,有些话通过语言去交流,还是要回归自己心境内在的,而不是靠外在映射到股票和技术方法;比如说明天市场阶段是不修复不接力节点,这就是最高视角看整个市场,还有哪一句话能概括&#xff1…

数据结构【链栈】

基于 C 实现链表栈:原理、代码与应用 一、引言 栈就是一个容器,可以当场一个盒子,只能一个一个拿,一个一个放,而且是从上面放入。 有序顺序栈操作比较容易【会了链栈之后顺序栈自然明白】,所以我们这里只…

成绩案例demo

本案例较为简单,用到的知识有 v-model、v-if、v-else、指令修饰符.prevent .number .trim等、computed计算属性、toFixed方法、reduce数组方法。 涉及的功能需求有:渲染、添加、删除、修改、统计总分,求平均分等。 需求效果如下&#xff1a…

C++:抽象类习题

题目内容: 求正方体、球、圆柱的表面积,抽象出一个公共的基类Container为抽象类,在其中定义一个公共的数据成员radius(此数据可以作为正方形的边长、球的半径、圆柱体底面圆半径),以及求表面积的纯虚函数area()。由此抽象类派生出…

Java面试题2025-并发编程基础(多线程、锁、阻塞队列)

并发编程 一、线程的基础概念 一、基础概念 1.1 进程与线程A 什么是进程? 进程是指运行中的程序。 比如我们使用钉钉,浏览器,需要启动这个程序,操作系统会给这个程序分配一定的资源(占用内存资源)。 …

AI智慧社区--百度地图

数据库&#xff1a; 前端实现 页面代码 <template><div class"app-container"><baidu-map class"bm-view" :center"center" :zoom"zoom" ready"initMap"><!-- 定位 --><bm-geolocation anchor…

WSL2中安装的ubuntu搭建tftp服务器uboot通过tftp下载

Windows中安装wsl2&#xff0c;wsl2里安装ubuntu。 1. Wsl启动后 1&#xff09;Windows下ip ipconfig 以太网适配器 vEthernet (WSL (Hyper-V firewall)): 连接特定的 DNS 后缀 . . . . . . . : IPv4 地址 . . . . . . . . . . . . : 172.19.32.1 子网掩码 . . . . . . . .…

一、TensorFlow的建模流程

1. 数据准备与预处理&#xff1a; 加载数据&#xff1a;使用内置数据集或自定义数据。 预处理&#xff1a;归一化、调整维度、数据增强。 划分数据集&#xff1a;训练集、验证集、测试集。 转换为Dataset对象&#xff1a;利用tf.data优化数据流水线。 import tensorflow a…

软件工程概论试题五

一、多选 1.好的软件的基本属性包括()。 A. 效率 B. 可依赖性和信息安全性 C. 可维护性 D.可接受性 正答&#xff1a;ABCD 2.软件工程的三要素是什么()? A. 结构化 B. 工具 C.面向对象 D.数据流! E.方法 F.过程 正答&#xff1a;BEF 3.下面中英文术语对照哪些是正确的、且是属…

问题的价值 ( Value of Question ) 公式

一、什么是问题的价值 我们的人生、工作的期间、瞬息万变的商业环境中&#xff0c;我们必然会面对很多问题&#xff0c;也会提出很多问题。 但这些问题是否具有回答的 价值&#xff0c;应该如何 衡量 呢&#xff1f; 简单如&#xff0c;女朋友问今晚应该吃什么、世界如何才能…

一文了解阿里的 Qwen2.5 模型

最近被DeepSeek刷屏了&#xff0c;但是在之外阿里在2025年1月28日推出了Qwen 2.5 Max模型。 Qwen2.5-Max 的特点&#xff1a;大规模的 MoE 模型&#xff0c;预训练于超 20 万亿 tokens&#xff0c;并经过 SFT 和 RLHF 后训练。 性能表现&#xff1a;在多个基准测试中与领先模型…

基于Django的Boss直聘IT岗位可视化分析系统的设计与实现

【Django】基于Django的Boss直聘IT岗位可视化分析系统的设计与实现&#xff08;完整系统源码开发笔记详细部署教程&#xff09;✅ 目录 一、项目简介二、项目界面展示三、项目视频展示 一、项目简介 该系统采用Python作为主要开发语言&#xff0c;利用Django这一高效、安全的W…

Hive:复杂数据类型之Map函数

Map函数 是Hive里面的一种复杂数据类型, 用于存储键值对集合。Map中的键和值可以是基础类型或复合类型&#xff0c;这使得Map在处理需要关联存储信息的数据时非常有用。 定义map时,需声明2个属性: key 和 value , map中是 key value 组成一个元素 key-value, key必须为原始类…

计算机毕业设计Python动漫推荐系统 漫画推荐系统 动漫视频推荐系统 机器学习 bilibili动漫爬虫 数据可视化 数据分析 大数据毕业设计

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…

2025年02月02日Github流行趋势

项目名称&#xff1a;oumi 项目地址url&#xff1a;https://github.com/oumi-ai/oumi 项目语言&#xff1a;Python 历史star数&#xff1a;1416 今日star数&#xff1a;205 项目维护者&#xff1a;xrdaukar, oelachqar, taenin, wizeng23, kaisopos 项目简介&#xff1a;构建最…

谭浩强C语言程序设计(3) 7章

1、递归实现N的阶乘 c复制 #include <cstdio> // 包含标准输入输出库// 计算n的阶乘 int total 0; // 定义全局变量total用于存储阶乘结果// 递归函数计算阶乘 int fac(int a){// 如果输入的数小于0&#xff0c;输出错误信息if (a < 0){printf("%d < 0,err…

python算法和数据结构刷题[2]:链表、队列、栈

链表 链表的节点定义&#xff1a; class Node():def __init__(self,item,nextNone):self.itemitemself.nextNone 删除节点&#xff1a; 删除节点前的节点的next指针指向删除节点的后一个节点 添加节点&#xff1a; 单链表 class Node():"""单链表的结点&quo…

网络工程师 (13)时间管理

一、定义与重要性 项目时间管理是指为确保项目按时完成而采取的一系列规划、安排和控制活动。它始于项目启动阶段&#xff0c;贯穿整个项目生命周期&#xff0c;直至项目结束。时间管理对于项目的成功至关重要&#xff0c;它有助于项目团队明确工作目标和时间节点&#xff0c;增…