| 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 + '_') |
|
|
|
|
|
|
|
|
| |
| |
| |