Skip to content

Commit 5b04309

Browse files
committed
feat(arkitect): responses
1 parent 20b525c commit 5b04309

File tree

5 files changed

+15
-17
lines changed

5 files changed

+15
-17
lines changed

arkitect/core/component/memory/base_memory_service.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ def content(self) -> str:
4040

4141
class BaseMemoryService(ABC):
4242
@abstractmethod
43-
async def add_or_update_memory(
43+
async def update_memory(
4444
self,
4545
user_id: str,
4646
new_messages: list[ArkMessage | dict | Response | ChatCompletionMessage],

arkitect/core/component/memory/in_memory_memory_service.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
Memory,
2727
SearchMemoryResponse,
2828
)
29-
from arkitect.core.component.memory.utils import format_ark_message_as_string
29+
from arkitect.core.component.memory.utils import format_message_as_string
3030
from arkitect.types.llm.model import ArkMessage
3131
from arkitect.utils.common import Singleton
3232

@@ -53,7 +53,7 @@ def __init__(
5353
self._llm = AsyncArk()
5454

5555
@override
56-
async def add_or_update_memory(
56+
async def update_memory(
5757
self,
5858
user_id: str,
5959
new_messages: list[ArkMessage | dict | Response | ChatCompletionMessage],
@@ -86,7 +86,7 @@ async def search_memory(
8686
memories = self.memory[user_id]
8787
results = "用户过去的交互记录\n\n"
8888
for memory in memories:
89-
content = format_ark_message_as_string(memory)
89+
content = format_message_as_string(memory)
9090
results += content
9191
summary = await self._llm.chat.completions.create(
9292
model=self.default_search_model,

arkitect/core/component/memory/mem0_memory_service.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
Memory,
3535
SearchMemoryResponse,
3636
)
37-
from arkitect.core.component.memory.utils import format_ark_message_as_dict
37+
from arkitect.core.component.memory.utils import format_message_as_dict
3838
from arkitect.telemetry.logger import ERROR, INFO
3939
from arkitect.types.llm.model import ArkMessage
4040
from arkitect.utils.common import Singleton
@@ -75,7 +75,7 @@ def __init__(self, config: Mem0Config = default_ark_config) -> None:
7575
self._task_queue: asyncio.Queue = asyncio.Queue()
7676

7777
@override
78-
async def add_or_update_memory(
78+
async def update_memory(
7979
self,
8080
user_id: str,
8181
new_messages: list[ArkMessage | dict | Response | ChatCompletionMessage],
@@ -84,7 +84,7 @@ async def add_or_update_memory(
8484
) -> None:
8585
conversation = []
8686
for item in new_messages:
87-
conversation.append(format_ark_message_as_dict(item))
87+
conversation.append(format_message_as_dict(item))
8888
if blocking:
8989
await self._add_memory(conversation, user_id)
9090
else:

arkitect/core/component/memory/utils.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ def _ark_message_to_string(messages: list[ArkMessage | dict]) -> str:
3030
return content
3131

3232

33-
def format_ark_message_as_string(
33+
def format_message_as_string(
3434
message: ArkMessage | dict | Response | ChatCompletionMessage,
3535
) -> str:
3636
if isinstance(message, ArkMessage):
@@ -45,7 +45,7 @@ def format_ark_message_as_string(
4545
raise ValueError("Invalid message type")
4646

4747

48-
def format_ark_message_as_dict(
48+
def format_message_as_dict(
4949
message: ArkMessage | dict | Response | ChatCompletionMessage,
5050
) -> dict:
5151
if isinstance(message, ArkMessage):

examples/memory_service/responses_with_memory/responses_client.py

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,10 @@
55
from openai.types.responses.response_input_param import ResponseInputParam
66
from openai.types.responses.response_stream_event import ResponseCompletedEvent
77

8-
# from arkitect.core.component.memory import (
9-
# Mem0MemoryService as MemoryService,
10-
# ) # InMemoryMemoryServiceSingleton,; InMemoryMemoryService as MemoryService,
11-
# from arkitect.core.component.memory import Mem0MemoryServiceSingleton
8+
129
from arkitect.core.component.memory.base_memory_service import BaseMemoryService
1310
from arkitect.types.llm.model import ArkMessage
11+
from arkitect.telemetry.logger import INFO
1412

1513

1614
class MemoryUpdateBehaviour(str, Enum):
@@ -77,7 +75,7 @@ async def chat(
7775
previous_response_id if previous_response_id else NOT_GIVEN
7876
),
7977
tools=[{"type": "web_search_preview"}] if use_tool else None,
80-
instructions=await self.get_instructions(user_id=user_id),
78+
instructions=await self.get_user_profile(user_id=user_id),
8179
)
8280
print("\n--- Streaming Response Chunk Details ---")
8381
last_chunk = None
@@ -93,7 +91,7 @@ async def chat(
9391

9492
if memory_update_behavior != MemoryUpdateBehaviour.NO_AUTO_UPDATE:
9593
messages.append(last_chunk.response)
96-
await self.memory_service.add_or_update_memory(
94+
await self.memory_service.update_memory(
9795
user_id=user_id,
9896
new_messages=messages,
9997
blocking=(
@@ -103,11 +101,11 @@ async def chat(
103101
),
104102
)
105103
else:
106-
print("No memory update")
104+
INFO("No memory update")
107105
print("--- End of Streaming Response ---")
108106
return
109107

110-
async def get_instructions(self, user_id: str) -> str:
108+
async def get_user_profile(self, user_id: str) -> str:
111109
memory = await self.memory_service.search_memory(
112110
user_id, query="Details of room preferences for this user."
113111
)

0 commit comments

Comments
 (0)