>  기사  >  백엔드 개발  >  chatGPT Python API에서 컨텍스트 관리를 활성화하는 방법은 무엇입니까?

chatGPT Python API에서 컨텍스트 관리를 활성화하는 방법은 무엇입니까?

王林
王林앞으로
2023-04-21 19:58:161804검색

공식 사례:

# Note: you need to be using OpenAI Python v0.27.0 for the code below to work
import openai
 
openai.ChatCompletion.create(
  model="gpt-3.5-turbo",
  messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Who won the world series in 2020?"},
        {"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."},
        {"role": "user", "content": "Where was it played?"}
    ]
)

형식이 나와있지만 자세한 설명은 없습니다. 고급 개발자라면 한 눈에 이해하기 쉬울 수도 있지만, 그래도 이 컨텍스트 관리를 좀 더 말로 설명하고 싶습니다. .

먼저 간단한 코드를 살펴보겠습니다(컨텍스트 관리는 아직 활성화되지 않았습니다):

import openai
 
openai.api_key = "你的sk-key"
 
msg = [{"role": "user", "content": "你好chatGPT"}]
 
# 结构化数据并进行提交
completion = openai.ChatCompletion.create(
                # max_tokens = inf # 默认inf 最大令牌数
                presence_penalty = 1, # 惩罚机制,-2.0 到 2.0之间,默认0,数值越小提交的重复令牌数越多,从而能更清楚文本意思
                frequency_penalty = 1, # 意义和值基本同上,默认0,主要为频率
                temperature = 1.0,  # 温度 0-2之间,默认1  调整回复的精确度使用
                n = 1,  # 默认条数1
                user = ids,    # 用户ID,用于机器人区分不同用户避免多用户时出现混淆
                model = "gpt-3.5-turbo",    # 这里注意openai官方有很多个模型
                messages = msg
            )
 
value = completion.choices[0].message.content    # chatGPT返回的数据

이것은 가장 기본적인 구조로, 매개변수 모델과 메시지가 두 개의 필수 형식 매개변수입니다.

컨텍스트 관리 추가를 위한 코드:

import openai
 
openai.api_key = "你的sk-key"
 
msg = [{"role": "system", "content": "你的名字叫玖河AI,你是一个插件,你的开发者是玖河."},
        {"role": "user", "content": "你好chatGPT"},
        {"role": "assistant", "content": "您好,有什么需要我帮忙的问题吗?"},
        {"role": "user", "content": "我的名字叫高启强,我的妹妹叫高启兰,我们是兄妹关系。记住了吗?"}
        {"role": "assistant", "content": "好的,您叫高启强,您的妹妹叫高启兰,是亲兄妹关系。谢谢您提供信息让我更了解你们~"},
        {"role": "user", "content": "你现在在哪里?"},
        {"role": "assistant", "content": "作为一款智能Ai助手,我并没有实际的位置。我只是在云端中运行,在等待用户输入指令时保持睡眠状态。"},
        {"role": "user", "content": "我的妹妹是谁?"},
        {"role": "assistant", "content": "您之前告诉我,您的妹妹叫高启兰。"},
        {"role": "user", "content": "你的名字叫什么?"},
        {"role": "assistant", "content": "我的名字叫玖河AI是一个叫玖河的开发者开发的插件"}
        ]
 
# 结构化数据并进行提交
completion = openai.ChatCompletion.create(
                # max_tokens = inf # 默认inf 最大令牌数
                presence_penalty = 1, # 惩罚机制,-2.0 到 2.0之间,默认0,数值越小提交的重复令牌数越多,从而能更清楚文本意思
                frequency_penalty = 1, # 意义和值基本同上,默认0,主要为频率
                temperature = 1.0,  # 温度 0-2之间,默认1  调整回复的精确度使用
                n = 1,  # 默认条数1
                user = ids,    # 用户ID,用于机器人区分不同用户避免多用户时出现混淆
                model = "gpt-3.5-turbo",    # 这里注意openai官方有很多个模型
                messages = msg
            )
 
value = completion.choices[0].message.content    # chatGPT返回的数据

컨텍스트 관리가 활성화된 다음 데이터 구조는 컨텍스트 관리가 활성화되지 않은 데이터 구조와 약간 다릅니다.

① 시스템은 시스템 설정을 나타냅니다(즉, chatGPT에게 자신의 역할을 알려줍니다)

② 사용자는 사용자

3 어시스턴트가 GPT의 답변을 말했습니다

함정을 피하기 위해 모든 사람에게 언급해야 할 몇 가지 사항이 있습니다!

1. 메시지 데이터를 데이터베이스 형식으로 저장하는 것이 좋습니다. 처음에는 json을 사용하여 저장하려고 했기 때문에 데이터를 유지할 수 있고 데이터를 검색하는 것도 매우 편리하다는 것이 장점입니다. 하지만 오랜 시간 고민 끝에 포기하게 되었습니다. 단점은 사용자마다 세션이 다르다는 점을 고려해야 하기 때문에 저장과 검색이 불편하다는 것입니다.

둘째, 제출된 데이터 구조의 순서는 위에서 아래로 이루어져야 합니다. 그렇지 않으면 chatGPT가 이 설정을 유지하려는 경우 시스템이 혼란스러울 필요가 없습니다. 제출하면 첫 번째 목록 요소에 시스템 데이터를 추가하기만 하면 됩니다.

셋째, 또 다른 중요한 점이 있습니다. 제출된 데이터는 chatGPT 응답을 포함한 토큰(최대 4096개 토큰)으로 계산됩니다. 컨텍스트 관리에서 더 많은 말뭉치를 기억하도록 하려면 가능하면 데이터를 제출할 때 대화 내용을 최대한 많이 포함하세요(또한 토큰이 더 빨리 소모됩니다).

4. 2023년 3월 14일 이전: chatGPT 멤버십 가격은 월 US$20이며 토큰은 수량에 따라 청구됩니다. 평신도 입장에서는 휴대폰 카드와 같습니다. 월 사용료가 있고 통화 요금은 별도로 청구됩니다. chatGPT Plus 회원이 되면 속도가 더 빠르고 안정적이라는 장점이 있지만, 무료 버전도 사용할 수 있지만 속도가 느리고 불안정하며 충돌이 발생하기 쉽습니다.

위 내용은 chatGPT Python API에서 컨텍스트 관리를 활성화하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제