добавил мут систему, обновил api, сделал запоминание контекста.
This commit is contained in:
+76
-19
@@ -1,14 +1,71 @@
|
||||
import json
|
||||
from aiogram import types
|
||||
import sqlite3
|
||||
import openai
|
||||
|
||||
|
||||
async def get_response_to_openai(message: types.Message, bot):
|
||||
if message.from_user.id in json.load(open("not_work_user.json"))["chat_gpt"]:
|
||||
await bot.send_message(message.chat.id, "ПИШЁВ ТИ НАХУЙ")
|
||||
return
|
||||
conn = sqlite3.connect('db.sql')
|
||||
cur = conn.cursor()
|
||||
openai.api_key = "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"
|
||||
try:
|
||||
points = cur.execute("SELECT * FROM 'f'".replace("f", str(message.from_user.id))).fetchall()
|
||||
message_send = []
|
||||
for i in points:
|
||||
message_send.append({"role": i[1], "content": i[2]})
|
||||
message_send.append({"role": "user", "content": ' '.join(message.text.split()[1:])})
|
||||
except sqlite3.OperationalError:
|
||||
message_send = [{"role": "user", "content": ' '.join(message.text.split()[1:])}]
|
||||
print(message_sendко)
|
||||
response = openai.ChatCompletion.create(
|
||||
model="gpt-3.5-turbo",
|
||||
messages=message_send,
|
||||
temperature=0.5,
|
||||
max_tokens=1000,
|
||||
top_p=1.0,
|
||||
frequency_penalty=0.5,
|
||||
presence_penalty=0.0
|
||||
)
|
||||
await bot.send_message(message.chat.id, f"ChatGPT\n{response['choices'][0]['message']['content']}",
|
||||
parse_mode=None, reply_to_message_id=message.message_id)
|
||||
try:
|
||||
cur.execute("INSERT INTO 'f' (role, content) VALUES (?, ?)".replace("f", str(message.from_user.id)),
|
||||
("user", ' '.join(message.text.split()[1:])))
|
||||
cur.execute("INSERT INTO 'f' (role, content) VALUES (?, ?)".replace("f", str(message.from_user.id)),
|
||||
("assistant", response['choices'][0]['message']['content']))
|
||||
conn.commit()
|
||||
conn.close()
|
||||
except sqlite3.OperationalError:
|
||||
cur.execute(f"CREATE TABLE IF NOT EXISTS '{message.from_user.id}' (id INTEGER PRIMARY KEY AUTOINCREMENT"
|
||||
f" UNIQUE NOT NULL, role STRING NOT NULL,"
|
||||
f" content STRING NOT NULL)")
|
||||
cur.execute("INSERT INTO 'f' (role, content) VALUES (?, ?)".replace("f", str(message.from_user.id)),
|
||||
("user", ' '.join(message.text.split()[1:])))
|
||||
cur.execute("INSERT INTO 'f' (role, content) VALUES (?, ?)".replace("f", str(message.from_user.id)),
|
||||
("assistant", response['choices'][0]['message']['content']))
|
||||
conn.commit()
|
||||
conn.close()
|
||||
|
||||
|
||||
async def clear_db(message: types.Message):
|
||||
conn = sqlite3.connect('db.sql')
|
||||
cur = conn.cursor()
|
||||
cur.execute(f"DELETE FROM '{str(message.from_user.id)}'")
|
||||
conn.commit()
|
||||
conn.close()
|
||||
|
||||
|
||||
def get_response(message: types.Message):
|
||||
answer_en = get_translation(' '.join(message.text.split()[1:]), "en")
|
||||
print(answer_en)
|
||||
response_en = get_response_to_openai(answer_en)
|
||||
print(response_en)
|
||||
response_ru = get_translation(response_en, "ru")
|
||||
resource_ru_not_translate = get_response_to_openai(' '.join(message.text.split()[1:]))
|
||||
save_file(response_ru, resource_ru_not_translate)
|
||||
# print(answer_en)
|
||||
# response_en = get_response_to_openai(answer_en)
|
||||
# print(response_en)
|
||||
# response_ru = get_translation(response_en, "ru")
|
||||
# resource_ru_not_translate = get_response_to_openai(' '.join(message.text.split()[1:]))
|
||||
# save_file(response_ru, resource_ru_not_translate)
|
||||
|
||||
|
||||
def get_translation(text, language):
|
||||
@@ -16,19 +73,19 @@ def get_translation(text, language):
|
||||
return GoogleTranslator(target=language).translate(text)
|
||||
|
||||
|
||||
def get_response_to_openai(text):
|
||||
import openai
|
||||
openai.api_key = "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"
|
||||
response = openai.Completion.create(
|
||||
model="text-davinci-003",
|
||||
prompt=text,
|
||||
temperature=0.5,
|
||||
max_tokens=1000,
|
||||
top_p=1.0,
|
||||
frequency_penalty=0.5,
|
||||
presence_penalty=0.0
|
||||
)
|
||||
return response['choices'][0]['text']
|
||||
# def get_response_to_openai(text):
|
||||
# import openai
|
||||
# openai.api_key = "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"
|
||||
# response = openai.Completion.create(
|
||||
# model="text-davinci-003",
|
||||
# prompt=text,
|
||||
# temperature=0.5,
|
||||
# max_tokens=1000,
|
||||
# top_p=1.0,
|
||||
# frequency_penalty=0.5,
|
||||
# presence_penalty=0.0
|
||||
# )
|
||||
# return response['choices'][0]['text']
|
||||
|
||||
|
||||
def save_file(response_ru, resource_ru_not_translate):
|
||||
|
||||
Reference in New Issue
Block a user