Spaces:
Sleeping
Sleeping
| 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) | |