File size: 3,024 Bytes
f28182b
267b2e4
f28182b
 
db101f6
f28182b
 
a9899cb
f28182b
 
d5f8b4a
db101f6
f28182b
 
a7c6c77
267b2e4
a7c6c77
 
 
 
267b2e4
a7c6c77
267b2e4
a7c6c77
 
 
 
 
 
f28182b
 
 
 
 
d704cac
f28182b
4f18e4f
f28182b
 
a7c6c77
 
 
 
 
f28182b
a7c6c77
f28182b
 
 
 
3b929bd
f28182b
 
 
 
 
 
 
 
 
 
 
 
3b929bd
a9899cb
f28182b
a9899cb
 
 
 
 
f28182b
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
from langchain_community.document_loaders import TextLoader
from langchain.text_splitter import RecursiveCharacterTextSplitter, CharacterTextSplitter
from langchain.chains import ConversationalRetrievalChain
from langchain_community.embeddings import HuggingFaceEmbeddings
# from langchain_community.llms import HuggingFaceEndpoint
from langchain.prompts.prompt import PromptTemplate
from pathlib import Path
from langchain_core.output_parsers import StrOutputParser
from unidecode import unidecode
import tqdm
from langchain_community.vectorstores import FAISS
from langchain_huggingface import HuggingFaceEndpoint
import accelerate

# c_splitter = CharacterTextSplitter(
    
#     chunk_size = 350,
#     chunk_overlap = 4,
#     separator = """,
#       ]""",

# )

# def load_doc(file_path):
#     loader = TextLoader(file_path)
#     pages = loader.load()
#     text_splitter = c_splitter
#     doc_splits = text_splitter.split_documents(pages)
#     return doc_splits



llm = HuggingFaceEndpoint(
            repo_id='mistralai/Mixtral-8x7B-Instruct-v0.1',
            temperature = 0.17,
            max_new_tokens = 512,
            top_k = 30
        )

# def process_data():
#   splt = load_doc('intents_v2.txt')
#   embeddings = HuggingFaceEmbeddings(model_name="sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2")
#   db = FAISS.from_documents(splt, embeddings)
#   return db

# db = process_data()


prompt = """Vous êtes un formateur de modèles GPT. Vous excellez dans l'affinement des modèles GPT, la lecture et l'analyse de documents ainsi que l'association de balises aux entrées utilisateur appropriées.

Mon contexte consiste en un document {document} structuré comportant des balises et leurs réponses associées respectivement, servant de référence pour former un modèle GPT capable de produire des réponses pertinentes en fonction des entrées utilisateur.

Votre tâche consiste à former un modèle GPT pour associer les entrées utilisateur aux balises adéquates et renvoyer les réponses correspondantes figurant dans le document de référence.

Les étapes à suivre sont les suivantes : analyser le document et ses balises, entraîner le modèle GPT avec les exemples fournis, mapper les entrées utilisateur aux balises correspondantes et générer les réponses associées.

Les caractéristiques du résultat attendu consistent en des réponses cohérentes et exactement adaptées aux balises fournies dans le document de référence.

Si tout va bien, allez-y.
        Human: {input}
        AI Assistant:
"""

prompt_2 = PromptTemplate(input_variables=['input', 'document'], template = prompt)
conversation_chain = prompt_2 | llm | StrOutputParser()
        # Set up a conversational chain to retrieve and generate responses.
# conversation_chain = ConversationalRetrievalChain.from_llm(
#             llm=llm,
#             retriever=db.as_retriever(),
#             condense_question_prompt=PromptTemplate(input_variables=['input'], template=prompt),
#         )