Spaces:
Paused
Paused
| import gradio as gr | |
| from dotenv import load_dotenv | |
| from api.config import Config | |
| from api.logger import logger | |
| from api.question_answering import QAModel | |
| import time | |
| load_dotenv(dotenv_path='config/api/.env') | |
| config = Config() | |
| model = QAModel( | |
| llm_model_id=config.question_answering_model_id, | |
| embedding_model_id=config.embedding_model_id, | |
| index_repo_id=config.index_repo_id, | |
| prompt_template=config.prompt_template, | |
| use_docs_for_context=config.use_docs_for_context, | |
| add_sources_to_response=config.add_sources_to_response, | |
| use_messages_for_context=config.use_messages_in_context, | |
| debug=config.debug | |
| ) | |
| QUESTIONS_FILENAME = 'data/benchmark/questions.json' | |
| ANSWERS_FILENAME = 'data/benchmark/answers.json' | |
| def main(): | |
| benchmark_name = \ | |
| f'model: {config.question_answering_model_id}' \ | |
| f'index: {config.index_repo_id}' | |
| wandb.init( | |
| project='HF-Docs-QA', | |
| name=f'model: {config.question_answering_model_id}', | |
| mode='run', # run/disabled | |
| config=config.asdict() | |
| ) | |
| # log config to wandb | |
| with open(QUESTIONS_FILENAME, 'r') as f: # json | |
| questions = f.readlines() | |
| with open(ANSWERS_FILENAME, 'w') as f: | |
| for q in questions: | |
| question = q['question'] | |
| messages_contex = q['messages_context'] | |
| t_start = time.perf_counter() | |
| response = model.get_response( | |
| question=question, | |
| messages_context=messages_context | |
| ) | |
| t_end = time.perf_counter() | |
| # write to json | |
| { | |
| "answer": response.get_answer(), | |
| "sources": response.get_sources_as_text(), | |
| 'time': t_end - t_start | |
| } | |
| if __name__ == '__main__': | |
| main() | |