FIN_ASSISTANT / analyzer.py
QAway-to
model change
b58afd7
raw
history blame
1.46 kB
from prompts import TEST1
from fetch import extract_portfolio_id, fetch_metrics_async
from useCasesReferences import REFERENCE_PROMPT
from openai import OpenAI
import asyncio
def analyze_portfolio_streaming(text: str, client: OpenAI):
portfolio_id = extract_portfolio_id(text)
if not portfolio_id:
yield "❗ Укажите корректный portfolioId или ссылку."
return
yield "⏳ Загружаю метрики портфеля..."
metrics = asyncio.run(fetch_metrics_async(portfolio_id))
if not metrics:
yield "❗ Не удалось получить метрики портфеля."
return
metrics_text = ", ".join([f"{k}: {v}" for k, v in metrics.items()])
prompt = f"{REFERENCE_PROMPT} используй этот промпт для анализа:{metrics_text}"
try:
response_llm = client.chat.completions.create(
model="meta-llama/Meta-Llama-3.1-8B-Instruct",
messages=[
{"role": "system", "content": TEST1},
{"role": "user", "content": prompt}
],
stream=True
)
partial = ""
for chunk in response_llm:
delta = chunk.choices[0].delta.content
if delta:
partial += delta
yield partial
except Exception as e:
yield f"❌ Ошибка при генерации ответа: {e}"