Assistants API - Connecting to discord - 'Client' has no 'beta' attribute

Trying to hook an assistant to discord. Can someone help me please?

I keep getting the error:
thread = client.beta.threads.create()
AttributeError: ‘Client’ object has no attribute ‘beta’

Here is my code

import discord
import openai
import time
from openai import OpenAI

intents = discord.Intents.default()
intents.messages = True
intents.guilds = True

client = discord.Client(intents=intents)

openai.api_key = ‘XXX’ # Replace with your OpenAI API key
ASSISTANT_ID = ‘XXX’ # Replace with your Assistant’s ID

def wait_on_run(run, thread_id):
while run.status == “queued” or run.status == “in_progress”:
run = openai.ThreadRun.retrieve(
thread_id=thread_id,
id=run.id,
)
time.sleep(0.5)
return run

@client.event
async def on_ready():
print(f’Logged in as {client.user}')

@client.event
async def on_message(message):
if message.author == client.user:
return

if message.content.startswith('!ask'):
    user_message = message.content[len('!ask '):]
    thread = client.beta.threads.create()
    openai.ThreadMessage.create(
        thread_id=thread.id, 
        role="user", 
        content=user_message
    )
    run = openai.ThreadRun.create(
        thread_id=thread.id,
        assistant_id=ASSISTANT_ID,
    )
    run = wait_on_run(run, thread.id)
    messages = openai.ThreadMessage.list(thread_id=thread.id)
    response = messages.data[-1].content[0].text.value
    await message.channel.send(response)

client.run(‘XXX’) # Replace with your Discord bot token

1 Like