В настоящее время я передаю выходные данные во внешний интерфейс через API Flask и использую Langchain с локальной моделью Ollama. Потоковая передача работает, и я получаю выходные данные во внешнем интерфейсе, но это очень медленно и сначала генерирует поток в консоли, а затем отправляет его во внешний интерфейс как поток событий.
Как мне создать текстовый поток поскольку он генерируется в реальном времени. Ниже мой код:
app.py:
@retry(wait=wait_random_exponential(min=0.1, max=0.5), stop=stop_after_attempt(5), reraise=True)
def query_knowledge(self, retrieved_info: List[Dict], query: str, model_name: str) -> Generator[str, None, None]:
context = json.dumps(retrieved_info, indent=2)
# First, stream the answer
answer_stream = self._stream_answer(query, context, model_name)
# Use a Future to store the streamed answer
streamed_answer_future = Future()
# Yield from _combine_streams, which will set the result of streamed_answer_future
yield from self._combine_streams(answer_stream, streamed_answer_future)
# Now that we have the full streamed answer, generate the full JSON
json_future = self.executor.submit(self._generate_full_json, query, context, model_name,
streamed_answer_future.result())
# Yield the full JSON
yield json.dumps(json_future.result())
def _stream_answer(self, query: str, context: str, model_name: str) -> Generator[str, None, None]:
prompt_template = PromptTemplate(template=_get_answer_prompt(),input_variables=["query", "context"])
callback_manager = CallbackManager([StreamingStdOutCallbackHandler()])
gpt_model = ChatOllama(model=model_name, temperature=self.config.LLM.TEMPERATURE, callbacks=callback_manager)
llm_chain = LLMChain(llm=gpt_model, prompt=prompt_template)
return llm_chain.stream({"query": query, "context": context})
Я даже пробовал напрямую вызвать функцию _answer_stream, но это не имеет никакого значения.
В настоящее время я передаю выходные данные во внешний интерфейс через API Flask и использую Langchain с локальной моделью Ollama. Потоковая передача работает, и я получаю выходные данные во внешнем интерфейсе, но это очень медленно и сначала генерирует поток в консоли, а затем отправляет его во внешний интерфейс как поток событий. Как мне создать текстовый поток поскольку он генерируется в реальном времени. Ниже мой код: app.py: [code]@app.route('/search/') def search(query): def generate_stream(query): retrieved_info = mservice.retrieve_knowlede(query) for chunk in llm_service.query_knowledge(retrieved_info, final_query, model_name=Config.LLM.MODEL_NAME): if chunk.startswith("{"): yield f'data: {chunk}\n\n' else: lines = chunk.split('\n') for line in lines: if line.strip(): # Only send non-empty lines yield f'data: {line}\n\n' time.sleep(0.12) yield ''
# First, stream the answer answer_stream = self._stream_answer(query, context, model_name) # Use a Future to store the streamed answer
streamed_answer_future = Future()
# Yield from _combine_streams, which will set the result of streamed_answer_future yield from self._combine_streams(answer_stream, streamed_answer_future) # Now that we have the full streamed answer, generate the full JSON json_future = self.executor.submit(self._generate_full_json, query, context, model_name, streamed_answer_future.result()) # Yield the full JSON yield json.dumps(json_future.result())
def _stream_answer(self, query: str, context: str, model_name: str) -> Generator[str, None, None]: prompt_template = PromptTemplate(template=_get_answer_prompt(),input_variables=["query", "context"]) callback_manager = CallbackManager([StreamingStdOutCallbackHandler()]) gpt_model = ChatOllama(model=model_name, temperature=self.config.LLM.TEMPERATURE, callbacks=callback_manager) llm_chain = LLMChain(llm=gpt_model, prompt=prompt_template) return llm_chain.stream({"query": query, "context": context}) [/code] Я даже пробовал напрямую вызвать функцию _answer_stream, но это не имеет никакого значения.
В настоящее время я передаю выходные данные во внешний интерфейс через API Flask и использую Langchain с локальной моделью Ollama. Потоковая передача работает, и я получаю выходные данные во внешнем интерфейсе, но это очень медленно и сначала...
По сути, я хочу добиться этого с помощью Flask и LangChain: x8uwwLNxqis .
Я создаю приложение Q&A Flask, которое использует LangChain в серверной части, но у меня возникли проблемы с потоковой передачей ответа от ChatGPT. Моя цепочка выглядит так:...
У меня проблемы с потоковой передачей от Flir Grasshopper3 до OpenCV. Есть ли способ транслировать непосредственно от камеры FLIR в мой код с помощью Python? Когда я использую приведенный ниже код, CV.VideoCapture не может распознать камеру FLIR в...
Я пытаюсь настроить приложение потокового чата, используя Spring Ai Whit Ollama . Я хочу получить потоковую реакцию с токеном от моего весеннего приложения, но вывод был всего лишь предложением. Я не знаю причину и как это исправить. # Ollama...
Я пытаюсь погрузиться в большой паркетный файл с полярными. Это должно быть легко достичь в (1) памяти:
import os ; os.environ = '4'
import polars as pl
import time, random
import numpy as np
random.seed(42)