Compare commits
1 Commits
f77940dff9
...
env-vars
| Author | SHA1 | Date | |
|---|---|---|---|
| 4ddcd2b374 |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -2,6 +2,7 @@ config.py
|
||||
__pycache__/
|
||||
garfpy/__pycache__/
|
||||
*.venv*
|
||||
.idea
|
||||
*.json
|
||||
*.old
|
||||
*.log*
|
||||
|
||||
@@ -2,6 +2,14 @@ services:
|
||||
garfbot:
|
||||
image: git.crate.zip/crate/garfbot:latest
|
||||
container_name: garfbot
|
||||
environment:
|
||||
- TXT_MODEL=${TXT_MODEL}
|
||||
- IMG_MODEL=${IMG_MODEL}
|
||||
- GARFBOT_TOKEN=${GARFBOT_TOKEN}
|
||||
- OPENAI_TOKEN=${OPENAI_TOKEN}
|
||||
- WEATHER_TOKEN=${WEATHER_TOKEN}
|
||||
- KROGER_ID=${KROGER_ID}
|
||||
- KROGER_SECRET=${KROGER_SECRET}
|
||||
restart: always
|
||||
volumes:
|
||||
- /home/crate/garfbot:/usr/src/app
|
||||
|
||||
14
garfmain.py
14
garfmain.py
@@ -1,4 +1,4 @@
|
||||
import config
|
||||
import os
|
||||
import asyncio
|
||||
import discord
|
||||
from discord.ext import commands
|
||||
@@ -16,10 +16,9 @@ from garfpy import (
|
||||
)
|
||||
|
||||
|
||||
# gapikey = config.GIF_TOKEN
|
||||
garfkey = config.GARFBOT_TOKEN
|
||||
txtmodel = config.TXT_MODEL
|
||||
imgmodel = config.IMG_MODEL
|
||||
garfkey = os.getenv("GARFBOT_TOKEN")
|
||||
txtmodel = os.getenv("TXT_MODEL")
|
||||
imgmodel = os.getenv("IMG_MODEL")
|
||||
|
||||
intents = discord.Intents.default()
|
||||
intents.members = True
|
||||
@@ -118,9 +117,6 @@ async def garfbot_weather(ctx, *, location):
|
||||
|
||||
@garfbot.command(name="chat")
|
||||
async def garfchat(ctx, *, prompt):
|
||||
if "is this true" in prompt.lower():
|
||||
messages = [msg async for msg in ctx.channel.history(limit=2)]
|
||||
prompt = messages[1].content
|
||||
answer = await garfield.generate_chat(prompt)
|
||||
logger.info(
|
||||
f"Chat Request - User: {ctx.author.name}, Server: {ctx.guild.name}, Prompt: {prompt}"
|
||||
@@ -184,7 +180,7 @@ async def on_message(message):
|
||||
async def garfbot_connect():
|
||||
while True:
|
||||
try:
|
||||
await garfbot.start(garfkey)
|
||||
await garfbot.start(garfkey) # type: ignore
|
||||
except Exception as e:
|
||||
e = str(e)
|
||||
logger.error(f"Garfbot couldn't connect! {e}")
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import io
|
||||
import os
|
||||
import openai
|
||||
import config
|
||||
import aiohttp
|
||||
import asyncio
|
||||
import discord
|
||||
@@ -11,9 +11,9 @@ from garfpy import logger
|
||||
|
||||
class GarfAI:
|
||||
def __init__(self):
|
||||
self.openaikey = config.OPENAI_TOKEN
|
||||
self.txtmodel = config.TXT_MODEL
|
||||
self.imgmodel = config.IMG_MODEL
|
||||
self.openaikey = os.getenv('OPENAI_TOKEN')
|
||||
self.txtmodel = os.getenv('TXT_MODEL')
|
||||
self.imgmodel = os.getenv('IMG_MODEL')
|
||||
self.image_request_queue = asyncio.Queue()
|
||||
|
||||
async def garfpic(self, ctx, prompt):
|
||||
@@ -82,7 +82,7 @@ class GarfAI:
|
||||
try:
|
||||
client = AsyncOpenAI(api_key=self.openaikey)
|
||||
response = await client.chat.completions.create(
|
||||
model=self.txtmodel,
|
||||
model=self.txtmodel, # type: ignore
|
||||
messages=[
|
||||
{
|
||||
"role": "system",
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import config
|
||||
import os
|
||||
import requests
|
||||
from base64 import b64encode
|
||||
from garfpy import logger
|
||||
@@ -6,8 +6,8 @@ from garfpy import logger
|
||||
|
||||
class Kroger:
|
||||
def __init__(self):
|
||||
self.client_id = config.CLIENT_ID
|
||||
self.client_secret = config.CLIENT_SECRET
|
||||
self.client_id = os.getenv('CLIENT_ID')
|
||||
self.client_secret = os.getenv('CLIENT_SECRET')
|
||||
self.auth = b64encode(
|
||||
f"{self.client_id}:{self.client_secret}".encode()
|
||||
).decode()
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import os
|
||||
import re
|
||||
import config
|
||||
import discord
|
||||
import aiohttp
|
||||
from garfpy import logger
|
||||
@@ -7,7 +7,7 @@ from garfpy import logger
|
||||
|
||||
class WeatherAPI:
|
||||
def __init__(self, api_key=None):
|
||||
self.api_key = api_key or config.WEATHER_TOKEN
|
||||
self.api_key = api_key or os.getenv("WEATHER_TOKEN")
|
||||
self.base_url = "https://api.openweathermap.org/data/2.5/weather"
|
||||
|
||||
def parse_location(self, location):
|
||||
@@ -126,7 +126,7 @@ class WeatherAPI:
|
||||
response.raise_for_status()
|
||||
return await response.json()
|
||||
except aiohttp.ClientError as e:
|
||||
logger.error(f"Error fetching weather data for '{location}' - {e}")
|
||||
logger.error(f"Error fetching weather data for '{location}'")
|
||||
await ctx.send(f"`Error fetching weather data for '{location}'`")
|
||||
return None
|
||||
|
||||
|
||||
Reference in New Issue
Block a user