Official case:
# 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?"} ] )
Although the format has been given, there is no detailed explanation. Maybe high-level developers will understand it at a glance, but I still want to explain it in a more verbal way. This context management.
Let’s take a look at a simple code of mine (context management has not been enabled yet):
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返回的数据
This is the most basic structure, in which the parameters model and messages are the two necessary forms. ginseng.
Code for adding context management:
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返回的数据
The following data structure with context management enabled is slightly different from the data structure without it:
① system represents system settings (also Just tell chatGPT his role)
② user means user
③ assistant means GPT’s reply
There are a few points that need to be mentioned to everyone to avoid pitfalls!
1. It is recommended to store msg data in the form of a database. The advantage is that the data can be persisted and it is also very convenient to retrieve the data, because I just wanted to use json to store it at first, but it took a long time. I still gave up. The disadvantage is that it is inconvenient to store and retrieve, because you need to consider that different users have different sessions.
2. It should be noted that the order of submitted data structures must be from top to bottom, otherwise chatGPT will be confused. System does not need to be there. If you want it to keep this setting, Then just add system data to the first list element every time it is submitted.
3. There is another important point: the submitted data will be calculated into tokens including when chatGPT replies (up to 4096 tokens). If you want context management to remember more corpus, then When submitting data, try to increase the content of the conversation between you as much as possible (it will also consume your tokens faster).
4. As of March 14, 2023: The membership price of chatGPT is US$20/month, and tokens are charged based on volume. In layman's terms, it's like a mobile phone card. There is a monthly fee and calls are billed separately. The advantage of being a chatGPT Plus member is that the speed is faster and more stable. The free version can also be used, but the speed is slower, unstable and easy to crash.
The above is the detailed content of How to enable context management in chatGPT Python API?. For more information, please follow other related articles on the PHP Chinese website!

Is it enough to learn Python for two hours a day? It depends on your goals and learning methods. 1) Develop a clear learning plan, 2) Select appropriate learning resources and methods, 3) Practice and review and consolidate hands-on practice and review and consolidate, and you can gradually master the basic knowledge and advanced functions of Python during this period.

Key applications of Python in web development include the use of Django and Flask frameworks, API development, data analysis and visualization, machine learning and AI, and performance optimization. 1. Django and Flask framework: Django is suitable for rapid development of complex applications, and Flask is suitable for small or highly customized projects. 2. API development: Use Flask or DjangoRESTFramework to build RESTfulAPI. 3. Data analysis and visualization: Use Python to process data and display it through the web interface. 4. Machine Learning and AI: Python is used to build intelligent web applications. 5. Performance optimization: optimized through asynchronous programming, caching and code

Python is better than C in development efficiency, but C is higher in execution performance. 1. Python's concise syntax and rich libraries improve development efficiency. 2.C's compilation-type characteristics and hardware control improve execution performance. When making a choice, you need to weigh the development speed and execution efficiency based on project needs.

Python's real-world applications include data analytics, web development, artificial intelligence and automation. 1) In data analysis, Python uses Pandas and Matplotlib to process and visualize data. 2) In web development, Django and Flask frameworks simplify the creation of web applications. 3) In the field of artificial intelligence, TensorFlow and PyTorch are used to build and train models. 4) In terms of automation, Python scripts can be used for tasks such as copying files.

Python is widely used in data science, web development and automation scripting fields. 1) In data science, Python simplifies data processing and analysis through libraries such as NumPy and Pandas. 2) In web development, the Django and Flask frameworks enable developers to quickly build applications. 3) In automated scripts, Python's simplicity and standard library make it ideal.

Python's flexibility is reflected in multi-paradigm support and dynamic type systems, while ease of use comes from a simple syntax and rich standard library. 1. Flexibility: Supports object-oriented, functional and procedural programming, and dynamic type systems improve development efficiency. 2. Ease of use: The grammar is close to natural language, the standard library covers a wide range of functions, and simplifies the development process.

Python is highly favored for its simplicity and power, suitable for all needs from beginners to advanced developers. Its versatility is reflected in: 1) Easy to learn and use, simple syntax; 2) Rich libraries and frameworks, such as NumPy, Pandas, etc.; 3) Cross-platform support, which can be run on a variety of operating systems; 4) Suitable for scripting and automation tasks to improve work efficiency.

Yes, learn Python in two hours a day. 1. Develop a reasonable study plan, 2. Select the right learning resources, 3. Consolidate the knowledge learned through practice. These steps can help you master Python in a short time.


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

ZendStudio 13.5.1 Mac
Powerful PHP integrated development environment

VSCode Windows 64-bit Download
A free and powerful IDE editor launched by Microsoft

MantisBT
Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.

SecLists
SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.