Spaces:
Runtime error
Runtime error
#import gradio as gr | |
#gr.load("models/mistralai/Mistral-7B-Instruct-v0.3").launch() | |
import os | |
import requests | |
import discord | |
from discord.ext import commands | |
from dotenv import load_dotenv | |
# Load environment variables from the .env file | |
load_dotenv() | |
DISCORD_TOKEN = os.getenv('dsTOK') | |
HF_API_KEY = os.getenv('HFREAD') | |
API_URL = "https://api-inference.huggingface.co/models/mistralai/Mistral-7B-Instruct-v0.3" | |
headers = {"Authorization": f"Bearer {HF_API_KEY}"} | |
# List of forbidden words/phrases | |
forbidden_words = ["badword1", "badword2", "inappropriate_phrase"] # Extend this list as needed | |
# Function to query the Hugging Face model with a structured prompt | |
def query_huggingface(prompt): | |
try: | |
response = requests.post(API_URL, headers=headers, json={"inputs": prompt}) | |
response.raise_for_status() | |
return response.json() | |
except requests.exceptions.RequestException as e: | |
print(f"Error querying the API: {e}") | |
return {"error": str(e)} | |
# Function to check if the response contains forbidden words/phrases | |
def contains_forbidden_content(text): | |
for word in forbidden_words: | |
if word in text.lower(): | |
return True | |
return False | |
# Initialize the Discord bot | |
intents = discord.Intents.default() | |
intents.messages = True | |
intents.message_content = True | |
bot = commands.Bot(command_prefix="!", intents=intents) | |
async def on_ready(): | |
print(f'Bot is ready. Logged in as {bot.user}') | |
async def ask(ctx, *, question: str): | |
""" | |
Command to ask a question to the Hugging Face model with an instructive prompt. | |
""" | |
# Create a structured prompt | |
prompt = f"Please provide a detailed and appropriate response to the following question: {question}" | |
response = query_huggingface(prompt) | |
generated_text = None | |
if isinstance(response, dict) and 'generated_text' in response: | |
generated_text = response['generated_text'] | |
elif isinstance(response, list) and len(response) > 0 and 'generated_text' in response[0]: | |
generated_text = response[0]['generated_text'] | |
if generated_text: | |
if contains_forbidden_content(generated_text): | |
await ctx.send("Sorry, the response contains inappropriate content and cannot be displayed.") | |
else: | |
await ctx.send(generated_text) | |
else: | |
await ctx.send("Sorry, I couldn't generate a response.") | |
# Run the bot | |
bot.run(DISCORD_TOKEN) | |