import streamlit as st import requests # Define the URL of the FastAPI service API_URL = "http://localhost:8000/most_similar" # Adjust if the FastAPI service is hosted elsewhere def get_similar_prompts(query, n): try: response = requests.post(API_URL, json={"query": query, "n": n}) response.raise_for_status() # Raise an exception for HTTP errors return response.json() except requests.RequestException as e: st.error(f"Error: {e}") return None def main(): st.title("Prompt Similarity Finder") # User input for query query = st.text_input("Enter your query:", "") n = st.slider( "Number of similar prompts to retrieve:", min_value=1, max_value=20, value=5 ) if st.button("Find Similar Prompts"): if query: with st.spinner("Fetching similar prompts..."): result = get_similar_prompts(query, n) if result: similar_prompts = result.get("similar_prompts", []) if similar_prompts: st.subheader("Similar Prompts:") for item in similar_prompts: st.write(f"**Score:** {item['score']:.2f}") st.write(f"**Prompt:** {item['prompt']}") st.write("---") else: st.write("No similar prompts found.") else: st.warning("Please enter a query.") if __name__ == "__main__": main()