Вы должны войти, чтобы создавать сообщения и темы.

Сохранение контента при переписке с ChatGPT

Доброго всем времени суток!

Пишу Telegram бота (для личных целей) для общения с ChatGPT, но никак не могу разобраться как сохранять контекст беседы. Подскажите, пожалуйста, что я делаю не так? кусок кода прилагаю:

код


''' ########################################## '''
''' Создать статью по пунктам / Create Writing '''
class CreateWriting(StatesGroup):
    writing = State()

@dp.message_handler(filters.Text(equals="Создать статью по пунктам", ignore_case = True))
async def CreateWriting_begin(message: types.Message):
    if debug: print("Создать статью по пунктам")
    await message.answer("Выбрано <b><i>Создание статьи по пунктам</i></b>. Отправьте запрос", parse_mode = types.ParseMode.HTML, reply_markup = kb_RushGPT_bot_Writing)
    await CreateWriting.writing.set()

@dp.message_handler(filters.Text(equals="Закончить написание статьи", ignore_case = True), state = "*")
async def CreateWriting_finish(message: types.Message, state: FSMContext):
    if debug: print("Закончить написание статьи")
    await message.answer("Создание статьи окончено.", reply_markup = kb_RushGPT_bot)
    fileName = "users/h" + str(message.from_user.id) + ".txt"
    with open (fileName, "w", encoding='utf-8') as file1:
        file1.write("")
    await state.finish()

@dp.message_handler(state = CreateWriting.writing)
async def CreateWriting_continue(message: types.Message, state: FSMContext):
    if debug: print("Продолжить написание статьи")
    await message.reply(random.choice(msgAnswer))
    if not os.path.exists("users/h" + str(message.from_user.id) + ".txt"):
        fileName = "users/h" + str(message.from_user.id) + ".txt"
        with open (fileName, "w", encoding='utf-8') as file1:
            file1.write("")
    msg = message.text
    response = await openai.ChatCompletion.acreate(
    temperature = 0.7,
    model = engine,
    messages = [
            {"role": "assistant", "content": str(open("users/h" + str(message.from_user.id) + ".txt", "r")) + msg}
        ]
    )
    fileName = "users/h" + str(message.from_user.id) + ".txt"
    with open (fileName, "a+", encoding='utf-8') as file1:
        file1.write(msg.strip() + "\n")
    response_tokens = response["usage"]["completion_tokens"]
    msg = response.choices[0].message.content
    if response_tokens > 4096:
        await message.answer(f"Текст получился очень большой ({response_tokens} символа(ов)), но я прикладываю его в виде файла...", reply_markup = kb_RushGPT_bot)
        fileName = "users/a" + str(message.from_user.id) + "_" + str(datetime.datetime.today().strftime("%Y-%m-%d-%H-%M-%S")) + ".txt"
        with open (fileName, "w", encoding='utf-8') as file1:
            file1.write(msg)
        await bot.send_document(message.chat.id, document = open(fileName, 'rb'))
    else:
        await message.answer(msg, reply_markup = kb_RushGPT_bot)
    await message.answer("Нужно что-то добавить?", reply_markup = kb_RushGPT_bot_Writing)
    await CreateWriting.writing.set()