Download tests/test_retrieval.py from dev-yuje/FinGraph: direct link, hf CLI and curl.
- Browser
- Download file 2.71 kB
-
https://huggingface.co/spaces/dev-yuje/FinGraph/resolve/main/tests/test_retrieval.py
- Command line
-
hf download hf://spaces/dev-yuje/FinGraph/tests/test_retrieval.py
-
curl -L -o test_retrieval.py https://huggingface.co/spaces/dev-yuje/FinGraph/resolve/main/tests/test_retrieval.py
2.71 kB
| import os | |
| import pytest | |
| from src.retrieval.finRetrieval import graphrag | |
| # API ํค์ Neo4j ์ฐ๊ฒฐ์ ๋ณด๊ฐ ์์ ๊ฒฝ์ฐ ํ ์คํธ๋ฅผ ๊ฑด๋๋๋๋ค. | |
| has_credentials = ( | |
| os.getenv("OPENAI_API_KEY") is not None and | |
| os.getenv("NEO4J_URI") is not None | |
| ) | |
| def test_portfolio_showcase_aggregation_query(): | |
| """ | |
| [ํฌํธํด๋ฆฌ์ค ํต์ฌ ์๋๋ฆฌ์ค] | |
| ํน์ ๊ธฐ์ ์ ์ง์ ํ์ง ์๊ณ , ๊ธ์ตAI ๋ถ์ผ์ ์ต์ ํธ๋ ๋ ๊ธฐ์ TOP 3์ ๋ํ ์๋น์ค๋ฅผ | |
| ๋์ ์ผ๋ก ๊ทธ๋ํ ํ์(GraphRAG)ํ์ฌ ์ฌ๋ฐ๋ฅธ ํ์์ผ๋ก ๋ต๋ณํ๋์ง ๊ฒ์ฆํฉ๋๋ค. | |
| """ | |
| showcase_query = ( | |
| "์ต๊ทผ ์์ง๋ ๋ด์ค์์ ๊ธ์ตAI(AIField) ๋ถ์ผ์ ๊ฐ์ฅ ์ ๊ทน์ ์ผ๋ก ๊ธฐ์ ์ ๊ฐ๋ฐํ๊ณ ์๋ " | |
| "๊ธฐ์ TOP 3์ ๊ทธ ๊ธฐ์ ๋ค์ด ๊ฐ๋ฐํ ๋ํ ์๋น์ค๋ฅผ ์๋ ค์ค." | |
| ) | |
| # GraphRAG ๊ฒ์ ๋ฐ ์์ฑ ์คํ | |
| response = graphrag.search(query_text=showcase_query) | |
| # 1. ์๋ต ๊ฐ์ฒด ๋ฐ ์์ฑ ์กด์ฌ ์ฌ๋ถ ๊ฒ์ฆ | |
| assert response is not None | |
| assert hasattr(response, "answer") | |
| # 2. ๋ต๋ณ ํ ์คํธ ์ ํจ์ฑ ๊ฒ์ฆ | |
| answer = response.answer | |
| assert len(answer.strip()) > 0 | |
| # 3. ๋ต๋ณ ํ์ ๊ฒ์ฆ (์์ ๊ตฌ์กฐ๋ ์ถ์ฒ ์ง์นจ ์ค์ ์ฌ๋ถ) | |
| assert any(indicator in answer for indicator in ["1.", "์ฒซ์งธ", "TOP", "๊ธฐ์ฌ", "์ถ์ฒ"]) | |
| print(f"\nโจ [ํฌํธํด๋ฆฌ์ค ์ผ์ผ์ด์ค RAG ๊ฒฐ๊ณผ]\n{answer}") | |
| def test_hybrid_fallback_general_query(): | |
| """ | |
| [ํ์ด๋ธ๋ฆฌ๋ RAG Fallback ์๋๋ฆฌ์ค] | |
| ์ง์ ๊ทธ๋ํ(๋ด์ค ๋ฐ์ดํฐ)์ ์ ํ ์์ง๋์ง ์์ ์ผ๋ฐ ๊ณผํ/์ญ์ฌ ์ง๋ฌธ์ ๋ํด | |
| ๊ฒ์ ๊ฒฐ๊ณผ๊ฐ ์๊ณ์น ๋ฏธ๋ง์์ ๊ฐ์งํ๊ณ ์๋์ผ๋ก GPT-4o ์ผ๋ฐ ์ง์ ๋ชจ๋(general)๋ก ๋ผ์ฐํ ํ๋์ง ๊ฒ์ฆํฉ๋๋ค. | |
| """ | |
| general_query = "ํผํ๊ณ ๋ผ์ค ์ ๋ฆฌ์ ๊ทธ ์ค์ํ ํ์ฉ ์์๋ฅผ ๊ฐ๋จํ ์ค๋ช ํด์ค." | |
| # search_with_fallback์ ํตํ ๋ผ์ฐํ ๊ฒ์ ์ํ | |
| result = graphrag.search_with_fallback(query_text=general_query, history=[]) | |
| # 1. ๋ฐํ ํ์ ๋ฐ ๋ชจ๋ ๊ฒ์ฆ | |
| assert result is not None | |
| assert result.mode == "general" | |
| # 2. GPT-4o ์ผ๋ฐ ์ง์ ๋ต๋ณ ์ ํจ์ฑ ๊ฒ์ฆ | |
| assert len(result.answer.strip()) > 0 | |
| assert "ํผํ๊ณ ๋ผ์ค" in result.answer | |
| print(f"\nโจ [์ผ๋ฐ ์ง์ Fallback ๋ผ์ฐํ ๊ฒฐ๊ณผ]\n{result.answer}") | |