PowerPointAI / app.py
sarim's picture
new model
b80b685
#from pydantic_ai.result import ResultData
import streamlit as st
from pydantic_ai import Agent
from pydantic_ai.models.groq import GroqModel
from pydantic_ai.models.anthropic import AnthropicModel
from pydantic_ai.models.mistral import MistralModel
import nest_asyncio
import random
import planet_model as customModel
from typing import List, Dict
import constants
import os
api_key = os.getenv("api_key")
random_number = random.randint(3000, 10000)
model = MistralModel('mistral-small-latest', api_key = 'ZGs1ZTvw6csiboQnBC9mi1cmsBjAPRu7')
async def onClick(vacationType,familyType,duration,purpose,interests):
agent = Agent(model,system_prompt=(
"You are a highly advanced travel agent specializing in intergalactic vacations",
"Planet Name: A creative, fictional planet name.",
f"imagine the year is {random_number} and space travel is normal",
"Mankind has discovered aliens some are more advance then us some are not",
"You are a travel agent and depending on the" + vacationType +"you will list down alteast 5 destinations",
"Also answer based on "+familyType+ "," + duration +","+purpose + "and"+interests,
"Be creative made-up different kinds of planets, aliens, atmosphere",
"Draw inspiration from sources like No Man’s Sky, Hitchhiker’s Guide to the Galaxy, and original creative ideas. Be imaginative, and ensure variety in your suggestions to cater to different tastes.",
"Cosmic Myths: Stories from Norse (Yggdrasil), Hindu (Churning of the Ocean), or Aboriginal (Dreamtime) traditions.",
"Alien Archetypes: Trickster gods, celestial guardians, or ancient interstellar ruins.",
"Astrobiology: Speculate on alien life forms based on real theories (e.g., extremophiles or silicon-based life).",
"Physics: Use concepts like wormholes, Dyson spheres, or FTL (faster-than-light) travel.",
"Exoplanet Studies: Real planets discovered by NASA or ESA (e.g., TRAPPIST-1 system).",
"Utopian/Dystopian Visions: Consider societal structures from Brave New World or 1984.",
"Cultural Exchange: Speculate on how humans and aliens might interact, inspired by Arrival.",
"Music: Cosmic and futuristic soundscapes from artists like Vangelis (Blade Runner soundtrack) or Daft Punk (Tron soundtrack).",
"Visual Arts: Imagery from H.R. Giger (Alien) or Moebius (The Incal).",
"Graphic Novels: Saga, Transmetropolitan.",
"Each recommendation should include:",
"The planet's name and description of its atmosphere.",
"Details about the local alien species and their culinary traditions.",
"A signature dish or food experience.",
"Key activities or attractions for a traveler interested in food and culture."
),
)
result_1 = agent.run_sync(user_prompt="for space travel which planet is the best")
result = result_1
st.caption(result.data)
print(result_1)
def asyncOnClick(vacationType,familyType,duration,purpose,interests):
asyncio.run(onClick(vacationType,familyType,duration,purpose,interests))
async def main():
#result_1 = agent.run_sync("for space travel which planet is the best")
##The Zorvath
#print(result_1.data)
#result_2 = agent.run_sync("What are the major tourust attraction in planet The Zorvath",message_history=result_1.new_messages())
#print(result_2.data)
#st.markdown(result_1.data)
#st.button(label="Search",type="primary",on_click=onClick)
st.subheader("Travel Preferences")
vacationType = st.selectbox(label="Travel Style",options=("Budget","Mid-budget","High-end"))
family = st.selectbox(label="Group Size",options=("Solo","Small family","Large family","Destination weeding"))
duration = st.selectbox(label="Duration of Trip",options=("5 days","2 weeks","1 month","more then 1 month"))
purpose = st.selectbox(label="Purpose of Travel",options=("Honeymoon","anniversary","family vacation","corporate retreat","vacation","Food tour"))
interests = st.selectbox(label="Special Interestl",options=("Photography","gastronomy","wildlife","art"))
if st.button("Search"):
asyncOnClick(vacationType,family,duration,purpose,interests)
vacationType = ""
family = ""
duration = ""
purpose = ""
interests = ""
if __name__ == '__main__':
import asyncio
nest_asyncio.apply()
asyncio.run(main())