Skip to content

Commit 770f028

Browse files
authored
Merge pull request #23 from AierLab/update
Comprehensive Update to Bot, DAO, and Data Model Architecture
2 parents cde7581 + 39fae3b commit 770f028

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+800
-341
lines changed

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -161,4 +161,5 @@ cython_debug/
161161
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
162162
.idea/
163163

164-
history_store
164+
history
165+

backend/app/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
pass
1+
from .main import main

backend/app/chatBot.py

Lines changed: 0 additions & 1 deletion
This file was deleted.

backend/app/control/__init__.py

Whitespace-only changes.
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
from .openaiBot import OpenAIBot
2+
from .petalsBot import PetalsBot
3+
from .wenxinBot import WenxinBot
4+
5+
# Optional: Initialize or configure models here if necessary
6+
# For example, you could load bot configurations or API keys from environment variables
7+
8+
# Export the models for easy import elsewhere in your application
9+
__all__ = ['OpenAIBot', 'PetalsBot', 'WenxinBot']

backend/app/control/bot/baseBot.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
from abc import ABC, abstractmethod
2+
3+
from app.model.dataModel import MessageModel, SessionModel, AgentModel, VectorStoreModel
4+
5+
6+
class BaseBot(ABC):
7+
8+
@abstractmethod
9+
def ask(self,
10+
message: MessageModel,
11+
agent: AgentModel,
12+
session: SessionModel,
13+
vector_store_model: VectorStoreModel) -> MessageModel:
14+
"""
15+
Process input message and session context to return bot output.
16+
17+
Args:
18+
message (MessageModel): The message to be processed by the bot.
19+
session (SessionModel): The session context in which the message is being processed, if applicable.
20+
21+
Returns:
22+
str: The output generated by the bot in response to the message.
23+
"""
24+
pass
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
from openai import OpenAI
2+
3+
from app.model.dataModel import MessageModel, SessionModel, AgentModel, VectorStoreModel, RoleEnum
4+
from .baseBot import BaseBot
5+
6+
7+
class OpenAIBot(BaseBot):
8+
def __init__(self, api_key):
9+
self.client = OpenAI(api_key=api_key)
10+
11+
def ask(self,
12+
message: MessageModel,
13+
session: SessionModel,
14+
agent: AgentModel = None,
15+
vector_store_model: VectorStoreModel = None) -> MessageModel:
16+
if agent:
17+
fake_message = MessageModel(content=agent.generate_prompt(content=message.content, self_name=agent.name,
18+
target_name="Open AI Assistant"),
19+
role=message.role)
20+
else:
21+
fake_message = message
22+
23+
completion = self.client.chat.completions.create(
24+
model="gpt-4o-mini",
25+
messages=session.serialize()["message_list"] + [fake_message.serialize()]
26+
)
27+
28+
# Retrieve the bot's response
29+
content_response = completion.choices[0].message.content
30+
31+
message_response = MessageModel(content=content_response, role=RoleEnum.ASSISTANT)
32+
33+
# Return the last assistant message and the updated context
34+
return message_response
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# Manages interactions with the Petals framework, enabling decentralized bot operations as described earlier.
2+
from .baseBot import BaseBot
3+
from app.model.dataModel import MessageModel, AgentModel, SessionModel, VectorStoreModel
4+
5+
6+
class PetalsBot(BaseBot):
7+
def ask(self,
8+
message: MessageModel,
9+
agent: AgentModel,
10+
session: SessionModel,
11+
vector_store_model: VectorStoreModel) -> MessageModel: # Interaction with Petals decentralized network
12+
pass # TODO
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# Interfaces with the Wenxin API (likely another AI or ML service), handling specific functionalities provided by this service.
2+
from .baseBot import BaseBot
3+
from app.model.dataModel import MessageModel, AgentModel, SessionModel, VectorStoreModel
4+
5+
6+
class WenxinBot(BaseBot):
7+
def ask(self,
8+
message: MessageModel,
9+
agent: AgentModel,
10+
session: SessionModel,
11+
vector_store_model: VectorStoreModel) -> MessageModel: # Call to Wenxin API
12+
pass # TODO

0 commit comments

Comments
 (0)