| from langchain_google_genai import GoogleGenerativeAIEmbeddings | |
| from dotenv import load_dotenv | |
| from langchain_postgres import PGVector | |
| from langchain_core.documents import Document | |
| import os | |
| import json | |
| load_dotenv() | |
| class Embed: | |
| def __init__(self): | |
| API = os.getenv("API_KEY") | |
| self.embeddings = GoogleGenerativeAIEmbeddings(google_api_key = API, | |
| model="models/text-embedding-004") | |
| def create_db(self,String,Name): | |
| self.db = PGVector(self.embeddings,connection = String,collection_name = Name,use_jsonb = True) | |
| def create_document(self,n,resume): | |
| json_res = json.loads(resume) | |
| return Document( | |
| page_content = f"{resume}", | |
| metadata = {"id": n, "name": json_res["name"] , "email": json_res["email"]} | |
| ) | |
| def add_docs(self,documents): | |
| self.db.add_documents(documents=documents) | |
| def match(self,skills,select): | |
| result = self.db.similarity_search(skills,k = select) | |
| return result | |