Spaces:
Running
Running
File size: 4,302 Bytes
71e2c65 1112e46 0ed4471 1112e46 95bfa0d e8e78ae 5a44b64 9a8353d a46269a 411adbd 61bb151 5fed436 9a8353d 59284b1 4c66f77 1112e46 9a8353d a46269a 411adbd 9a8353d 4c66f77 71e2c65 95bfa0d 9a8353d 95bfa0d 9a8353d 0ed4471 1432cc9 a46269a 1432cc9 a46269a 1432cc9 411adbd 1432cc9 0ed4471 411adbd 0ed4471 5633e27 61bb151 1432cc9 0ed4471 9a8353d 1432cc9 0ed4471 1432cc9 61bb151 1432cc9 5fed436 1432cc9 5633e27 0ed4471 5fed436 1432cc9 5633e27 1432cc9 5633e27 95bfa0d 1432cc9 5633e27 71e2c65 0ed4471 1432cc9 0ed4471 71e2c65 1432cc9 |
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 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 |
import gradio as gr
import os
import time
from loaddataset import ExtractRagBenchData
from createmilvusschema import CreateMilvusDbSchema
from insertmilvushelper import EmbedAllDocumentsAndInsert
from sentence_transformers import SentenceTransformer
from searchmilvushelper import SearchTopKDocuments
from finetuneresults import FineTuneAndRerankSearchResults
from generationhelper import GenerateAnswer
from formatresultshelper import FormatAndScores
from calculatescores import CalculateScores
from huggingface_hub import login
from huggingface_hub import whoami
from huggingface_hub import dataset_info
# Load embedding model
QUERY_EMBEDDING_MODEL = SentenceTransformer('all-MiniLM-L6-v2')
RERANKING_MODEL = "cross-encoder/ms-marco-MiniLM-L-6-v2"
PROMPT_MODEL = "llama-3.3-70b-specdec"
EVAL_MODEL = "llama-3.3-70b-specdec"
WINDOW_SIZE = 5
OVERLAP = 2
RETRIVE_TOP_K_SIZE=10
hf_token = os.getenv("HF_TOKEN")
login(hf_token)
rag_extracted_data = ExtractRagBenchData()
print(rag_extracted_data.head(5))
"""
EmbedAllDocumentsAndInsert(QUERY_EMBEDDING_MODEL, rag_extracted_data, db_collection, window_size=WINDOW_SIZE, overlap=OVERLAP)
"""
def EvaluateRAGModel(question, evaluation_model):
start_time = time.time()
query = question.strip()
#invoke create milvus db function
try:
db_collection = CreateMilvusDbSchema()
except Exception as e:
print(f"Error creating Milvus DB schema: {e}")
#insert embdeding to milvus db
#query = "what would the net revenue have been in 2015 if there wasn't a stipulated settlement from the business combination in october 2015?"
results_for_top10_chunks = SearchTopKDocuments(db_collection, query, QUERY_EMBEDDING_MODEL, top_k=RETRIVE_TOP_K_SIZE)
reranked_results = FineTuneAndRerankSearchResults(results_for_top10_chunks, rag_extracted_data, query, RERANKING_MODEL)
answer = GenerateAnswer(query, reranked_results.head(3), PROMPT_MODEL)
completion_result,relevant_sentence_keys,all_utilized_sentence_keys,support_keys,support_level = FormatAndScores(query, reranked_results.head(1), answer, EVAL_MODEL)
print(relevant_sentence_keys)
print(all_utilized_sentence_keys)
print(support_keys)
print(support_level)
print(completion_result)
document_id = reranked_results.head(1)['doc_id'].values[0]
extarcted_row_for_given_id = rag_extracted_data[rag_extracted_data["id"]==document_id]
rmsecontextrel, rmsecontextutil, aucscore = CalculateScores(relevant_sentence_keys,all_utilized_sentence_keys,support_keys,support_level,extarcted_row_for_given_id)
print(rmsecontextrel)
print(rmsecontextutil)
print(aucscore)
end_time = time.time()
execution_time = end_time - start_time
return answer, rmsecontextrel, rmsecontextutil, aucscore, execution_time
# Create Gradio UI
with gr.Blocks() as iface:
gr.Markdown("## Capstone Project Group 10 ")
with gr.Row():
question_input = gr.Textbox(label="Enter your Question", lines=2)
dropdown_input = gr.Dropdown(
["LLaMA 3.3", "Mistral 7B"],
value="LLaMA 3.3",
label="Select a Model"
)
submit_button = gr.Button("Evaluate Model")
with gr.Row():
with gr.Column():
gr.Markdown("### Response")
response = gr.Textbox(interactive=False, show_label=False, lines=4)
with gr.Row():
with gr.Column():
gr.Markdown("### RMSE-CONTEXT RELEVANCE")
rmsecontextrel = gr.Textbox(interactive=False, show_label=False, lines=2)
with gr.Column():
gr.Markdown("### RMSE-CONTEXT UTILIZATION")
rmsecontextutil = gr.Textbox(interactive=False, show_label=False, lines=2)
with gr.Column():
gr.Markdown("### AUCROC ADHERENCE")
aucscore = gr.Textbox(interactive=False, show_label=False, lines=2)
with gr.Column():
gr.Markdown("### PROCESSING TIME")
processingTime = gr.Textbox(interactive=False, show_label=False, lines=2)
# Connect submit button to evaluation function
submit_button.click(EvaluateRAGModel, inputs=[question_input, dropdown_input], outputs=[response, rmsecontextrel, rmsecontextutil, aucscore, processingTime])
# Run the Gradio app
iface.launch() |