Spaces:
Runtime error
Runtime error
Commit ·
7d0c63c
1
Parent(s): 5b99a4b
send only recent context history
Browse files- gptManager.py +11 -2
gptManager.py
CHANGED
|
@@ -2,12 +2,13 @@ import re
|
|
| 2 |
from persistStorage import saveLog
|
| 3 |
|
| 4 |
class ChatgptManager:
|
| 5 |
-
def __init__(self, openAIClient, model="gpt-3.5-turbo-1106", tokenLimit=8000, throwError=False):
|
| 6 |
self.client = openAIClient
|
| 7 |
self.tokenLimit = tokenLimit
|
| 8 |
self.model = model
|
| 9 |
self.throwError = throwError
|
| 10 |
self.messages = []
|
|
|
|
| 11 |
|
| 12 |
def setSystemPrompt(self, systemPrompt):
|
| 13 |
systemMessage = {"role":"system", "content":systemPrompt}
|
|
@@ -18,6 +19,8 @@ class ChatgptManager:
|
|
| 18 |
self.messages.insert(0, systemMessage)
|
| 19 |
|
| 20 |
def getResponseForUserInput(self, userInput):
|
|
|
|
|
|
|
| 21 |
userMessage = {"role":"user", "content":userInput}
|
| 22 |
self.messages.append(userMessage)
|
| 23 |
print(self.messages, "messages being sent to gpt for completion.")
|
|
@@ -34,4 +37,10 @@ class ChatgptManager:
|
|
| 34 |
return errorText
|
| 35 |
|
| 36 |
self.messages.append({"role": "assistant", "content": gptResponse})
|
| 37 |
-
return gptResponse
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2 |
from persistStorage import saveLog
|
| 3 |
|
| 4 |
class ChatgptManager:
|
| 5 |
+
def __init__(self, openAIClient, model="gpt-3.5-turbo-1106", tokenLimit=8000, throwError=False, contextHistoryLen=3):
|
| 6 |
self.client = openAIClient
|
| 7 |
self.tokenLimit = tokenLimit
|
| 8 |
self.model = model
|
| 9 |
self.throwError = throwError
|
| 10 |
self.messages = []
|
| 11 |
+
self.contextHistoryLen = contextHistoryLen #sending previous n user inputs and their assistant messages.
|
| 12 |
|
| 13 |
def setSystemPrompt(self, systemPrompt):
|
| 14 |
systemMessage = {"role":"system", "content":systemPrompt}
|
|
|
|
| 19 |
self.messages.insert(0, systemMessage)
|
| 20 |
|
| 21 |
def getResponseForUserInput(self, userInput):
|
| 22 |
+
#send only recent history to gpt.
|
| 23 |
+
self.messages = self.getRecentContextOnly()
|
| 24 |
userMessage = {"role":"user", "content":userInput}
|
| 25 |
self.messages.append(userMessage)
|
| 26 |
print(self.messages, "messages being sent to gpt for completion.")
|
|
|
|
| 37 |
return errorText
|
| 38 |
|
| 39 |
self.messages.append({"role": "assistant", "content": gptResponse})
|
| 40 |
+
return gptResponse
|
| 41 |
+
|
| 42 |
+
def getRecentContextOnly(self):
|
| 43 |
+
#take only systemp prompt and recent self.contextHistoryLen user input and self.contextHistoryLen assistant messages
|
| 44 |
+
if len(self.messages)<2*self.contextHistoryLen+1:
|
| 45 |
+
return self.messages[:]
|
| 46 |
+
return [self.messages[0]] + self.messages[-2*self.contextHistoryLen:]
|