Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk membolehkan pengurusan konteks dalam chatGPT Python API?

Bagaimana untuk membolehkan pengurusan konteks dalam chatGPT Python API?

王林
王林ke hadapan
2023-04-21 19:58:161804semak imbas

Kes rasmi:

# 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?"}
    ]
)

Walaupun format telah diberikan, tiada penjelasan terperinci Mungkin pembangun peringkat tinggi akan memahaminya secara sekilas, tetapi saya masih mahu menggunakannya secara lebih lanjut cara fasih. Jelaskan pengurusan konteks ini.

Mari kita lihat kod ringkas saya (pengurusan konteks belum didayakan lagi):

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返回的数据

Ini ialah struktur paling asas, di mana model parameter dan mesej berada dua parameter yang perlu.

Kod untuk menambah pengurusan konteks:

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返回的数据

Struktur data berikut dengan pengurusan konteks didayakan sedikit berbeza daripada struktur data tanpanya:

① sistem mewakili tetapan sistem (Iaitu, memberitahu chatGPT peranannya)

② pengguna bermaksud pengguna

③ pembantu bermaksud balasan GPT

Terdapat beberapa perkara yang perlu disebutkan untuk mengelakkan perangkap. !

1. Adalah disyorkan untuk menyimpan data msg dalam bentuk pangkalan data Kelebihannya ialah data boleh disimpan dan ia juga sangat mudah untuk mendapatkan semula data, kerana saya hanya ingin menggunakan json untuk. menyimpannya pada mulanya, tetapi ia mengambil masa yang lama saya masih menyerah.

2. Perlu diingatkan bahawa susunan struktur data yang dihantar mestilah dari atas ke bawah, jika tidak, sistem chatGPT tidak perlu berada di sana. Kemudian tambahkan sahaja data sistem pada elemen senarai pertama setiap kali ia diserahkan.

Ketiga, terdapat satu lagi perkara penting: data yang diserahkan akan dikira menjadi token termasuk apabila chatGPT membalas (sehingga 4096 token Jika anda mahu pengurusan konteks mengingati lebih banyak korpus, kemudian Apabila menyerahkan data, cuba tingkatkan kandungan perbualan antara anda sebanyak mungkin (ia juga akan menggunakan token anda dengan lebih cepat).

4. Mulai 14 Mac 2023: Harga keahlian chatGPT ialah AS$20/bulan dan token dicaj berdasarkan volum. Dalam istilah orang awam, ia seperti kad telefon bimbit. Terdapat bayaran bulanan, dan panggilan dibilkan secara berasingan. Kelebihan menjadi ahli chatGPT Plus ialah kelajuan lebih cepat dan lebih stabil Versi percuma juga boleh digunakan, tetapi kelajuannya lebih perlahan, tidak stabil dan mudah terhempas.

Atas ialah kandungan terperinci Bagaimana untuk membolehkan pengurusan konteks dalam chatGPT Python API?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam