notes-search-rag / Model.py
NikhilTharlada27's picture
debug upload
575fcf3
Raw
History Blame Contribute Delete
1.48 kB
from dotenv import load_dotenv
from augmented import load_db, embedding_model
import os
from openai import OpenAI
load_dotenv()
class OpenRouterLLM:
def __init__(self):
self.client = OpenAI(
base_url="https://openrouter.ai/api/v1",
api_key=os.getenv("OPENROUTER_API_KEY"),
)
self.model = os.getenv("LLM_MODEL")
if not self.model:
raise ValueError("LLM_MODEL not set in .env")
def invoke(self, prompt: str):
response = self.client.chat.completions.create(
model=self.model,
messages=[{"role": "user", "content": prompt}],
)
# mimic LangChain response object
class Response:
def __init__(self, content):
self.content = content
return Response(response.choices[0].message.content)
llm=OpenRouterLLM()
def model(question):
os.makedirs("data", exist_ok=True)
if len(os.listdir("data/")) == 0:
return "No Data Was Found and Please upload the data"
else:
db = load_db()
query_embed = embedding_model.embed_query(question)
result=db.similarity_search_by_vector(embedding=query_embed,k=3)
context = "\n\n".join([doc.page_content for doc in result])
prompt = f"""
Answer the question using only the context below:
{context}
Question: {question}
"""
response=llm.invoke(prompt)
return response