Возврат асинхронного генератора из LLMChain LangChain для потоковой передачиPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Возврат асинхронного генератора из LLMChain LangChain для потоковой передачи

Сообщение Anonymous »

Я работаю над приложением FastAPI, которое должно передавать токены из модели GPT-4, развернутой в Azure. Я использую AzureChatOpenAI и LLMChain из Langchain для доступа API к моим моделям, развернутым в Azure.
Я пытался использовать метод astream объекта LLMChain. Я действительно не понимаю, почему это не работает, поскольку я вижу только потоковую передачу на своем терминале. Я ожидал, что метод astream вернет асинхронный генератор, чтобы я мог передавать каждый токен по мере его создания моделью, вместо этого я получаю окончательную строку в качестве ответа.
Я думаю, что поведение, которое я наблюдаю, может быть связано с StreamingStdOutCallbackHandler (По названию я понимаю, что это не подходящий обработчик обратного вызова, но другие обратные вызовы, которые я пробовал, случайным образом отправляли повторяющиеся токены).
Ниже приведен фрагмент кода (только часть, достаточная для отладки):
class OpenAIModel:
def __init__(self):
self.llm = None

def __call__(self, #params) -> str:

if self.llm is None:
openai_params = {
# other params removed for debugging purpose
'streaming': streaming,
'callback_manager': AsyncCallbackManager([StreamingStdOutCallbackHandler()]) if streaming else None,
'verbose': True if streaming else False
}

self.llm = AzureChatOpenAI(**openai_params)

return self

async def streaming_answer(self, question: str):
qaPrompt = PromptTemplate(
input_variables=["question"], template="OPENAI_TEMPLATE" # Anonymized template
)

chain = LLMChain(llm=self.llm, prompt=qaPrompt)

async for chunk in chain.astream({"question": question}):
yield chunk


Подробнее здесь: https://stackoverflow.com/questions/778 ... -streaming
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»