STREAMACTION / app.py
AEUPH's picture
Update app.py
f14de9d verified
import streamlit as st
import requests
import json
import os
import re
import emoji
from urllib.parse import unquote
# Define the functions as provided in the original script
def filter_text_and_preserve_emojis(text):
pattern = re.compile(r'[a-zA-Z0-9\s.,?!\'"]|[\U0001F600-\U0001F64F\U0001F300-\U0001F5FF\U0001F680-\U0001F6FF\U0001F700-\U0001F77F\U0001F780-\U0001F7FF\U0001F800-\U0001F8FF\U0001F900-\U0001F9FF\U0001FA00-\U0001FA6F\U0001FA70-\U0001FAFF\U00002702-\U000027B0\U000024C2-\U0001F251]+')
return ''.join(pattern.findall(text))
def chatbot_api(input_text):
url = "https://chat.tune.app/api/chat/completions"
decoded_text = unquote(input_text)
headers = {
"Authorization": os.environ.get('api'), # Ensure this is set
"Content-Type": "application/json"
}
data = {
"temperature": 0.5,
"messages": [
{"role": "system", "content": "System setup text here."},
{"role": "user", "content": decoded_text}
],
"model": "goliath-120b-16k-gptq",
"stream": False,
"max_tokens": 350
}
response = requests.post(url, headers=headers, json=data)
try:
response_json = response.json()
full_content = response_json['choices'][0]['message']['content']
filtered_response = filter_text_and_preserve_emojis(full_content)
except (KeyError, IndexError):
filtered_response = "Error: The expected response format has changed or is missing."
return {
"actions": [
{"type": "message", "text": filtered_response}
]
}
# Streamlit UI
st.title("Chatbot Interface")
# Fetch the URL parameter
query_params = st.query_params
auto_submit_text = query_params.get("input_text", [None])[0]
# Check if there's an input from URL parameter and auto-submit
if auto_submit_text is not None:
result = chatbot_api(auto_submit_text)
if result:
st.json(result)
else:
# Manual input
user_input = st.text_input("Enter your text here:")
if st.button("Submit"):
result = chatbot_api(user_input)
if result:
st.json(result)