Spaces:
Running
Running
File size: 1,391 Bytes
1710972 |
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 |
import streamlit as st
import faiss
import numpy as np
from sentence_transformers import SentenceTransformer
import openai
# Load FAISS index
index = faiss.read_index("faiss_index.bin")
# Load embedding model
model = SentenceTransformer("all-MiniLM-L6-v2")
# OpenAI API Key (store it as a secret in Hugging Face)
openai.api_key = st.secrets["GROQ_API_KEY"]
# Load the preprocessed Pile Law dataset (replace with your dataset path)
law_data = ["Sample Legal Document 1...", "Sample Legal Document 2..."] # Replace with actual data loading
# Function to search relevant legal documents
def search_legal_docs(query, top_k=5):
query_embedding = model.encode([query])
_, idxs = index.search(query_embedding, top_k)
return [law_data[i] for i in idxs[0]]
# Streamlit UI
st.title("π Legal AI Assistant (Pile Law)")
query = st.text_input("π Enter your legal query:")
if query:
results = search_legal_docs(query)
st.write("### π Relevant Legal Documents:")
for res in results:
st.write(f"- {res}")
# Generate AI-based legal response
response = openai.ChatCompletion.create(
model="gpt-4",
messages=[{"role": "system", "content": "You are a legal assistant."},
{"role": "user", "content": query}]
)
st.write("### π§ββοΈ AI Response:")
st.write(response['choices'][0]['message']['content'])
|