-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathquery.py
More file actions
45 lines (32 loc) · 1.07 KB
/
query.py
File metadata and controls
45 lines (32 loc) · 1.07 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# Query Data #
# Import Packages
from langchain_openai import OpenAIEmbeddings
from langchain_community.vectorstores import MongoDBAtlasVectorSearch
from langchain_community.llms import OpenAI
from langchain.chains import RetrievalQA
from mongo import collection
import env as e
# Variables
model = "gpt-4o-mini"
# Get Env Variables
openai_api_key = e.openai_api_key # OpenAI API Key
# Embeddings
embeddings = OpenAIEmbeddings(openai_api_key=openai_api_key)
# Vector Store
vectorStore = MongoDBAtlasVectorSearch(collection, embeddings)
# Query Data Function
def query_data(query):
# Similarity Search For Query
docs = vectorStore.similarity_search(query, k=1)
# First Doc Page Content
data = docs[0].page_content
# OpenAI LLM Instance
llm = OpenAI(api_key=openai_api_key, temperature=0)
# Retriever Instance
retriever = vectorStore.as_retriever()
# QA Chain Instance
qa = RetrievalQA.from_chain_type(llm, chain_type="stuff", retriever=retriever)
# LLM Answer
answer = qa.run(query)
# Return Data and Answer
return data, answer