mirror of
https://gitflic.ru/project/alt-gnome/karkas.git
synced 2025-01-11 17:28:13 +03:00
MVP status. fix problem with base message
This commit is contained in:
parent
73553ce589
commit
b5e08b19e8
@ -21,13 +21,6 @@ min_token_for_answer = int(config['Openai']['min_token_for_answer'])
|
|||||||
import openai
|
import openai
|
||||||
max_token_count = int(config['Openai']['max_token_count'])
|
max_token_count = int(config['Openai']['max_token_count'])
|
||||||
|
|
||||||
base_message_formated_text = [
|
|
||||||
{
|
|
||||||
"role": "system",
|
|
||||||
"content": config['Openai']['story_model']
|
|
||||||
}
|
|
||||||
]
|
|
||||||
|
|
||||||
# Создание файла лога если его нет
|
# Создание файла лога если его нет
|
||||||
if not os.path.exists(os.path.join(mother_path, 'src/OpenAI/GPT35turbo/log.txt')):
|
if not os.path.exists(os.path.join(mother_path, 'src/OpenAI/GPT35turbo/log.txt')):
|
||||||
with open(os.path.join(mother_path, 'src/OpenAI/GPT35turbo/log.txt'), 'w') as log_file:
|
with open(os.path.join(mother_path, 'src/OpenAI/GPT35turbo/log.txt'), 'w') as log_file:
|
||||||
@ -37,12 +30,12 @@ if not os.path.exists(os.path.join(mother_path, 'src/OpenAI/GPT35turbo/log.txt')
|
|||||||
def openai_response(message_formated_text):
|
def openai_response(message_formated_text):
|
||||||
# Запуск OpenAI
|
# Запуск OpenAI
|
||||||
# Считаем размер полученного текста
|
# Считаем размер полученного текста
|
||||||
print(message_formated_text)
|
#print(message_formated_text)
|
||||||
count_length = 0
|
count_length = 0
|
||||||
for message in message_formated_text:
|
for message in message_formated_text:
|
||||||
print(message["content"])
|
print(message["content"])
|
||||||
count_length += len(message["content"])
|
count_length += len(message["content"])
|
||||||
print(count_length)
|
#print(count_length)
|
||||||
try:
|
try:
|
||||||
response = openai.ChatCompletion.create(
|
response = openai.ChatCompletion.create(
|
||||||
model="gpt-3.5-turbo",
|
model="gpt-3.5-turbo",
|
||||||
@ -64,8 +57,8 @@ def openai_response(message_formated_text):
|
|||||||
return response
|
return response
|
||||||
|
|
||||||
def sort_message_from_user(message_formated_text, message_id):
|
def sort_message_from_user(message_formated_text, message_id):
|
||||||
print(int(*(
|
# print(int(*(
|
||||||
cursor.execute("SELECT message_sender FROM message_list WHERE message_id = ?", (message_id,)).fetchone())))
|
# cursor.execute("SELECT message_sender FROM message_list WHERE message_id = ?", (message_id,)).fetchone())))
|
||||||
if int(*(
|
if int(*(
|
||||||
cursor.execute("SELECT message_sender FROM message_list WHERE message_id = ?",
|
cursor.execute("SELECT message_sender FROM message_list WHERE message_id = ?",
|
||||||
(message_id,)).fetchone())) == 0:
|
(message_id,)).fetchone())) == 0:
|
||||||
@ -91,9 +84,11 @@ def sort_message_from_user(message_formated_text, message_id):
|
|||||||
def openai_collecting_message(message_id, message_formated_text):
|
def openai_collecting_message(message_id, message_formated_text):
|
||||||
# собирает цепочку сообщений для OpenAI длинной до max_token_count
|
# собирает цепочку сообщений для OpenAI длинной до max_token_count
|
||||||
# проверяем что сообщение отвечает на другое сообщение
|
# проверяем что сообщение отвечает на другое сообщение
|
||||||
|
#print(int(*(cursor.execute("SELECT answer_id FROM message_list WHERE message_id = ?", (message_id,)).fetchone())))
|
||||||
|
#print(reply_ignore)
|
||||||
if int(*(cursor.execute("SELECT answer_id FROM message_list WHERE message_id = ?", (message_id,)).fetchone())) not in reply_ignore:
|
if int(*(cursor.execute("SELECT answer_id FROM message_list WHERE message_id = ?", (message_id,)).fetchone())) not in reply_ignore:
|
||||||
# Продолжаем искать ответы на сообщения
|
# Продолжаем искать ответы на сообщения
|
||||||
print(int(*(cursor.execute("SELECT answer_id FROM message_list WHERE message_id = ?", (message_id,)).fetchone())))
|
#print(int(*(cursor.execute("SELECT answer_id FROM message_list WHERE message_id = ?", (message_id,)).fetchone())))
|
||||||
message_formated_text = openai_collecting_message(int(*(cursor.execute("SELECT answer_id FROM message_list WHERE message_id = ?", (message_id,)).fetchone())), message_formated_text)
|
message_formated_text = openai_collecting_message(int(*(cursor.execute("SELECT answer_id FROM message_list WHERE message_id = ?", (message_id,)).fetchone())), message_formated_text)
|
||||||
#Проверяем ID отправителя сообщения, если 0 то это сообщение от бота
|
#Проверяем ID отправителя сообщения, если 0 то это сообщение от бота
|
||||||
sort_message_from_user(message_formated_text, message_id)
|
sort_message_from_user(message_formated_text, message_id)
|
||||||
@ -109,11 +104,12 @@ def openai_message_processing(message_id):
|
|||||||
return None
|
return None
|
||||||
else:
|
else:
|
||||||
# проверяем на то что сообщение влезает в max_token_count с учётом message_formated_text
|
# проверяем на то что сообщение влезает в max_token_count с учётом message_formated_text
|
||||||
#print((len(str(cursor.execute("SELECT message_text FROM message_list WHERE message_id")))))
|
message_formated_text = [
|
||||||
#print(len(message_formated_text[0]['content']))
|
{
|
||||||
#print(max_token_count)
|
"role": "system",
|
||||||
#print(max_token_count - len(message_formated_text[0]['content']))
|
"content": config['Openai']['story_model']
|
||||||
message_formated_text = base_message_formated_text
|
}
|
||||||
|
]
|
||||||
if ((len(str(cursor.execute("SELECT message_text FROM message_list WHERE message_id")))) < (max_token_count - len(message_formated_text[0]['content']))):
|
if ((len(str(cursor.execute("SELECT message_text FROM message_list WHERE message_id")))) < (max_token_count - len(message_formated_text[0]['content']))):
|
||||||
message_formated_text = openai_collecting_message(message_id, message_formated_text)
|
message_formated_text = openai_collecting_message(message_id, message_formated_text)
|
||||||
response = openai_response(message_formated_text)
|
response = openai_response(message_formated_text)
|
||||||
|
Loading…
Reference in New Issue
Block a user