JSAV commited on
Commit
76d3f64
1 Parent(s): d4143db

Upload 5 files

Browse files
ChatResponse.py ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import openai
2
+
3
+ openai.api_key = "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"
4
+
5
+ # ChatGPT completion
6
+ llm_name = "gpt-3.5-turbo"
7
+
8
+ def get_completion_from_messages(messages, model=llm_name, temperature=0):
9
+ response = openai.ChatCompletion.create(
10
+ model=model,
11
+ messages=messages,
12
+ temperature=temperature, # this is the degree of randomness of the model's output
13
+ )
14
+ return response.choices[0].message["content"]
15
+
16
+ def template(context):
17
+ text=f"""Responde a la entrada previa del usuario, usando el siguiente \
18
+ contexto delimitado con ###, si este contexto es útil para responder \
19
+ al usuario, si no, entonces omítelo:
20
+ ###{context}###
21
+ Si hay información solicitada por el usuario que no está en el contexto, \
22
+ dices que no la conoces, pero no inventas. Si el usuario está dando sus datos, \
23
+ omite el contexto. El hilo de la conversación es la prioridad.
24
+ No olvides escribir 'FIN DEL PEDIDO' **sólo** cuando el usuario confirme que ha terminado el pedido.
25
+ """
26
+ return text
SysPrompt.py ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ sysPrompt=[{'role':'system', 'content':"""Eres Vaping chatbot, el asistente de Vape Montería, empresa especializada en todo lo relacionado con el vapeo. Ofreces información y gestionas pedidos a domicilio. Eres gracioso pero preciso en tus respuestas. No hablas de cosas diferentes al vapeo y Vape Montería.
2
+ Cuando un usuario quiera realizar un pedido, pídele su nombre, teléfono y dirección. Una vez recojas esta información, siempre debes preguntar si ha terminado el pedido. Si el usuario confirma que ha terminado, debes responder con la frase “FIN DEL PEDIDO” en mayúsculas antes de continuar con cualquier otra información."""} ]
index_query.py ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from langchain.embeddings.openai import OpenAIEmbeddings
2
+ from langchain.chat_models import ChatOpenAI
3
+ from langchain.prompts import PromptTemplate
4
+ from langchain.vectorstores import FAISS
5
+ from langchain.chains import StuffDocumentsChain,LLMChain
6
+
7
+ import os
8
+ os.environ["LANGCHAIN_TRACING_V2"] = "true"
9
+ os.environ["LANGCHAIN_ENDPOINT"] = "https://api.smith.langchain.com"
10
+ os.environ["LANGCHAIN_API_KEY"] = "ls__8cf4dff71d9a43d48c24a318cf7fd97a"
11
+ os.environ["LANGCHAIN_PROJECT"] = "vaping-chatbot"
12
+
13
+
14
+ llm_name = "gpt-3.5-turbo"
15
+ key1= "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" # no $
16
+ key = "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"
17
+
18
+
19
+ llm=ChatOpenAI(model_name=llm_name, temperature=0,openai_api_key = key1)
20
+ # a purely formal prompt for formatting the docs
21
+ prompt = PromptTemplate.from_template("Summarize this content: {context}")
22
+ # a purely formal chain for later defining a stuff documents chain to format docs
23
+ llm_chain = LLMChain(llm=llm, prompt=prompt)
24
+ # define embedding
25
+ embeddings = OpenAIEmbeddings(openai_api_key = key)
26
+ # load vector database
27
+ db = FAISS.load_local("VapingChatbot/vaping_index",embeddings)
28
+ # define retriever, score_threshold is minimum required similarity (0 to 1)
29
+ #retriever = db.as_retriever(search_type="similarity_score_threshold", search_kwargs={"score_threshold":0.7})
30
+ retriever = db.as_retriever(search_type="similarity_score_threshold", search_kwargs={"k": 4,"score_threshold":0.6})
31
+ # create a stuff documents chain.
32
+ sd = StuffDocumentsChain(llm_chain=llm_chain)
33
+
34
+ # obtain relevant documents from db
35
+ def get_docs(query):
36
+ docs = retriever.get_relevant_documents(query)
37
+ return sd._get_inputs(docs)['context']
vaping_index/index.faiss ADDED
Binary file (805 kB). View file
 
vaping_index/index.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:22d2869fa422aa6ae64fa957c9fda6212be89de0e5ac70873e60178598374d90
3
+ size 34559