File size: 1,164 Bytes
1d89d60
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import os
from langchain_huggingface import HuggingFaceEmbeddings
from langchain_community.vectorstores import SupabaseVectorStore
from langchain.tools.retriever import create_retriever_tool
from supabase.client import Client, create_client
from langchain_core.documents import Document
from dotenv import load_dotenv

load_dotenv()

embeddings = HuggingFaceEmbeddings(model_name="sentence-transformers/all-mpnet-base-v2")

supabase_client: Client = create_client(
    supabase_url=os.getenv("supabase_url"), supabase_key=os.getenv("supabase_key")
)

vector_db = SupabaseVectorStore(
    client=supabase_client,
    embedding=embeddings,
    table_name="history",
    query_name="get_recent_question",
)


retriever_tool = create_retriever_tool(
    retriever=vector_db.as_retriever(),
    name="Question Search",
    description=(
        "A tool that retrieves similar questions and answers from a vector database. "
        "Use this to find contextually relevant information based on user queries."
    ),
)


def add_recent_question(content: str) -> str:
    vector_db.add_documents([Document(page_content=content)])
    return "Question added successfully."