Spaces:
Sleeping
Sleeping
ashe0042 commited on
Commit ·
521d1ae
1
Parent(s): 8337957
LangSmith tracing wired into all five configs and eval harness
Browse files- requirements.txt +1 -0
- src/configs/grounded.py +2 -0
- src/configs/hybrid.py +2 -0
- src/configs/kg_augmented.py +2 -0
- src/configs/naive.py +2 -0
- src/configs/rerank.py +2 -0
- src/eval.py +3 -0
requirements.txt
CHANGED
|
@@ -7,3 +7,4 @@ psycopg2-binary==2.9.10
|
|
| 7 |
python-dotenv==1.1.0
|
| 8 |
requests==2.34.2
|
| 9 |
sentence-transformers==3.4.1
|
|
|
|
|
|
| 7 |
python-dotenv==1.1.0
|
| 8 |
requests==2.34.2
|
| 9 |
sentence-transformers==3.4.1
|
| 10 |
+
langsmith
|
src/configs/grounded.py
CHANGED
|
@@ -8,6 +8,7 @@ import sys
|
|
| 8 |
from pathlib import Path
|
| 9 |
|
| 10 |
from dotenv import load_dotenv
|
|
|
|
| 11 |
from openai import OpenAI
|
| 12 |
|
| 13 |
sys.path.insert(0, str(Path(__file__).resolve().parent.parent))
|
|
@@ -42,6 +43,7 @@ SYSTEM_PROMPT = (
|
|
| 42 |
)
|
| 43 |
|
| 44 |
|
|
|
|
| 45 |
def run(query: str, source_filter: list[str] | None = None) -> dict:
|
| 46 |
query_embedding = embed_query(query)
|
| 47 |
retrieved_chunks = rrf_search(query, query_embedding, source_filter=source_filter, top_k=5)
|
|
|
|
| 8 |
from pathlib import Path
|
| 9 |
|
| 10 |
from dotenv import load_dotenv
|
| 11 |
+
from langsmith import traceable
|
| 12 |
from openai import OpenAI
|
| 13 |
|
| 14 |
sys.path.insert(0, str(Path(__file__).resolve().parent.parent))
|
|
|
|
| 43 |
)
|
| 44 |
|
| 45 |
|
| 46 |
+
@traceable(name="grounded")
|
| 47 |
def run(query: str, source_filter: list[str] | None = None) -> dict:
|
| 48 |
query_embedding = embed_query(query)
|
| 49 |
retrieved_chunks = rrf_search(query, query_embedding, source_filter=source_filter, top_k=5)
|
src/configs/hybrid.py
CHANGED
|
@@ -7,6 +7,7 @@ import sys
|
|
| 7 |
from pathlib import Path
|
| 8 |
|
| 9 |
from dotenv import load_dotenv
|
|
|
|
| 10 |
from openai import OpenAI
|
| 11 |
|
| 12 |
sys.path.insert(0, str(Path(__file__).resolve().parent.parent))
|
|
@@ -33,6 +34,7 @@ SYSTEM_PROMPT = (
|
|
| 33 |
)
|
| 34 |
|
| 35 |
|
|
|
|
| 36 |
def run(query: str, source_filter: list[str] | None = None) -> dict:
|
| 37 |
query_embedding = embed_query(query)
|
| 38 |
retrieved_chunks = rrf_search(query, query_embedding, source_filter=source_filter, top_k=5)
|
|
|
|
| 7 |
from pathlib import Path
|
| 8 |
|
| 9 |
from dotenv import load_dotenv
|
| 10 |
+
from langsmith import traceable
|
| 11 |
from openai import OpenAI
|
| 12 |
|
| 13 |
sys.path.insert(0, str(Path(__file__).resolve().parent.parent))
|
|
|
|
| 34 |
)
|
| 35 |
|
| 36 |
|
| 37 |
+
@traceable(name="hybrid")
|
| 38 |
def run(query: str, source_filter: list[str] | None = None) -> dict:
|
| 39 |
query_embedding = embed_query(query)
|
| 40 |
retrieved_chunks = rrf_search(query, query_embedding, source_filter=source_filter, top_k=5)
|
src/configs/kg_augmented.py
CHANGED
|
@@ -12,6 +12,7 @@ import sys
|
|
| 12 |
from pathlib import Path
|
| 13 |
|
| 14 |
from dotenv import load_dotenv
|
|
|
|
| 15 |
from openai import OpenAI
|
| 16 |
|
| 17 |
sys.path.insert(0, str(Path(__file__).resolve().parent.parent))
|
|
@@ -181,6 +182,7 @@ def _format_chunk(chunk: dict) -> str:
|
|
| 181 |
return f"[{chunk['source']} | {chunk['paragraph_id']}]\n{chunk['text']}\n"
|
| 182 |
|
| 183 |
|
|
|
|
| 184 |
def run(query: str, source_filter: list[str] | None = None) -> dict:
|
| 185 |
query_embedding = embed_query(query)
|
| 186 |
retrieved_chunks = rrf_search(query, query_embedding, source_filter=source_filter, top_k=5)
|
|
|
|
| 12 |
from pathlib import Path
|
| 13 |
|
| 14 |
from dotenv import load_dotenv
|
| 15 |
+
from langsmith import traceable
|
| 16 |
from openai import OpenAI
|
| 17 |
|
| 18 |
sys.path.insert(0, str(Path(__file__).resolve().parent.parent))
|
|
|
|
| 182 |
return f"[{chunk['source']} | {chunk['paragraph_id']}]\n{chunk['text']}\n"
|
| 183 |
|
| 184 |
|
| 185 |
+
@traceable(name="kg_augmented")
|
| 186 |
def run(query: str, source_filter: list[str] | None = None) -> dict:
|
| 187 |
query_embedding = embed_query(query)
|
| 188 |
retrieved_chunks = rrf_search(query, query_embedding, source_filter=source_filter, top_k=5)
|
src/configs/naive.py
CHANGED
|
@@ -7,6 +7,7 @@ import sys
|
|
| 7 |
from pathlib import Path
|
| 8 |
|
| 9 |
from dotenv import load_dotenv
|
|
|
|
| 10 |
from openai import OpenAI
|
| 11 |
|
| 12 |
sys.path.insert(0, str(Path(__file__).resolve().parent.parent))
|
|
@@ -33,6 +34,7 @@ SYSTEM_PROMPT = (
|
|
| 33 |
)
|
| 34 |
|
| 35 |
|
|
|
|
| 36 |
def run(query: str, source_filter: list[str] | None = None) -> dict:
|
| 37 |
query_embedding = embed_query(query)
|
| 38 |
retrieved_chunks = dense_search(query_embedding, source_filter=source_filter, top_k=5)
|
|
|
|
| 7 |
from pathlib import Path
|
| 8 |
|
| 9 |
from dotenv import load_dotenv
|
| 10 |
+
from langsmith import traceable
|
| 11 |
from openai import OpenAI
|
| 12 |
|
| 13 |
sys.path.insert(0, str(Path(__file__).resolve().parent.parent))
|
|
|
|
| 34 |
)
|
| 35 |
|
| 36 |
|
| 37 |
+
@traceable(name="naive")
|
| 38 |
def run(query: str, source_filter: list[str] | None = None) -> dict:
|
| 39 |
query_embedding = embed_query(query)
|
| 40 |
retrieved_chunks = dense_search(query_embedding, source_filter=source_filter, top_k=5)
|
src/configs/rerank.py
CHANGED
|
@@ -7,6 +7,7 @@ import sys
|
|
| 7 |
from pathlib import Path
|
| 8 |
|
| 9 |
from dotenv import load_dotenv
|
|
|
|
| 10 |
from openai import OpenAI
|
| 11 |
from sentence_transformers import CrossEncoder
|
| 12 |
|
|
@@ -36,6 +37,7 @@ SYSTEM_PROMPT = (
|
|
| 36 |
)
|
| 37 |
|
| 38 |
|
|
|
|
| 39 |
def run(query: str, source_filter: list[str] | None = None) -> dict:
|
| 40 |
query_embedding = embed_query(query)
|
| 41 |
candidates = rrf_search(query, query_embedding, source_filter=source_filter, top_k=20)
|
|
|
|
| 7 |
from pathlib import Path
|
| 8 |
|
| 9 |
from dotenv import load_dotenv
|
| 10 |
+
from langsmith import traceable
|
| 11 |
from openai import OpenAI
|
| 12 |
from sentence_transformers import CrossEncoder
|
| 13 |
|
|
|
|
| 37 |
)
|
| 38 |
|
| 39 |
|
| 40 |
+
@traceable(name="rerank")
|
| 41 |
def run(query: str, source_filter: list[str] | None = None) -> dict:
|
| 42 |
query_embedding = embed_query(query)
|
| 43 |
candidates = rrf_search(query, query_embedding, source_filter=source_filter, top_k=20)
|
src/eval.py
CHANGED
|
@@ -6,6 +6,8 @@ results for comparison. No scoring/taxonomy logic here yet.
|
|
| 6 |
import sys
|
| 7 |
from pathlib import Path
|
| 8 |
|
|
|
|
|
|
|
| 9 |
sys.path.insert(0, str(Path(__file__).resolve().parent))
|
| 10 |
|
| 11 |
from configs.grounded import run as run_grounded
|
|
@@ -23,6 +25,7 @@ CONFIG_RUNNERS = {
|
|
| 23 |
}
|
| 24 |
|
| 25 |
|
|
|
|
| 26 |
def evaluate_query(query: str, source_filter: list[str] | None = None) -> dict:
|
| 27 |
results = {}
|
| 28 |
|
|
|
|
| 6 |
import sys
|
| 7 |
from pathlib import Path
|
| 8 |
|
| 9 |
+
from langsmith import traceable
|
| 10 |
+
|
| 11 |
sys.path.insert(0, str(Path(__file__).resolve().parent))
|
| 12 |
|
| 13 |
from configs.grounded import run as run_grounded
|
|
|
|
| 25 |
}
|
| 26 |
|
| 27 |
|
| 28 |
+
@traceable(name="evaluate_query")
|
| 29 |
def evaluate_query(query: str, source_filter: list[str] | None = None) -> dict:
|
| 30 |
results = {}
|
| 31 |
|