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)