Мне удалось создать историю чата и ответы чат-бота в соответствии с контекстом, но по какой-то причине он зависает. по инструкциям первого приглашения, поэтому, когда я говорю ему остановиться, он этого не делает. Позвольте мне проиллюстрировать:
Пользователь: Мы поиграем в игру, в которой я буду говорить несколько слов, а вы должны скажите мне, обозначает ли это слово животное. Я просто хочу, чтобы вы сказали мне, является ли слово, которое я говорю, животным или нет
системой: я отвечу «да» или «нет», чтобы позволить вы знаете, представляет ли это слово животное. Давай, скажи свое первое слово!
Пользователь: лошадь
система: Это животное!
Пользователь: слон
система: Вот мои ответы: 1. Нет, «лошадь» — это животное. 2. Да, «слон» — животное. Давайте продолжать играть! Какое следующее слово?
Пользователь: таблица
система: Я сообщу, представляет ли каждое слово животное. - лошадь: Да, это животное. - слон: Да, это животное. - стол: Нет, это не животное. (это предмет мебели)
Пользователь: Bottle
system: Давайте начнем с игры. Вот мои ответы: 1. лошадь – Да, это животное. 2. слон – Да, это животное. 3. стол – Нет, это не животное. 4. бутылка – Нет, это не животное. Правильно ли я понял?
Пользователь: dolphin
system: Вот мои ответы: - Нет (это предмет мебели) - Да - Нет (это неодушевленный предмет) - Нет (это неодушевленный предмет, контейнер) - Да
Пользователь: ок, прекрати игру, давайте сделаем что-нибудь другое
система: Вот мои ответы: * лошадь: да * слон: да * стол: нет * бутылка: нет * дельфин: да
Дело в том, что когда я пробую то же самое непосредственно в cmd (
Код: Выделить всё
ollama run llama3.2-> Мы сыграем в игру, в которой я буду произносить несколько слов, а вы — говорить мне, если это слово обозначает животное. Я просто хочу, чтобы ты сказал мне, является ли слово, которое я говорю, животным или нет
Я готов, давай поиграем. Какое первое слово?
-> лошадь
Да.
-> слон
Да.
-> стол
Нет
-> бутылка
Нет
-> дельфин
Да.
-> ладно, хватит игры, давай займемся чем-нибудь другим
Было весело играть с тобой в игру с животными. Что бы вы хотели сделать дальше? Хотели бы вы сыграть в другую игру, поговорить или попробовать что-то еще? Дайте мне знать!
Я не знаю, что мне следует изменить в своем коде или какой параметр управляет этим поведением. Мой код:
Код: Выделить всё
from flask import Flask, render_template, request
from ollama import chat
from langchain_core.messages import AIMessage
from langchain_ollama import ChatOllama
app = Flask(__name__)
MODEL = "llama3.2"
MODEL_MAX_TOKENS = 128000
messages = []
llm = ChatOllama(
model=MODEL,
temperature=1.1,
stream=True
)
@app.route('/ask_gpt', methods=['POST'])
def ask_gpt():
messages.append(("user", request.form['text']))
number_of_tokens = ut.get_number_of_tokens(messages)
# Context accepts a max number of tokens
while(number_of_tokens >= MODEL_MAX_TOKENS):
del(messages[1])
ai_msg = llm.invoke(messages)
return ai_msg.content
Подробнее здесь: https://stackoverflow.com/questions/791 ... rst-prompt
Мобильная версия