Skip to content

Commit

Permalink
logos svc integration for character
Browse files Browse the repository at this point in the history
  • Loading branch information
jmilldotdev committed Dec 14, 2023
1 parent 81f7343 commit 058d576
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 37 deletions.
36 changes: 10 additions & 26 deletions src/cogs/CharacterCog.py
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand All @@ -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")
Expand Down Expand Up @@ -61,31 +63,22 @@ 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,
character_id=self.characterId,
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)
Expand All @@ -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)

Expand Down
18 changes: 7 additions & 11 deletions src/common/eden.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
import io
import os
from typing import Optional
from logos.scenarios import EdenAssistant


import aiohttp
Expand Down Expand Up @@ -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
14 changes: 14 additions & 0 deletions src/common/logos.py
Original file line number Diff line number Diff line change
@@ -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()

0 comments on commit 058d576

Please sign in to comment.