File size: 1,082 Bytes
c69cba4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import uvicorn
from fastapi import FastAPI

from qa_engine import logger, Config, QAEngine


config = Config()
app = FastAPI()
qa_engine = QAEngine(
    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,
    num_relevant_docs=config.num_relevant_docs,
    add_sources_to_response=config.add_sources_to_response,
    use_messages_for_context=config.use_messages_in_context,
    debug=config.debug
)


@app.get('/')
def get_answer(question: str, messages_context: str = ''):
    logger.info(
        f'Received request with question: {question}' \
        f'and context: {messages_context}'
    )
    response = qa_engine.get_response(
        question=question,
        messages_context=messages_context
    )
    return {
        'answer': response.get_answer(),
        'sources': response.get_sources_as_text()
    }


if __name__ == '__main__':
    uvicorn.run(app, host='0.0.0.0', port=8000)