-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest_chatbot.py
62 lines (55 loc) · 3.32 KB
/
test_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
from chatbot import get_citation_chain, get_structured_chain
from utils import get_question_uuid
import logging
import sys
questions = [
# Testes de recomendações gerais
"Qual docente é mais indicado para colaborar em um projeto de desenvolvimento de sistemas de processamento de imagens?",
# Testes para consultas de artigos
"Me forneça uma lista de artigos publicados nos últimos cinco anos sobre aprendizado de máquina.",
"Quais são os principais artigos publicados pelo docente Eraldo Pereira Marinho?",
"Quem trabalha com Markov Random Fields?",
# Teste para consulta de docentes
"Quem é o professor Edson Denis Leonel?",
"O que o professor Frank Jose Affonso faz?",
"Me faça um resumo do currículo do docente Denis Salvadeo",
"Liste os projetos recentes desenvolvidos pelo docente Daniel Pedronette",
"Quais docentes têm experiência em colaborações internacionais na área de biotecnologia?",
"Me explique a área de pesquisa do professor Ivan Rizzo como se eu fosse um aluno de ensino médio",
# Testes para cenários complexos
"Quero desenvolver um dispositivo vestível para monitorar pacientes com doenças crônicas. Quais especialistas podem me ajudar?",
"Minha empresa está desenvolvendo um produto que utiliza inteligência artificial e os dados adquiridos por uma rede de sensores espalhados em uma plantação para determinar quanto e quais os melhores procedimentos a serem feitos na lavoura. Existem docentes que possam me ajudar?",
"Crie uma nuvem de termos do currículo do professor Denis Salvadeo. Adicione um peso para cada termo, sendo que o peso maior significa maior produção naquela área",
# Testes de navegação por dados
"Encontre especialistas que tenham mais de 5 artigos indexados no Web of Science",
"Me forneça os docentes e seus trabalhos apresentados no SIBGRAPI",
"Quem publicou na revista Journal of Medical Science?",
# Testes de Respostas com Falta de Informações Diretas
'Sugira docentes para um projeto envolvendo "design generativo".',
# Testes para Consultas Irregulares ou Ambíguas
'Me indique um professor que trabalhe com "coisas avançadas de IA".',
"Estou buscando alguém que trabalhe com projetos “bem tecnológicos e modernos”.",
]
K = 50
get_structured_answer = get_structured_chain(K)
get_citation_answer = get_citation_chain(K)
logger = logging.getLogger(__name__)
def main():
file_handler = logging.FileHandler(filename="data/questions/test.log")
output_handler = logging.StreamHandler(stream=sys.stdout)
logging.basicConfig(
handlers=[file_handler, output_handler],
format="%(asctime)s - %(name)s - %(levelname)s - %(message)s",
level=logging.INFO,
)
for question_num, question in enumerate(questions):
question_id, question_dir = get_question_uuid()
logger.info(f"{question_num} - {question_id}: {question}")
logger.info(f"Starded {get_structured_answer.__repr__()}")
get_structured_answer(question, question_id, question_dir)
logger.info(f"Ended {get_structured_answer.__repr__()}")
logger.info(f"Starded {get_citation_answer.__repr__()}")
get_citation_answer(question, question_id, question_dir)
logger.info(f"Ended {get_citation_answer.__repr__()}")
if __name__ == "__main__":
main()