OpenAI参数详解
- tokens(标记):自然语言处理中,token是输入文本被分割成的最小单元。
- max_tokens:指令生成的回答中包含的最大token数。如果设置为100,那么模型中生成的回答中token数不会超过100个。
- temperature:控制文本生成的随机性和创意性。值范围通常在0到1之间。值越大,生成文本越随机;值越小,生成文本越确定。
- n:生成多个回答供选择。返回的数组结果。
- top_p(控制采样):通过概率控制生成内容的多样性。确定生成本文时考虑的token累计概率。值在0-1之间,常用来替代温度设置。
- presence_penalty(出现惩罚\阻止调整):鼓励生成新内容,避免出现重复内容。影响模型生成新主题内容的倾向,值在-2.0到2.0之间。较高的值鼓励模型生成前面未出现过的新内容。
- frequency_penalty(频率惩罚、短语效应):减少重复词语,提高输出的流畅度和多样性。值在-2.0到2.0之间。较高的值会减少模型重复使用某些词或短语的频率。
- stream:用于控制参数是否以流式方式接收生成的文本,流式输出意味着生成的文本会逐步发送,而不是一次性全部发送。
实战tips: temperature:0.7-1,获得最大的创意性和多样性。 frequency_penalty:1-2,用于产生各种独特的短语和想法。 max_tokens:根据所需的故事长度或场景进行设置。
//token长度计算网站
https://www.prompttokencounter.com/
https://gpt-tokenizer.dev/
//openai官方文档
https://platform.openai.com/docs/api-reference/chat/create
OpenAI代码开发
配置环境变量
没有梯子的同学:openai-hk.com/v3/ai/
- 注册账号
- 获取KEY(需充值)
- 配置环境变量
OPENAI_BASE_URL:https://api.openai-hk.com/v1
OPENAI_API_KEY:上面获取的APIKEY
http方式
# pip install requests
import requests
import json
import os
url = os.getenv('OPENAI_BASE_URL') + "/chat/completions"
#print(os.getenv('OPENAI_BASE_URL'))
payload = json.dumps({
"model": "gpt-4o",
"messages": [
{"role": "system", "content": "assistant"},
{"role": "user", "content": "你好"}
]
})
headers = {
'Content-Type': 'application/json',
'Authorization': 'Bearer ' + os.getenv('OPENAI_API_KEY'),
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
API方式
from openai import OpenAI
# pip install openai==1.40.3
import os
# 从环境变量中读取OPENAI_BASE_URL
print(os.getenv('OPENAI_BASE_URL'))
# 初始化 OpenAI 服务。
client = OpenAI()
completion = client.chat.completions.create(
model="gpt-4o",
messages=[
{"role": "system", "content": "assistant"},
{"role": "user", "content": "你好"}
]
)
print(completion.choices[0].message.content)