Spaces:
Sleeping
Sleeping
File size: 1,593 Bytes
00ddeb7 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
from fetch import extract_portfolio_id
from fetch import fetch_metrics
from prompts import SYSTEM_PROMPT
from openai import OpenAI
# Сравнение двух портфелей
def compare_portfolio(text1: str, text2: str, client: OpenAI):
id1 = extract_portfolio_id(text1)
id2 = extract_portfolio_id(text2)
if not id1 or not id2:
yield "❗ Один или оба portfolioId некорректны."
return
m1 = fetch_metrics(id1)
m2 = fetch_metrics(id2)
if not m1 or not m2:
yield "❗ Не удалось получить метрики одного из портфелей."
return
m1_text = ", ".join([f"{k}: {v}" for k, v in m1.items()])
m2_text = ", ".join([f"{k}: {v}" for k, v in m2.items()])
prompt = f"""Сравни два инвестиционных портфеля:
Портфель 1: {m1_text}
Портфель 2: {m2_text}
Сделай сравнительный анализ на русском языке как финансовый аналитик. Укажи, какой портфель сильнее, в чём риски, где преимущества."""
response = client.chat.completions.create(
model="meta-llama/Meta-Llama-3.1-8B-Instruct",
messages=[
{"role": "system", "content": SYSTEM_PROMPT},
{"role": "user", "content": prompt}
],
stream=True
)
partial = ""
for chunk in response:
delta = chunk.choices[0].delta.content
if delta:
partial += delta
yield partial |