- Колташев Ярослав Андреевич - Telegram (@YarKo9_9)
- Муранов Данил Александрович - Telegram (@danil_muranov)
- Щукин Никита Юрьевич - Telegram (@K1kaaaa)
Наше решение представляет собой RAG
пайплайн, которы поможет ответить вам на вопросы о финансах, экономику, бизнес, вклады. Также он способен найти нормативные акты по вашему запросу касаемо экономики
-
Данные из финансовых статей, книг и курсов
- Financial Markets and Institutions 7th ed. Frederic S. Mishkin, Stanley G. Eakins
- Principles of macroeconomics 3th ed. David Shapiro, Daniel MacDonald, Steven A. Greenlaw
- Principles of microeconomics 3th ed. David Shapiro, Daniel MacDonald, Steven A. Greenlaw
- Principles of economics 3th ed. David Shapiro, Daniel MacDonald, Steven A. Greenlaw
- Principles of Finance. Julie Danhlquist, Rainford Knight
- Capital Markets And Securities Laws.
- Securities Trading: Principles and Procedures. Joel Hasbrouck
- Курсы по финансовой грамотности от bks и tinkoff
- Кодекс РФ
-
Нормативные документы
-
Актуальные новости про бизнес и финансы
P.S. Более подробно об сборе и анализе данных можно посмотреть по этой ссылке
Abstract: к 100 случайным чанкам из документов Консультант+ (источник выбран как самый релеватный для ретрива) генерировались вопросы с помощью mistral-large-latest
. Для ретрива использовалась функция retrieve_v1 аналогичная тулу retrieve в FinanceMultiAgentRAG. По полученным документам рассчитывались метрики precision@1, recall@2.
В качестве агрегированных метрик представлены усредненные precision@1 и precision@2 на 100 документах: avg_precision@1 = 0.59 avg_recall@2 = 0.62
Эксперимент можно найти в ноутбуке check_chunks.ipynb
В качестве метрики использовалась методика Response vs input
в качестве судьи которой была модель ministral-8b-latest
Вопросы, которые использовались для оценки находятся в файле
questions_for_metrics.json
. Расчёт метрики находиться в файлеmetrics.ipynb
В среднем по оценки Судьи
наш RAG пайплайн
раскрывает весь вопрос на 0.6289 %
Гистограмма оценки вопросов - ответов
-
Для начала необходимо склонировать репозиторий командой
git clone https://github.com/YarickVodila/FinanceInsight.git
-
Устанавливаем
requirements.txt
pip install -r requirements.txt
-
Определение индексированной базы данных
FAISS
- Переходим в файл
rag_pipeline.py
который находиться по путиFinanceInsight/apps/rag_system/rag_pipeline.py
- В переменную
FAISS_DB
записываем путь до вашей базы данных. P.S. скачать нашу базу можно тут
- Переходим в файл
-
Импортируем класс и пользуемся 🤩
import os from IPython.display import Markdown, Image from apps.rag_system.rag_pipeline import FinanceMultiAgentRAG with open("Your API Key for Mistral", "r") as f: os.environ["MISTRAL_API_KEY"] = f.readline() api_key = os.environ["MISTRAL_API_KEY"] pipeline = FinanceMultiAgentRAG( api_key = api_key ) output = pipeline.get_response("Что такое финансовая грамотность?") Markdown(output)
P.S. Пример работы пайплайна находиться в testing_pipeline.ipynb
В контейнере запускается эндпоинт /generate
по fastAPI, который принимает запрос пользователя и возвращает
{
"response": ...
}
Если модель не нашла ответ, либо произошла ошибка в обработке, то возвращается пустая строка
docker build -t finance-insight:1.0 .
docker run -p 8000:8000 -v local-path-to/data/index:/app/data/index --env-file .env_vars --rm finance-insight:1.0