|
import streamlit as st |
|
import requests |
|
import os |
|
|
|
|
|
def call_ai_model(all_message): |
|
url = "https://api.together.xyz/v1/chat/completions" |
|
payload = { |
|
"model": "NousResearch/Nous-Hermes-2-Yi-34B", |
|
"temperature": 1.05, |
|
"top_p": 0.9, |
|
"top_k": 50, |
|
"repetition_penalty": 1, |
|
"n": 1, |
|
"messages": [{"role": "user", "content": all_message}], |
|
"stream_tokens": True, |
|
} |
|
|
|
TOGETHER_API_KEY = os.getenv('TOGETHER_API_KEY') |
|
headers = { |
|
"accept": "application/json", |
|
"content-type": "application/json", |
|
"Authorization": f"Bearer {TOGETHER_API_KEY}", |
|
} |
|
|
|
response = requests.post(url, json=payload, headers=headers, stream=True) |
|
response.raise_for_status() |
|
|
|
for line in response.iter_lines(): |
|
if line: |
|
yield line.decode('utf-8') |
|
|
|
|
|
st.title("Climate Change Impact on Sports Using AI") |
|
st.write("Predict and mitigate the impacts of climate change on sports performance and infrastructure.") |
|
|
|
|
|
temperature = st.number_input("Enter temperature (°C):", min_value=-50, max_value=50, value=25) |
|
humidity = st.number_input("Enter humidity (%):", min_value=0, max_value=100, value=50) |
|
air_quality = st.number_input("Enter air quality index (AQI):", min_value=0, max_value=500, value=100) |
|
precipitation = st.number_input("Enter precipitation (mm):", min_value=0.0, max_value=500.0, value=10.0) |
|
|
|
if st.button("Generate Prediction"): |
|
all_message = f"Predict the impact of the following climate conditions on sports performance and infrastructure: temperature {temperature}°C, humidity {humidity}%, air quality index {air_quality}, and precipitation {precipitation}mm." |
|
|
|
try: |
|
with st.spinner("Generating response..."): |
|
response_lines = call_ai_model(all_message) |
|
generated_text = "".join(response_lines) |
|
st.success("Response generated successfully!") |
|
st.write(generated_text) |
|
except Exception as e: |
|
st.error(f"An error occurred: {e}") |
|
|