small formatting and variable changes, added readme

This commit is contained in:
Aaron Crate 2023-11-17 19:37:51 +00:00
parent a772460827
commit fb973bbe59
4 changed files with 31 additions and 7 deletions

View File

@ -15,6 +15,8 @@ from operator import itemgetter
openaikey = config.OPENAI_TOKEN openaikey = config.OPENAI_TOKEN
gapikey = config.GIF_TOKEN gapikey = config.GIF_TOKEN
garfkey = config.GARFBOT_TOKEN garfkey = config.GARFBOT_TOKEN
txtmodel = "gpt-3.5-turbo"
imgmodel = "dall-e-3"
intents = discord.Intents.default() intents = discord.Intents.default()
intents.members = True intents.members = True
@ -47,7 +49,7 @@ async def generate_chat_response(question):
try: try:
client = AsyncOpenAI(api_key = openaikey) client = AsyncOpenAI(api_key = openaikey)
response = await client.chat.completions.create( response = await client.chat.completions.create(
model="gpt-3.5-turbo", model=txtmodel,
messages=[ messages=[
{"role": "system", "content": "Pretend you are sarcastic Garfield."}, {"role": "system", "content": "Pretend you are sarcastic Garfield."},
{"role": "user", "content": f"{question}"} {"role": "user", "content": f"{question}"}
@ -70,7 +72,7 @@ async def generate_image(prompt):
try: try:
client = AsyncOpenAI(api_key = openaikey) client = AsyncOpenAI(api_key = openaikey)
response = await client.images.generate( response = await client.images.generate(
model="dall-e-3", model=imgmodel,
prompt=prompt, prompt=prompt,
n=1, n=1,
size="1024x1024" size="1024x1024"

View File

@ -5,6 +5,7 @@ import os
openai.api_key = config.OPENAI_TOKEN openai.api_key = config.OPENAI_TOKEN
jonkey = config.JONBOT_TOKEN jonkey = config.JONBOT_TOKEN
model = "gpt-3.5-turbo"
intents = discord.Intents.default() intents = discord.Intents.default()
intents.messages = True intents.messages = True
@ -13,7 +14,7 @@ client = discord.Client(intents=intents)
@client.event @client.event
async def on_ready(): async def on_ready():
print(f"Logged in as {client.user.name} running gpt-3.5-turbo-0613.", flush=True) print(f"Logged in as {client.user.name} running gpt-3.5-turbo.", flush=True)
@client.event @client.event
async def on_message(message): async def on_message(message):
@ -23,7 +24,7 @@ async def on_message(message):
question = message.content[7:] if message.content.lower().startswith("hey jon") else message.content question = message.content[7:] if message.content.lower().startswith("hey jon") else message.content
try: try:
response = openai.ChatCompletion.create( response = openai.ChatCompletion.create(
model="gpt-3.5-turbo", model=model,
messages=[ messages=[
{"role": "system", "content": "Pretend you are friendly Jon Arbuckle."}, {"role": "system", "content": "Pretend you are friendly Jon Arbuckle."},
{"role": "user", "content": f"{question}"} {"role": "user", "content": f"{question}"}

View File

@ -5,6 +5,7 @@ import os
openai.api_key = config.OPENAI_TOKEN openai.api_key = config.OPENAI_TOKEN
moneykey = config.MONEYBOT_TOKEN moneykey = config.MONEYBOT_TOKEN
model = "gpt-4"
intents = discord.Intents.default() intents = discord.Intents.default()
intents.messages = True intents.messages = True
@ -13,7 +14,7 @@ client = discord.Client(intents=intents)
@client.event @client.event
async def on_ready(): async def on_ready():
print(f"Logged in as {client.user.name} running gpt-3.5-turbo-0613.", flush=True) print(f"Logged in as {client.user.name} running gpt-4.", flush=True)
@client.event @client.event
async def on_message(message): async def on_message(message):
@ -23,7 +24,7 @@ async def on_message(message):
question = message.content[9:] if message.content.lower().startswith("hey money") else message.content question = message.content[9:] if message.content.lower().startswith("hey money") else message.content
try: try:
response = openai.ChatCompletion.create( response = openai.ChatCompletion.create(
model="gpt-4", model=model,
messages=[ messages=[
{"role": "system", "content": "Pretend you are eccentric conspiracy theorist Planetside 2 gamer named Dr. Moneypants."}, {"role": "system", "content": "Pretend you are eccentric conspiracy theorist Planetside 2 gamer named Dr. Moneypants."},
{"role": "user", "content": f"{question} please keep it short with religious undertones"} {"role": "user", "content": f"{question} please keep it short with religious undertones"}
@ -32,7 +33,7 @@ async def on_message(message):
) )
answer = response['choices'][0]['message']['content'] answer = response['choices'][0]['message']['content']
answer = answer.replace("an AI language model", "a man of God") answer = answer.replace("an AI language model", "a man of God")
answer = answer.replace("language model", "man of God") answer = answer.replace("language model AI", "man of God")
await message.channel.send(answer) await message.channel.send(answer)
except Exception as e: except Exception as e:
e = str(e) e = str(e)

20
readme.md Normal file
View File

@ -0,0 +1,20 @@
GarfBot is a discord bot that uses openai generative pre-trained AI models to produce text and images for your personal entertainment and companionship.
To interact: (not case-sensitive)
`"hey garfield"`
responds with text.
`"garfpic"`
responds with image.
To get started, clone this repo and create a `config.py` file in GarfBot's root directory. Open your favorite text editor or IDE and add your various API tokens as such:
```python
GARFBOT_TOKEN = "token"
JONBOT_TOKEN = "token"
MONEYBOT_TOKEN = "token"
OPENAI_TOKEN = "token"
GIF_TOKEN = "token"
```
If you want to configure a more secure setup go ahead, feel free to pipe any questions to my email address or /dev/null.