обратные вызовы langchain StreamingStdOutCallbackHandler удаляет символ новой строки
Нам удалось получить потоковый ответ от LlamaCpp, используяstreaming=True и CallbackManager([StreamingStdOutCallbackHandler()]). Но проблема в том, что выводимый поток не содержит символов новой строки, из-за чего текст потокового вывода выглядит как длинный абзац.
Содержимое консоли отображается правильно, а когда мы возвращаем полный ответ, он содержит символы новой строки. Проблема заключается только в потоковом выводе. Из-за этого мы не можем правильно отобразить вывод llm.
Пытался,
def get70BGPULLMObject():
# LANGCHAIN
callback_manager = CallbackManager([StreamingStdOutCallbackHandler()])
llm = LlamaCpp(model_path=llm_model_path,
temperature=0,
n_gpu_layers=83,
n_ctx=4096,
max_tokens=4096,
n_batch=2048,
n_gqa=8,
verbose=True,
callback_manager=callback_manager,
streaming=True,
stream_prefix=True
)
return llm
async def generateStreamingOutput(llm, question):
for item in llm.stream(json.dumps(question), stop=['Question:']):
yield item
return EventSourceResponse(generateStreamingOutput(llm, question))