Spaces:
Paused
Paused
deploy 5
Browse files- api/__main__.py +1 -1
- api/question_answering/qa_model.py +9 -7
- app.py +3 -3
- config/.DS_Store +0 -0
- requirements.txt +2 -0
api/__main__.py
CHANGED
|
@@ -26,7 +26,7 @@ def get_answer(question: str, messgages_context: str):
|
|
| 26 |
f"Received request with question: {question}" \
|
| 27 |
f"and context: {messgages_context}"
|
| 28 |
)
|
| 29 |
-
response = qa_model.
|
| 30 |
question=question,
|
| 31 |
messages_context=messgages_context
|
| 32 |
)
|
|
|
|
| 26 |
f"Received request with question: {question}" \
|
| 27 |
f"and context: {messgages_context}"
|
| 28 |
)
|
| 29 |
+
response = qa_model.get_response(
|
| 30 |
question=question,
|
| 31 |
messages_context=messgages_context
|
| 32 |
)
|
api/question_answering/qa_model.py
CHANGED
|
@@ -17,13 +17,15 @@ from langchain.vectorstores import FAISS
|
|
| 17 |
from api.logger import logger
|
| 18 |
from api.question_answering.response import Response
|
| 19 |
|
| 20 |
-
|
| 21 |
class LocalBinaryModel(LLM):
|
| 22 |
model_id: str = None
|
| 23 |
-
llm:
|
| 24 |
|
| 25 |
def __init__(self, model_id: str = None):
|
| 26 |
super().__init__()
|
|
|
|
|
|
|
| 27 |
model_path = f'api/question_answering/{model_id}'
|
| 28 |
if not os.path.exists(model_path):
|
| 29 |
raise ValueError(f'{model_path} does not exist')
|
|
@@ -48,7 +50,7 @@ class LocalBinaryModel(LLM):
|
|
| 48 |
@property
|
| 49 |
def _llm_type(self) -> str:
|
| 50 |
return self.model_id
|
| 51 |
-
|
| 52 |
|
| 53 |
class TransformersPipelineModel(LLM):
|
| 54 |
model_id: str = None
|
|
@@ -169,9 +171,9 @@ class QAModel():
|
|
| 169 |
|
| 170 |
if 'local_models/' in llm_model_id:
|
| 171 |
logger.info('using local binary model')
|
| 172 |
-
|
| 173 |
-
|
| 174 |
-
|
| 175 |
elif 'api_models/' in llm_model_id:
|
| 176 |
logger.info('using api served model')
|
| 177 |
self.llm_model = APIServedModel(
|
|
@@ -216,7 +218,7 @@ class QAModel():
|
|
| 216 |
self.knowledge_index = FAISS.load_local(f"./indexes/run/", embedding_model)
|
| 217 |
|
| 218 |
|
| 219 |
-
def
|
| 220 |
"""
|
| 221 |
Generate an answer to the specified question.
|
| 222 |
|
|
|
|
| 17 |
from api.logger import logger
|
| 18 |
from api.question_answering.response import Response
|
| 19 |
|
| 20 |
+
|
| 21 |
class LocalBinaryModel(LLM):
|
| 22 |
model_id: str = None
|
| 23 |
+
llm: None = None
|
| 24 |
|
| 25 |
def __init__(self, model_id: str = None):
|
| 26 |
super().__init__()
|
| 27 |
+
from llama_cpp import Llama
|
| 28 |
+
|
| 29 |
model_path = f'api/question_answering/{model_id}'
|
| 30 |
if not os.path.exists(model_path):
|
| 31 |
raise ValueError(f'{model_path} does not exist')
|
|
|
|
| 50 |
@property
|
| 51 |
def _llm_type(self) -> str:
|
| 52 |
return self.model_id
|
| 53 |
+
|
| 54 |
|
| 55 |
class TransformersPipelineModel(LLM):
|
| 56 |
model_id: str = None
|
|
|
|
| 171 |
|
| 172 |
if 'local_models/' in llm_model_id:
|
| 173 |
logger.info('using local binary model')
|
| 174 |
+
self.llm_model = LocalBinaryModel(
|
| 175 |
+
model_id=llm_model_id
|
| 176 |
+
)
|
| 177 |
elif 'api_models/' in llm_model_id:
|
| 178 |
logger.info('using api served model')
|
| 179 |
self.llm_model = APIServedModel(
|
|
|
|
| 218 |
self.knowledge_index = FAISS.load_local(f"./indexes/run/", embedding_model)
|
| 219 |
|
| 220 |
|
| 221 |
+
def get_response(self, question: str, messages_context: str = '') -> Response:
|
| 222 |
"""
|
| 223 |
Generate an answer to the specified question.
|
| 224 |
|
app.py
CHANGED
|
@@ -23,11 +23,11 @@ with gr.Blocks() as demo:
|
|
| 23 |
def respond(message, chat_history):
|
| 24 |
context = "".join(f"User: {msg} \nBot:{bot_msg}\n" for msg, bot_msg in chat_history)
|
| 25 |
logger.info(f"Context: {context}")
|
| 26 |
-
|
| 27 |
-
bot_message =
|
| 28 |
chat_history.append((message, bot_message))
|
| 29 |
return "", chat_history
|
| 30 |
|
| 31 |
msg.submit(respond, [msg, chatbot], [msg, chatbot])
|
| 32 |
|
| 33 |
-
demo.launch(share=
|
|
|
|
| 23 |
def respond(message, chat_history):
|
| 24 |
context = "".join(f"User: {msg} \nBot:{bot_msg}\n" for msg, bot_msg in chat_history)
|
| 25 |
logger.info(f"Context: {context}")
|
| 26 |
+
response = model.get_response(message, context)
|
| 27 |
+
bot_message = response.get_answer() + response.get_sources_as_text() + "\n"
|
| 28 |
chat_history.append((message, bot_message))
|
| 29 |
return "", chat_history
|
| 30 |
|
| 31 |
msg.submit(respond, [msg, chatbot], [msg, chatbot])
|
| 32 |
|
| 33 |
+
demo.launch(share=True, debug=True)
|
config/.DS_Store
DELETED
|
Binary file (6.15 kB)
|
|
|
requirements.txt
CHANGED
|
@@ -2,11 +2,13 @@ transformers
|
|
| 2 |
accelerate
|
| 3 |
einops
|
| 4 |
huggingface_hub
|
|
|
|
| 5 |
beautifulsoup4==4.12.0
|
| 6 |
discord.py==2.2.2
|
| 7 |
evaluate==0.4.0
|
| 8 |
fastapi==0.98.0
|
| 9 |
langchain==0.0.154
|
|
|
|
| 10 |
nltk==3.8.1
|
| 11 |
nbconvert==7.6.0
|
| 12 |
nbformat==5.9.0
|
|
|
|
| 2 |
accelerate
|
| 3 |
einops
|
| 4 |
huggingface_hub
|
| 5 |
+
gradio
|
| 6 |
beautifulsoup4==4.12.0
|
| 7 |
discord.py==2.2.2
|
| 8 |
evaluate==0.4.0
|
| 9 |
fastapi==0.98.0
|
| 10 |
langchain==0.0.154
|
| 11 |
+
llama_cpp_python==0.1.39
|
| 12 |
nltk==3.8.1
|
| 13 |
nbconvert==7.6.0
|
| 14 |
nbformat==5.9.0
|