-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathchatbot.py
65 lines (59 loc) · 2 KB
/
chatbot.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
54
55
56
57
58
59
60
61
62
63
64
65
import ai21
ai21.api_key = 'SUA CHAVE SECRETA'
contexto = """Um assistente virtual que sabe de tudo. Tudo que o usuario pede o assistente responde.
usuario: conte uma curiosidade
assistente: A cada minuto, cerca de 72 horas de conteúdo são enviadas ao site de vídeos Youtube.
usuario: me conte uma curiosidade
assistente: Estima-se que, a cada ano, o monte Everest cresça 4 milímetros.
"""
def executar(prompt):
resposta = ai21.Completion.execute(
model="j2-mid",
prompt=prompt,
numResults=1,
maxTokens=200,
temperature=0.5,
topKReturn=0,
topP=0.9,
countPenalty={
"scale": 0,
"applyToNumbers": False,
"applyToPunctuations": False,
"applyToStopwords": False,
"applyToWhitespaces": False,
"applyToEmojis": False
},
frequencyPenalty={
"scale": 0,
"applyToNumbers": False,
"applyToPunctuations": False,
"applyToStopwords": False,
"applyToWhitespaces": False,
"applyToEmojis": False
},
presencePenalty={
"scale": 0,
"applyToNumbers": False,
"applyToPunctuations": False,
"applyToStopwords": False,
"applyToWhitespaces": False,
"applyToEmojis": False
},
stopSequences=["\n"],
)
return resposta['completions'][0]['data']['text']
if __name__ == '__main__':
print('=' * 80)
try:
conversa = open('conversa.txt', 'r', encoding='utf-8').read()
print(conversa)
except FileNotFoundError:
conversa = ''
while True:
prompt = input('usuario: ').strip()
conversa += 'usuario: '+prompt+'\n'
prompt_completo = contexto+conversa+'assistente:'
resposta = executar(prompt_completo).strip()
conversa += 'assistente: '+resposta+'\n'
print('assistente: '+resposta)
open('conversa.txt', 'w', encoding='utf-8').write(conversa)