File size: 2,661 Bytes
f28182b
 
 
 
 
 
 
 
 
d5f8b4a
f28182b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
d704cac
f28182b
 
 
 
 
50979c9
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
from langchain_community.document_loaders import TextLoader
from langchain.text_splitter import RecursiveCharacterTextSplitter
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 unidecode import unidecode
import tqdm
from langchain_community.vectorstores import FAISS
import accelerate

def load_doc(file_path):
    loader = TextLoader(file_path)
    pages = loader.load()
    text_splitter = RecursiveCharacterTextSplitter(chunk_size = 1212, chunk_overlap = 0)
    doc_splits = text_splitter.split_documents(pages)
    return doc_splits

splt = load_doc('intents_v2.txt')



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 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:
"""

        # 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),
        )