openai createChatCompletion函数使用实例
作者:地霊殿__三無 发布时间:2023-06-14 16:45:38
实现过程
最近在尝试openai的相关函数,所以今天就来盘点盘点下 createChatCompletion 函数,听说是专门为了聊天创立的api,看看是要怎么用的?
1、前期的引入和配置密钥
这里我就简单带过了,可以看我之前的文章,引入过程大同小异。
cnpm install openai // 下载
const { Configuration, OpenAIApi } = require("openai"); // 在项目里通过require引入
// 设置密钥
const configuration = new Configuration({
apiKey: aikey
});
const openai = new OpenAIApi(configuration);
2、具体的使用
const completion = await openai.createChatCompletion({
model: "gpt-3.5-turbo",
messages: [{role: "user", content: "Hello world", name: "sanwu"}],
});
接口返回的信息在这里 console.log(completion.data.choices[0].message);
3、细节讲解
(1)关键参数
model 这里是选用聊天的模型,每个模型都有它对应的领域,聊天的话,基本上我们选用下图的/v1/chat/completions行的模型,有gpt-4, gpt-4-0314, gpt-4-32k, gpt-4-32k-0314, gpt-3.5-turbo, gpt-3.5-turbo-0301等模型可以选中。
ENDPOINT | MODEL NAME |
---|---|
/v1/chat/completions | gpt-4, gpt-4-0314, gpt-4-32k, gpt-4-32k-0314, gpt-3.5-turbo, gpt-3.5-turbo-0301 |
/v1/completions | text-davinci-003, text-davinci-002, text-curie-001, text-babbage-001, text-ada-001 |
/v1/edits | text-davinci-edit-001, code-davinci-edit-001 |
/v1/audio/transcriptions | whisper-1 |
/v1/audio/translations | whisper-1 |
/v1/fine-tunes | davinci, curie, babbage, ada |
/v1/embeddings | text-embedding-ada-002, text-search-ada-doc-001 |
/v1/moderations | text-moderation-stable, text-moderation-latest |
messages 这里是定义发起消息者的角色定位、姓名、具体消息内容。
角色定位和消息内容是必须的参数。想想也是,聊天过程中,文本内容是基本,而要正确理解文本的含义,通常我们会结合对方的角色定位来综合考虑,所以这两者是必须的,反倒是姓名,一般来说不会影响到回复结果,所以仅仅是记录一下,是非必须参数。
(2)openai通用参数
temperature 控制结果的随机性,范围在0~2, 0是固定结果,值越大结果越随机。
top_p 跟temperature类似,不过值在0~1之间,默认值为1,如果设置成0.1,则代表取得是前10%概率质量的结果。
n 每个问题prompt要给的答案数,这里设置多了,会快速消耗配额的。
stream 是否返回部分进度。
stop 最大长度为 4 的字符串列表,一旦生成的 tokens 包含其中的内容,将停止生成并返回结果。
max_tokens 生成结果时的最大 tokens 数,不能超过模型的上下文长度,一般最大可设置为2048,新的gpt-4似乎就是4096。
presence_penalty 主题的重复度,区间也是-2~2, -2的重复度最高。
frequency_penalty 字符的重复度,区间是-2~2, -2的重复字符最多。
logit_bias 修改指定标记出现在完成中的可能性。 接受一个 json 对象,该对象将标记(由标记器中的标记 ID 指定)映射到从 -100 到 100 的关联偏差值。从数学上讲,偏差会在采样之前添加到模型生成的 logits 中。确切的效果因模型而异,但 -1 和 1 之间的值应该会减少或增加选择的可能性;像 -100 或 100 这样的值应该导致相关令牌的禁止或独占选择。
来源:https://juejin.cn/post/7229547186354094117


猜你喜欢
- 下面列出了asp远程网页数据采集程序中经常用到的函数,很实用,特别是正则表达式过滤函数。包括了使用xmlhttp采集远程网页内容,使用ado
- 1) 创建配置文件和帐户 (创建一个配置文件和配置数据库邮件向导,用以访问配置数据库邮件管理节点中的数据库邮件节点及其上下文菜单中使用的帐户
- 把今天的学习的opencv知识先记录一下!运行环境是:pycharm话不多说,献上代码再说:import cv2 # openc
- 利用问题的普遍性和特殊性来求解,代码如下:import unittestfrom datetime import datetimeclass
- 目录结构:client:#!/usr/bin/env python# -*-coding:utf-8 -*-import socket, s
- 需求分析业务要求,需要一个图片上传控件,需满足多图上传点击预览图片前端压缩支持初始化数据相关功能及资源分析基本功能先到https://www
- 背景考虑这样一种情况,产品同学希望达到以下功能:在我们的网页中有一个固定区域,这个区域会用于渲染从后端拉取的含有图片等资源的富文本字符串。他
- 计时器用来定时执行任务,分享一段代码:package mainimport "time"import "fmt
- mysql installer community 8.0.16.0安装图文教程,,供大家参考,具体内容如下一、下载mysql-instal
- 摘要在这篇文章里,我将以反模式的角度来直接讨论Django的低级ORM查询方法的使用。作为一种替代方式,我们需要在包含业务逻辑的
- Git修改已提交的commit注释两种情况:修改最后一次注释1、在命令行输入如下命令,然后回车:git commit --amend2、在命
- 1) chocolatappChocolat是最新出现的一款强大的Mac系统文本编辑器,兼具原生的Cocoa及强大的文本编辑功能。Choco
- 正在看的ORACLE教程是:MySQL安全性指南(3)(转)。 &nb
- 本文实例讲述了python实现数独算法的方法。分享给大家供大家参考。具体如下:# -*- coding: utf-8 -*-'
- 网关是什么简单来说,网关就是暴露给外部的请求入口。就和门卫一样,外面的人想要进来,必须要经过门卫。当然,网关并不一定是必须的,后端服务通过h
- 安装好Navicat之后可能会出现如下的错误:Client does not support authentication protocol
- 本文实例讲述了python实现的AES双向对称加密解密与用法。分享给大家供大家参考,具体如下:高级加密标准(Advanced Encrypt
- scratch-blocks编译的时候会出现的问题:scratch-gui依赖的scratch-blocks模块在安装的时候编译会报错。原因
- 本文实例为大家分享了python3实现多张图片附件邮件发送的具体代码,供大家参考,具体内容如下直接上代码,没有注释!from email.m
- Pycharm Database Navigator连接mysql1.安装Database Navigator由于使用的是Pycharm C