Update app.py
Browse files
app.py
CHANGED
|
@@ -11,6 +11,7 @@ from langchain.chains import RetrievalQA
|
|
| 11 |
from langchain.llms import OpenAI
|
| 12 |
from langchain.schema import Document
|
| 13 |
from langchain_core.retrievers import BaseRetriever
|
|
|
|
| 14 |
|
| 15 |
# --- CONFIG ---
|
| 16 |
DB_PATH = "json_vector.db"
|
|
@@ -146,17 +147,14 @@ def query_vector_db(user_query, top_k=5):
|
|
| 146 |
docs.append(Document(page_content=row[4], metadata=meta))
|
| 147 |
return docs
|
| 148 |
|
| 149 |
-
# --- LangChain Retriever (
|
| 150 |
-
from langchain_core.retrievers import BaseRetriever
|
| 151 |
-
|
| 152 |
class SQLiteVectorRetriever(BaseRetriever):
|
| 153 |
-
|
| 154 |
-
self.top_k = top_k
|
| 155 |
|
| 156 |
def _get_relevant_documents(self, query, run_manager=None, **kwargs):
|
| 157 |
return query_vector_db(query, self.top_k)
|
| 158 |
|
| 159 |
-
llm = OpenAI(model="gpt-
|
| 160 |
retriever = SQLiteVectorRetriever(top_k=5)
|
| 161 |
qa_chain = RetrievalQA.from_chain_type(
|
| 162 |
llm=llm,
|
|
|
|
| 11 |
from langchain.llms import OpenAI
|
| 12 |
from langchain.schema import Document
|
| 13 |
from langchain_core.retrievers import BaseRetriever
|
| 14 |
+
from pydantic import Field
|
| 15 |
|
| 16 |
# --- CONFIG ---
|
| 17 |
DB_PATH = "json_vector.db"
|
|
|
|
| 147 |
docs.append(Document(page_content=row[4], metadata=meta))
|
| 148 |
return docs
|
| 149 |
|
| 150 |
+
# --- LangChain Retriever (BaseRetriever subclass, Pydantic v2 compliant) ---
|
|
|
|
|
|
|
| 151 |
class SQLiteVectorRetriever(BaseRetriever):
|
| 152 |
+
top_k: int = Field(default=5)
|
|
|
|
| 153 |
|
| 154 |
def _get_relevant_documents(self, query, run_manager=None, **kwargs):
|
| 155 |
return query_vector_db(query, self.top_k)
|
| 156 |
|
| 157 |
+
llm = OpenAI(model="gpt-4o", openai_api_key=OPENAI_API_KEY, temperature=0)
|
| 158 |
retriever = SQLiteVectorRetriever(top_k=5)
|
| 159 |
qa_chain = RetrievalQA.from_chain_type(
|
| 160 |
llm=llm,
|