|
|
|
@ -620,14 +620,16 @@ class Model:
|
|
|
|
|
f"{details['exception'].args[0]}"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
async def valid_text_request(self,response, model=None):
|
|
|
|
|
async def valid_text_request(self, response, model=None):
|
|
|
|
|
try:
|
|
|
|
|
tokens_used = int(response["usage"]["total_tokens"])
|
|
|
|
|
if model and model in Models.GPT4_MODELS:
|
|
|
|
|
await self.usage_service.update_usage(tokens_used,
|
|
|
|
|
prompt_tokens=int(response["usage"]["prompt_tokens"]),
|
|
|
|
|
completion_tokens=int(response["usage"]["completion_tokens"]),
|
|
|
|
|
gpt4=True)
|
|
|
|
|
await self.usage_service.update_usage(
|
|
|
|
|
tokens_used,
|
|
|
|
|
prompt_tokens=int(response["usage"]["prompt_tokens"]),
|
|
|
|
|
completion_tokens=int(response["usage"]["completion_tokens"]),
|
|
|
|
|
gpt4=True,
|
|
|
|
|
)
|
|
|
|
|
else:
|
|
|
|
|
await self.usage_service.update_usage(tokens_used)
|
|
|
|
|
except Exception as e:
|
|
|
|
@ -781,7 +783,6 @@ class Model:
|
|
|
|
|
|
|
|
|
|
return response
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@backoff.on_exception(
|
|
|
|
|
backoff.expo,
|
|
|
|
|
ValueError,
|
|
|
|
@ -887,13 +888,15 @@ class Model:
|
|
|
|
|
)
|
|
|
|
|
else:
|
|
|
|
|
try:
|
|
|
|
|
|
|
|
|
|
print("In first block The message text is ->" + message.text)
|
|
|
|
|
if message.text.strip().lower().startswith("this conversation has some context from earlier"):
|
|
|
|
|
if (
|
|
|
|
|
message.text.strip()
|
|
|
|
|
.lower()
|
|
|
|
|
.startswith("this conversation has some context from earlier")
|
|
|
|
|
):
|
|
|
|
|
print("Hit the exception clause")
|
|
|
|
|
raise Exception("This is a context message")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
username = re.search(r"(?<=\n)(.*?)(?=:)", message.text).group()
|
|
|
|
|
username_clean = self.cleanse_username(username)
|
|
|
|
|
text = message.text.replace(f"{username}:", "")
|
|
|
|
@ -905,9 +908,7 @@ class Model:
|
|
|
|
|
except Exception:
|
|
|
|
|
print("In second block The message text is ->" + message.text)
|
|
|
|
|
text = message.text.replace("<|endofstatement|>", "")
|
|
|
|
|
messages.append(
|
|
|
|
|
{"role": "system", "content": text}
|
|
|
|
|
)
|
|
|
|
|
messages.append({"role": "system", "content": text})
|
|
|
|
|
|
|
|
|
|
print(f"Messages -> {messages}")
|
|
|
|
|
async with aiohttp.ClientSession(raise_for_status=False) as session:
|
|
|
|
@ -1058,7 +1059,9 @@ class Model:
|
|
|
|
|
response = await resp.json()
|
|
|
|
|
# print(f"Payload -> {payload}")
|
|
|
|
|
# Parse the total tokens used for this request and response pair from the response
|
|
|
|
|
await self.valid_text_request(response, model=self.model if model is None else model)
|
|
|
|
|
await self.valid_text_request(
|
|
|
|
|
response, model=self.model if model is None else model
|
|
|
|
|
)
|
|
|
|
|
print(f"Response -> {response}")
|
|
|
|
|
|
|
|
|
|
return response
|
|
|
|
@ -1092,7 +1095,9 @@ class Model:
|
|
|
|
|
response = await resp.json()
|
|
|
|
|
# print(f"Payload -> {payload}")
|
|
|
|
|
# Parse the total tokens used for this request and response pair from the response
|
|
|
|
|
await self.valid_text_request(response, model=self.model if model is None else model)
|
|
|
|
|
await self.valid_text_request(
|
|
|
|
|
response, model=self.model if model is None else model
|
|
|
|
|
)
|
|
|
|
|
print(f"Response -> {response}")
|
|
|
|
|
|
|
|
|
|
return response
|
|
|
|
|