diff --git a/src/cogs/CharacterCog.py b/src/cogs/CharacterCog.py index 6a84f7b..c9d0bb9 100644 --- a/src/cogs/CharacterCog.py +++ b/src/cogs/CharacterCog.py @@ -11,6 +11,7 @@ replace_mentions_with_usernames, ) from common.eden import generation_loop, get_assistant +from common.logos import request_logos_assistant from common.models import ( GenerationLoopInput, SignInCredentials, @@ -20,6 +21,7 @@ ALLOWED_CHANNELS = [int(c) for c in os.getenv("ALLOWED_CHANNELS", "").split(",")] EDEN_API_URL = os.getenv("EDEN_API_URL") +LOGOS_API_URL = os.getenv("LOGOS_API_URL") EDEN_FRONTEND_URL = EDEN_API_URL.replace("api", "app") EDEN_API_KEY = os.getenv("EDEN_API_KEY") EDEN_API_SECRET = os.getenv("EDEN_API_SECRET") @@ -61,22 +63,7 @@ async def on_message(self, message: discord.Message) -> None: ctx = await self.bot.get_context(message) async with ctx.channel.typing(): prompt = self.message_preprocessor(message) - attachment_urls = [attachment.url for attachment in message.attachments] - attachment_lookup_file = { - url: f"/files/image{i+1}.jpeg" - for i, url in enumerate(attachment_urls) - } - attachment_lookup_url = { - v: k for k, v in attachment_lookup_file.items() - } - attachment_files = [ - attachment_lookup_file[url] for url in attachment_urls - ] - assistant_message = { - "prompt": prompt, - "attachments": attachment_files, - } assistant, concept = get_assistant( api_url=EDEN_API_URL, @@ -84,8 +71,14 @@ async def on_message(self, message: discord.Message) -> None: credentials=self.eden_credentials, ) - response = assistant( - assistant_message, session_id=str(message.author.id) + interaction = { + "prompt": prompt, + "attachments": attachment_urls, + "author_id": str(message.author.id), + } + + response = request_logos_assistant( + LOGOS_API_URL, assistant, interaction ) reply = response.get("message")[:2000] reply_message = await message.reply(reply) @@ -105,15 +98,6 @@ async def on_message(self, message: discord.Message) -> None: else: text_input = mode - if config.get("init_image"): - config["init_image"] = attachment_lookup_url.get( - config["init_image"] - ) - if config.get("interpolation_init_images"): - config["interpolation_init_images"] = [ - attachment_lookup_url.get(img) - for img in config["interpolation_init_images"] - ] if not config.get("seed"): config["seed"] = random.randint(1, 1e8) diff --git a/src/common/eden.py b/src/common/eden.py index 526bd3a..839c74f 100644 --- a/src/common/eden.py +++ b/src/common/eden.py @@ -2,7 +2,6 @@ import io import os from typing import Optional -from logos.scenarios import EdenAssistant import aiohttp @@ -308,21 +307,18 @@ def get_assistant(api_url: str, character_id: str, credentials: SignInCredential "x-api-secret": credentials.apiSecret, } - print(f"{api_url}/characters/{character_id}") response = requests.get(f"{api_url}/characters/{character_id}", headers=header) json = response.json() - print(json) character = json.get("character") description = character.get("description") logosData = character.get("logosData") - - assistant = EdenAssistant( - character_description=description, - creator_prompt=logosData.get("creatorPrompt"), - documentation_prompt=logosData.get("documentationPrompt"), - documentation=logosData.get("documentation"), - router_prompt=logosData.get("routerPrompt"), - ) + assistant = { + "character_description": description, + "creator_prompt": logosData.get("creatorPrompt"), + "documentation_prompt": logosData.get("documentationPrompt"), + "documentation": logosData.get("documentation"), + "router_prompt": logosData.get("routerPrompt"), + } concept = character.get("concept") return assistant, concept diff --git a/src/common/logos.py b/src/common/logos.py new file mode 100644 index 0000000..cd9ff2a --- /dev/null +++ b/src/common/logos.py @@ -0,0 +1,14 @@ +import requests + + +def request_logos_assistant(api_url: str, assistant: dict, interaction: dict): + response = requests.post( + f"{api_url}/interact", + json={ + "assistant": assistant, + "interaction": interaction, + }, + ) + print(response.json()) + + return response.json()