-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdatabase.py
40 lines (30 loc) · 1.09 KB
/
database.py
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
"""
Prompter
========
Module permettant de poser les questions
"""
import logging
import os
from dotenv import load_dotenv
from langchain.embeddings.openai import OpenAIEmbeddings
from langchain.vectorstores import Chroma
# Charge les variables d'environnement
load_dotenv()
# Configure le logger
logging.basicConfig(format='%(levelname)s: %(message)s',
encoding='utf-8', level=logging.INFO)
# Constantes de l'application
DATABASE_DIR = os.environ.get("DATABASE_DIR", "./database")
EMBEDDINGS_MODEL = os.environ.get("EMBEDDINGS_MODEL", "text-embedding-ada-002")
# Base de données vectorielle
DB = Chroma(embedding_function=OpenAIEmbeddings(model=EMBEDDINGS_MODEL),
persist_directory=DATABASE_DIR)
if __name__ == "__main__":
# print(DB.get())
search = input("Search input: ")
# Here we just print the 5 top results
documents = DB.as_retriever(search_type="similarity", search_kwargs={
'k': 5, 'fetch_k': 50
}).get_relevant_documents(search)
for doc in documents:
print(f"Doc: {doc.metadata['source']}, Page: {doc.metadata['page']}")