File size: 3,092 Bytes
c53a77e
cbff1af
c53a77e
cbff1af
 
e6a2719
73ee0a8
e6a2719
f28bb81
 
 
e6a2719
cbff1af
 
e6a2719
cbff1af
40ba0a8
63bef3f
ca03b0d
63bef3f
ca03b0d
63bef3f
 
 
 
 
 
 
 
 
 
ca03b0d
cbff1af
5f8d6cb
cbff1af
73ee0a8
cbff1af
393668f
cbff1af
 
 
7bd421d
cbff1af
3e13d21
73ee0a8
cbff1af
ce522c8
393668f
7dc9d7a
cbff1af
ca03b0d
 
5f8d6cb
393668f
 
 
 
 
5f8d6cb
393668f
5f8d6cb
 
ca03b0d
cbff1af
c53a77e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
import gradio as gr
import requests
import json
import os
import re
import emoji
from urllib.parse import unquote
def filter_text_and_preserve_emojis(text):
    # Regular expression that allows letters, numbers, spaces, specific punctuation, and a broad range of Unicode characters for emojis
    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]+')
    filtered_text = ''.join(pattern.findall(text))
    return filtered_text
def filter_non_alphanumeric(text):
    # Use regular expressions to filter out non-alphanumeric characters
    alphanumeric_text = filter_text_and_preserve_emojis(text)
    return alphanumeric_text

def send_to_corrade(filtered_response):
    CORRADE_URL = os.environ.get('url')  # Make sure to set this environment variable
    GROUP_UUID = "e269893f-a570-0087-930e-6ba2a0b77f9c"
    PASSWORD = os.environ.get('pass')  # Make sure to set this environment variable
    data = {
        "command": "tell",
        "group": GROUP_UUID,
        "password": PASSWORD,
        "message": filtered_response,
        "entity": "local",
        "type": "Normal"
    }
    response = requests.post(CORRADE_URL, data=data)
    return response.status_code == 200

def chatbot_api(input_text):
    # Your existing setup for API call
    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": "[LANGUAGE:ENGLISH]: I must respond only with a menu system that uses a # \n # for new lines on the config menus. and emotive webmoji based gestures for SecondLife DJ's and Music Clubs. I POST CREATIVE AND INSPIRING EMOTIVE BILLBOARDS. I REWARD CRYPTO-CURRENCIES BASED OFF LSL-BASED BLOCKCHAIN. You like to use WEBMOJIS as word decoration, and will respond to sentiment approprately. You start every response with a CREATIVE and RESPONSIVE EMOJI AND TEXT HEADLINE."},
            {"role": "user", "content": decoded_text}
        ],
        "model": "openhermes-2-5-m7b-8k",
        "stream": False,  # Adjusted for a direct response
        "max_tokens": 350
    }
    response = requests.post(url, headers=headers, json=data)
    response_json = response.json()
    
    # Corrected part: Accessing the 'content' within 'message'
    try:
        full_content = response_json['choices'][0]['message']['content']
    except (KeyError, IndexError):
        full_content = "Error: The expected response format has changed or is missing."
    
    filtered_response = filter_non_alphanumeric(full_content)
    send_to_corrade(filtered_response)
    return filtered_response
# Example usage with Gradio
iface = gr.Interface(fn=chatbot_api, inputs="text", outputs="text")
iface.launch()