|
import streamlit as st |
|
import os |
|
import requests |
|
import pandas as pd |
|
import boto3 |
|
import AWSHandler |
|
import pinecone |
|
from sentence_transformers import SentenceTransformer |
|
|
|
aws_access_key = os.getenv("aws_access_key") |
|
aws_secret_key = os.getenv("aws_secret_key") |
|
pinecone_api_key = os.getenv("pinecone_api_key") |
|
pinecone_environment = os.getenv("pinecone_environment") |
|
|
|
s3 = boto3.client('s3', aws_access_key_id=aws_access_key, aws_secret_access_key=aws_secret_key) |
|
|
|
model = SentenceTransformer('all-mpnet-base-v2') |
|
|
|
st.set_page_config(layout="wide") |
|
|
|
|
|
|
|
def search_index(query): |
|
pinecone.init(api_key=pinecone_api_key, environment=pinecone_environment) |
|
index = pinecone.Index("scotus") |
|
vector = model.encode([query]).tolist() |
|
print(index) |
|
print(index.query) |
|
print(index.query(vector=vector,top_k=10,include_values=False,include_metadata=True).to_dict()) |
|
return index.query(vector=vector,top_k=10,include_values=False,include_metadata=True).to_dict()['matches'] |
|
|
|
|
|
st.markdown(''' |
|
<style> |
|
[data-testid="stMarkdownContainer"] ul{ |
|
list-style-position: inside; |
|
} |
|
</style> |
|
''', unsafe_allow_html=True) |
|
|
|
|
|
search = st.text_input('Search', placeholder='First Amendment cannot protect libel') |
|
if search != "": |
|
res = search_index(query=search) |
|
for m in res: |
|
text = m['metadata']['Text'] |
|
if 'Name' in m['metadata']: |
|
name = m['metadata']['Name'] |
|
else: |
|
name = "" |
|
st.markdown("- " + text + ' ' + '(_' + name + '_)') |
|
|
|
|
|
|
|
|
|
|
|
|
|
|