Agentic_AI / app.py
pradeepsengarr's picture
Update app.py
e0cfa4a verified
import streamlit as st
import requests
import re
import time
# APIs
TOGETHER_API_KEY = "tgp_v1_ZytvDbMu9PMwIlnBZEfYSq9nzJAYwS0MecjY9Kt7RxE"
SERPER_API_KEY = "75f06519187851ad63486c3012b34c5e0e6501f1"
# Genrate Ideas
def generate_startup_ideas(prompt, retries=3, delay=2):
url = "https://api.together.xyz/v1/completions"
headers = {
"Authorization": f"Bearer {TOGETHER_API_KEY}",
"Content-Type": "application/json"
}
data = {
"model": "mistralai/Mistral-7B-Instruct-v0.1",
"prompt": f"""
Suggest 3 unique startup ideas based on this interest: \"{prompt}\".
Each idea should be short, clear, and numbered like this:
1. [Idea Title]: [One-sentence description]
2. ...
""",
"max_tokens": 300,
"temperature": 0.7,
"top_p": 0.95
}
for attempt in range(retries):
try:
response = requests.post(url, headers=headers, json=data)
result = response.json()
if "choices" in result and result["choices"]:
raw_text = result["choices"][0].get("text", "").strip()
ideas = re.findall(r"\d+\.\s*(.*?):\s*(.*)", raw_text)
if ideas:
return [f"{i+1}. {title.strip()}: {desc.strip()}" for i, (title, desc) in enumerate(ideas)]
else:
print("⚠️ No valid ideas format. Raw output:", raw_text)
else:
print("⚠️ Unexpected API response:", result)
except Exception as e:
print(f"[Attempt {attempt+1}] Error: {e}")
time.sleep(delay)
return []
# For working on URLs
def market_research(query):
url = "https://google.serper.dev/search"
headers = {"X-API-KEY": SERPER_API_KEY}
data = {"q": query}
try:
res = requests.post(url, headers=headers, json=data)
results = res.json()
return [r["title"] + " - " + r["link"] for r in results.get("organic", [])[:5]]
except Exception as e:
print("Market research error:", e)
return ["❌ Market research failed."]
# Streamlit UI
st.set_page_config(page_title="Startup Co-Founder Agent", layout="centered")
st.title("πŸš€ Startup Co-Founder Agent")
st.write("Get startup ideas + instant market research. Free & AI-powered.")
user_prompt = st.text_input("What are you interested in building a startup around?", "AI for education")
if st.button("Generate Startup Ideas"):
if not TOGETHER_API_KEY or not SERPER_API_KEY:
st.error("API keys are missing. Set them in environment or Hugging Face Secrets.")
else:
with st.spinner("Brewing ideas with HuggingFace GPUs and coffee... β˜•πŸ€–"):
ideas = generate_startup_ideas(user_prompt)
if not ideas:
st.error("Still no ideas. Maybe try again in a few seconds.")
else:
st.subheader("πŸ’‘ Startup Ideas")
for idea in ideas:
st.markdown(f"- {idea}")
st.subheader("πŸ” Market Research")
for idea in ideas:
title = idea.split(":")[0].strip()
st.markdown(f"**πŸ“Œ {title}**")
results = market_research(title)
for r in results:
st.markdown(f"- {r}")