Spaces:
Sleeping
Sleeping
import streamlit as st | |
import requests | |
# Define the URL of the FastAPI service | |
API_URL = "https://lazarr19-prompt-engine.hf.space/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 get_color(score): | |
if score >= 0.8: | |
return "green" | |
elif score >= 0.5: | |
return "orange" | |
else: | |
return "red" | |
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=40, 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: | |
score = item["score"] | |
color = get_color(score) | |
# Apply color only to the score part | |
st.markdown( | |
f"<p><strong>Score:</strong> <span style='color:{color};'>{score:.2f}</span> <br> <strong>Prompt:</strong> {item['prompt']}</p>", | |
unsafe_allow_html=True, | |
) | |
st.write("---") | |
else: | |
st.write("No similar prompts found.") | |
else: | |
st.warning("Please enter a query.") | |
if __name__ == "__main__": | |
main() | |