Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| import os | |
| from huggingface_hub import login | |
| from dotenv import load_dotenv | |
| from embedding import embeddings | |
| from db.chroma import load_and_setup_db, search_cases | |
| from chat.hermes_llm import ChatManager | |
| # Load environment variables | |
| load_dotenv() | |
| # Login to Hugging Face | |
| # login(token=os.getenv("HUGGINGFACEHUB_API_TOKEN"), add_to_git_credential=True) | |
| # Initialize components | |
| VECTOR_DB_PATH = os.getenv("VECTOR_DB_PATH") | |
| vector_store = load_and_setup_db(VECTOR_DB_PATH, embeddings) | |
| legal_chat = ChatManager(temperature=0.1) | |
| def process_query(query, chat_history): | |
| try: | |
| # Search relevant cases | |
| results = search_cases(vectorstore=vector_store, query=query, k=1) | |
| response=None | |
| if len(results)>0: | |
| # Get response from chat manager | |
| response = legal_chat.get_response(results[0]['content'], query=query) | |
| response_final = f"""{response}\n\nkilde:[case_id:{results[0]['metadata']['case_id']}]""" | |
| else : | |
| response_final =" Det ønskede ord blev ikke fundet i nogen sager. Prøv met et andet søgeord" | |
| # Update chat history | |
| chat_history.append((query, response_final)) | |
| return "", chat_history | |
| except Exception as e: | |
| return "", chat_history + [(query, f"Det ønskede ord blev ikke fundet i nogen sager. Prøv met et andet søgeord")] | |
| # Create Gradio interface | |
| with gr.Blocks(title="Jurai Insight") as demo: | |
| gr.Markdown("# Jurai Insight") | |
| gr.Markdown("Forudsig fremtiden, byg din sag på data.") | |
| chatbot = gr.Chatbot( | |
| [], | |
| elem_id="chatbot", | |
| bubble_full_width=False, | |
| height=400 | |
| ) | |
| with gr.Row(): | |
| query_input = gr.Textbox( | |
| placeholder="Indtast dit spørgsmål her...", | |
| show_label=False, | |
| scale=4 | |
| ) | |
| submit_btn = gr.Button("Sende", scale=1) | |
| # Set up event handlers | |
| submit_btn.click( | |
| process_query, | |
| inputs=[query_input, chatbot], | |
| outputs=[query_input, chatbot] | |
| ) | |
| query_input.submit( | |
| process_query, | |
| inputs=[query_input, chatbot], | |
| outputs=[query_input, chatbot] | |
| ) | |
| if __name__ == "__main__": | |
| demo.launch(share=True) |