feat: make a build examples db script
This commit is contained in:
parent
1fc1f81f3a
commit
5c5581e271
48
rag_build_db_examples.py
Normal file
48
rag_build_db_examples.py
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
# Set env var OPENAI_API_KEY or load from a .env file
|
||||||
|
from langchain.embeddings import OpenAIEmbeddings
|
||||||
|
from langchain.vectorstores.chroma import Chroma
|
||||||
|
|
||||||
|
__import__('pysqlite3')
|
||||||
|
import sys
|
||||||
|
|
||||||
|
sys.modules['sqlite3'] = sys.modules.pop('pysqlite3')
|
||||||
|
import dotenv
|
||||||
|
|
||||||
|
dotenv.load_dotenv()
|
||||||
|
|
||||||
|
# Load documents
|
||||||
|
|
||||||
|
# from langchain.document_loaders import WebBaseLoader
|
||||||
|
# loader = WebBaseLoader("https://lilianweng.github.io/posts/2023-06-23-agent/")
|
||||||
|
import os
|
||||||
|
|
||||||
|
examples = [
|
||||||
|
{
|
||||||
|
"input": "Donne moi une information.",
|
||||||
|
"output": "Désolé je n'ai pas assez d'information pour vous aider. Merci de fournir le type de contrat et de travail que vous occupez.",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"input": "Mon patron est méchant avec moi.",
|
||||||
|
"output": "Désolé je n'ai pas assez d'information pour vous aider. Merci de fournir le type de contrat et de travail que vous occupez.",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"input": "Quelle est la couleur du cheval blanc d'Henry IV ?",
|
||||||
|
"output": "Désolé mon rôle est de fournir des informations sur le droit du travail et votre question ne semble pas être sur ce sujet.",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"input": "Est-ce que Mon patron a le droit de m'interdire de me syndiquer",
|
||||||
|
"output": "Non, votre patron n'a pas le droit de vous interdire de vous syndiquer. L'article L2141-7 du Livre Ier, Chapitre Ier, Titre IV du Code du travail stipule qu'il est interdit à l'employeur d'employer un moyen quelconque de pression en faveur ou à l'encontre d'une organisation syndicale.",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"input": "A combien de jours de formation ai-je droit dans l'année ?",
|
||||||
|
"output": "Les informations fournies ne sont pas suffisantes pour répondre, car les droits à la formation peuvent différer selon les catégories de travailleurs."
|
||||||
|
},
|
||||||
|
]
|
||||||
|
to_vectorize = [" ".join(example.values()) for example in examples]
|
||||||
|
embeddings = OpenAIEmbeddings()
|
||||||
|
examples_vectorstore = Chroma.from_texts(
|
||||||
|
to_vectorize,
|
||||||
|
embeddings,
|
||||||
|
metadatas=examples,
|
||||||
|
persist_directory="./chroma_db_examples.1.0",)
|
||||||
|
|
@ -39,41 +39,7 @@ Answer:
|
|||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
|
||||||
from langchain.prompts import (
|
|
||||||
ChatPromptTemplate,
|
|
||||||
FewShotChatMessagePromptTemplate,
|
|
||||||
)
|
|
||||||
|
|
||||||
#
|
|
||||||
examples = [
|
|
||||||
{
|
|
||||||
"input": "Donne moi une information.",
|
|
||||||
"output": "Désolé je n'ai pas assez d'information pour vous aider. Merci de fournir le type de contrat et de travail que vous occupez.",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"input": "Mon patron est méchant avec moi.",
|
|
||||||
"output": "Désolé je n'ai pas assez d'information pour vous aider. Merci de fournir le type de contrat et de travail que vous occupez.",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"input": "Quelle est la couleur du cheval blanc d'Henry IV ?",
|
|
||||||
"output": "Désolé mon rôle est de fournir des informations sur le droit du travail et votre question ne semble pas être sur ce sujet.",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"input": "Est-ce que Mon patron a le droit de m'interdire de me syndiquer",
|
|
||||||
"output": "Non, votre patron n'a pas le droit de vous interdire de vous syndiquer. L'article L2141-7 du Livre Ier, Chapitre Ier, Titre IV du Code du travail stipule qu'il est interdit à l'employeur d'employer un moyen quelconque de pression en faveur ou à l'encontre d'une organisation syndicale.",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"input": "A combien de jours de formation ai-je droit dans l'année ?",
|
|
||||||
"output": "Les informations fournies ne sont pas suffisantes pour répondre, car les droits à la formation peuvent différer selon les catégories de travailleurs."
|
|
||||||
},
|
|
||||||
]
|
|
||||||
to_vectorize = [" ".join(example.values()) for example in examples]
|
|
||||||
embeddings = OpenAIEmbeddings()
|
embeddings = OpenAIEmbeddings()
|
||||||
# examples_vectorstore = Chroma.from_texts(
|
|
||||||
# to_vectorize,
|
|
||||||
# embeddings,
|
|
||||||
# metadatas=examples,
|
|
||||||
# persist_directory="./chroma_db_examples.1.0",)
|
|
||||||
|
|
||||||
examples_vectorstore = Chroma(persist_directory="./chroma_db_examples.1.0", embedding_function=OpenAIEmbeddings())
|
examples_vectorstore = Chroma(persist_directory="./chroma_db_examples.1.0", embedding_function=OpenAIEmbeddings())
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user