ai-bot/bot.py

52 lines
1.7 KiB
Python
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/python3.10
import sys
import os
import random
import discord
from discord.ext import commands
from llama_cpp import Llama
from dotenv import load_dotenv
description = """
An example bot to showcase the discord.ext.commands extension module.
There are a number of utility commands being showcased here.
"""
load_dotenv()
llm = Llama(model_path="./models/gpt4all-7B/gpt4all-lora-quantized.bin")
bot = commands.Bot(
command_prefix=commands.when_mentioned_or("!"),
description=description,
intents=discord.Intents.all(),
)
@bot.event
async def on_ready():
print(f"Logged in as {bot.user} (ID: {bot.user.id})")
@bot.event
async def on_message(message: discord.Message):
msg = ""
# Make sure we won't be replying to ourselves.
if message.author.id == bot.user.id:
return
if f"""<@{bot.user.id}>""" in message.content:
async with message.channel.typing():
question = f"""Text transcript of a never ending dialog, where {message.author} interacts with Karl AI.
Karl is helpful, kind, honest, friendly, good at writing and never fails to answer {message.author}s requests immediately and with details and precision.
There are no annotations like (30 seconds passed...) or (to himself), just what {message.author} and Karl say aloud to each other.
The dialog lasts for years, the entirety of it is shared below. It's 10000 pages long.
{message.author}: {message.content}"""
msg = llm(question, max_tokens=256, stop=[f"""{message.author}"""], echo=True)[
"choices"][0]["text"][len(question):]
await message.channel.send(msg)
bot.run(os.environ.get("DISCORD_TOKEN"))