-
Notifications
You must be signed in to change notification settings - Fork 0
/
normal_chat.py
53 lines (40 loc) · 1.58 KB
/
normal_chat.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
41
42
43
44
45
46
47
48
49
50
51
52
53
from langchain_community.chat_models import ChatOllama
from langchain.chains import ConversationChain
from langchain.memory import ConversationBufferMemory
from langchain.prompts.prompt import PromptTemplate
llm = ChatOllama(model="llama2")
# ---------------------------------------------------------------------------------------------------------------------------------------
# Template using jinja2 syntax
template_normal = """
<s>[INST] <<SYS>>
The following is a friendly conversation between a human and AI.
The AI is talkative and provides lots of specific details from its context.
If the AI knows the answer give Answer directly without any infromation about himself.
If the AI does not know the exact answer to a question, it truthfully says it does not know, otherwise give the answers.
Please be concise.
<</SYS>>
Current conversation:
{{ history }}
{% if history %}
<s>[INST] Human: {{ input }} [/INST] Lucia: </s>
{% else %}
Human: {{ input }} [/INST] Lucia: </s>
{% endif %}
"""
prompt_normal = PromptTemplate(
input_variables = ["history", "input"],
template=template_normal,
template_format = "jinja2"
)
# initialize the buffer memory
conversation_normal= ConversationChain(
llm = llm,
memory = ConversationBufferMemory(),
prompt = prompt_normal,
verbose = False
)
# Start the conversation
def predict_normal(message: str, history: str):
response = conversation_normal.predict(input=message)
return response
# ---------------------------------------------------------------------------------------------------------------------------------------