1- import os
21import uuid
32
4- from typing import Generic , Literal , TypeVar
3+ from typing import Any , Generic , Literal , TypeVar
54
65from pydantic import BaseModel , Field
76
@@ -37,7 +36,7 @@ class UserRegisterRequest(BaseRequest):
3736 interests : str | None = Field (None , description = "User interests" )
3837
3938
40- class GetMemoryRequest (BaseRequest ):
39+ class GetMemoryPlaygroundRequest (BaseRequest ):
4140 """Request model for getting memories."""
4241
4342 user_id : str = Field (..., description = "User ID" )
@@ -80,9 +79,20 @@ class ChatRequest(BaseRequest):
8079 None , description = "List of cube IDs user can write for multi-cube chat"
8180 )
8281 history : list [MessageDict ] | None = Field (None , description = "Chat history" )
82+ mode : SearchMode = Field (SearchMode .FAST , description = "search mode: fast, fine, or mixture" )
8383 internet_search : bool = Field (True , description = "Whether to use internet search" )
84- moscube : bool = Field (False , description = "Whether to use MemOSCube" )
84+ system_prompt : str | None = Field (None , description = "Base system prompt to use for chat" )
85+ top_k : int = Field (10 , description = "Number of results to return" )
86+ threshold : float = Field (0.5 , description = "Threshold for filtering references" )
8587 session_id : str | None = Field (None , description = "Session ID for soft-filtering memories" )
88+ include_preference : bool = Field (True , description = "Whether to handle preference memory" )
89+ pref_top_k : int = Field (6 , description = "Number of preference results to return" )
90+ filter : dict [str , Any ] | None = Field (None , description = "Filter for the memory" )
91+ model_name_or_path : str | None = Field (None , description = "Model name to use for chat" )
92+ max_tokens : int | None = Field (None , description = "Max tokens to generate" )
93+ temperature : float | None = Field (None , description = "Temperature for sampling" )
94+ top_p : float | None = Field (None , description = "Top-p (nucleus) sampling parameter" )
95+ add_message_on_answer : bool = Field (True , description = "Add dialogs to memory after chat" )
8696
8797
8898class ChatCompleteRequest (BaseRequest ):
@@ -93,11 +103,18 @@ class ChatCompleteRequest(BaseRequest):
93103 mem_cube_id : str | None = Field (None , description = "Cube ID to use for chat" )
94104 history : list [MessageDict ] | None = Field (None , description = "Chat history" )
95105 internet_search : bool = Field (False , description = "Whether to use internet search" )
96- moscube : bool = Field (False , description = "Whether to use MemOSCube" )
97- base_prompt : str | None = Field (None , description = "Base prompt to use for chat" )
106+ system_prompt : str | None = Field (None , description = "Base prompt to use for chat" )
98107 top_k : int = Field (10 , description = "Number of results to return" )
99108 threshold : float = Field (0.5 , description = "Threshold for filtering references" )
100109 session_id : str | None = Field (None , description = "Session ID for soft-filtering memories" )
110+ include_preference : bool = Field (True , description = "Whether to handle preference memory" )
111+ pref_top_k : int = Field (6 , description = "Number of preference results to return" )
112+ filter : dict [str , Any ] | None = Field (None , description = "Filter for the memory" )
113+ model_name_or_path : str | None = Field (None , description = "Model name to use for chat" )
114+ max_tokens : int | None = Field (None , description = "Max tokens to generate" )
115+ temperature : float | None = Field (None , description = "Temperature for sampling" )
116+ top_p : float | None = Field (None , description = "Top-p (nucleus) sampling parameter" )
117+ add_message_on_answer : bool = Field (True , description = "Add dialogs to memory after chat" )
101118
102119
103120class UserCreate (BaseRequest ):
@@ -129,6 +146,10 @@ class SuggestionResponse(BaseResponse[list]):
129146 data : dict [str , list [str ]] | None = Field (None , description = "Response data" )
130147
131148
149+ class AddStatusResponse (BaseResponse [dict ]):
150+ """Response model for add status operations."""
151+
152+
132153class ConfigResponse (BaseResponse [None ]):
133154 """Response model for configuration endpoint."""
134155
@@ -141,6 +162,14 @@ class ChatResponse(BaseResponse[str]):
141162 """Response model for chat operations."""
142163
143164
165+ class GetMemoryResponse (BaseResponse [dict ]):
166+ """Response model for getting memories."""
167+
168+
169+ class DeleteMemoryResponse (BaseResponse [dict ]):
170+ """Response model for deleting memories."""
171+
172+
144173class UserResponse (BaseResponse [dict ]):
145174 """Response model for user operations."""
146175
@@ -181,11 +210,8 @@ class APISearchRequest(BaseRequest):
181210 readable_cube_ids : list [str ] | None = Field (
182211 None , description = "List of cube IDs user can read for multi-cube search"
183212 )
184- mode : SearchMode = Field (
185- os .getenv ("SEARCH_MODE" , SearchMode .FAST ), description = "search mode: fast, fine, or mixture"
186- )
213+ mode : SearchMode = Field (SearchMode .FAST , description = "search mode: fast, fine, or mixture" )
187214 internet_search : bool = Field (False , description = "Whether to use internet search" )
188- moscube : bool = Field (False , description = "Whether to use MemOSCube" )
189215 top_k : int = Field (10 , description = "Number of results to return" )
190216 chat_history : list [MessageDict ] | None = Field (None , description = "Chat history" )
191217 session_id : str | None = Field (None , description = "Session ID for soft-filtering memories" )
@@ -194,6 +220,7 @@ class APISearchRequest(BaseRequest):
194220 )
195221 include_preference : bool = Field (True , description = "Whether to handle preference memory" )
196222 pref_top_k : int = Field (6 , description = "Number of preference results to return" )
223+ filter : dict [str , Any ] | None = Field (None , description = "Filter for the memory" )
197224
198225
199226class APIADDRequest (BaseRequest ):
@@ -213,8 +240,13 @@ class APIADDRequest(BaseRequest):
213240 operation : list [PermissionDict ] | None = Field (
214241 None , description = "operation ids for multi cubes"
215242 )
216- async_mode : Literal ["async" , "sync" ] | None = Field (
217- None , description = "Whether to add memory in async mode"
243+ async_mode : Literal ["async" , "sync" ] = Field (
244+ "async" , description = "Whether to add memory in async mode"
245+ )
246+ custom_tags : list [str ] | None = Field (None , description = "Custom tags for the memory" )
247+ info : dict [str , str ] | None = Field (None , description = "Additional information for the memory" )
248+ is_feedback : bool = Field (
249+ False , description = "Whether the user feedback in knowladge base service"
218250 )
219251
220252
@@ -232,13 +264,43 @@ class APIChatCompleteRequest(BaseRequest):
232264 )
233265 history : list [MessageDict ] | None = Field (None , description = "Chat history" )
234266 internet_search : bool = Field (False , description = "Whether to use internet search" )
235- moscube : bool = Field (True , description = "Whether to use MemOSCube " )
236- base_prompt : str | None = Field (None , description = "Base prompt to use for chat " )
267+ system_prompt : str | None = Field (None , description = "Base system prompt to use for chat " )
268+ mode : SearchMode = Field (SearchMode . FAST , description = "search mode: fast, fine, or mixture " )
237269 top_k : int = Field (10 , description = "Number of results to return" )
238270 threshold : float = Field (0.5 , description = "Threshold for filtering references" )
239271 session_id : str | None = Field (
240272 "default_session" , description = "Session ID for soft-filtering memories"
241273 )
274+ include_preference : bool = Field (True , description = "Whether to handle preference memory" )
275+ pref_top_k : int = Field (6 , description = "Number of preference results to return" )
276+ filter : dict [str , Any ] | None = Field (None , description = "Filter for the memory" )
277+ model_name_or_path : str | None = Field (None , description = "Model name to use for chat" )
278+ max_tokens : int | None = Field (None , description = "Max tokens to generate" )
279+ temperature : float | None = Field (None , description = "Temperature for sampling" )
280+ top_p : float | None = Field (None , description = "Top-p (nucleus) sampling parameter" )
281+ add_message_on_answer : bool = Field (True , description = "Add dialogs to memory after chat" )
282+
283+
284+ class AddStatusRequest (BaseRequest ):
285+ """Request model for checking add status."""
286+
287+ mem_cube_id : str = Field (..., description = "Cube ID" )
288+ user_id : str | None = Field (None , description = "User ID" )
289+ session_id : str | None = Field (None , description = "Session ID" )
290+
291+
292+ class GetMemoryRequest (BaseRequest ):
293+ """Request model for getting memories."""
294+
295+ mem_cube_id : str = Field (..., description = "Cube ID" )
296+ user_id : str | None = Field (None , description = "User ID" )
297+ include_preference : bool = Field (True , description = "Whether to handle preference memory" )
298+
299+
300+ class DeleteMemoryRequest (BaseRequest ):
301+ """Request model for deleting memories."""
302+
303+ memory_ids : list [str ] = Field (..., description = "Memory IDs" )
242304
243305
244306class SuggestionRequest (BaseRequest ):
0 commit comments