Feature/memory perceptual (#48)

* perf(workflow): pass JSON data to HTTP node as a string

* perf(prompt_opt): simplify log output

* feat(memory): add perceptual memory page API and related database schema

* perf(log): clean up API exception log output

* perf(memory): simplify perceptual memory timeline response by removing metadata
This commit is contained in:
Eternity
2026-01-07 16:00:22 +08:00
committed by GitHub
parent 957f8f83ff
commit c52b360068
8 changed files with 758 additions and 4 deletions

View File

@@ -73,8 +73,10 @@ class HttpContentTypeConfig(BaseModel):
content_type = info.data.get("content_type")
if content_type == HttpContentType.FROM_DATA and not isinstance(v, HttpFormData):
raise ValueError("When content_type is 'form-data', data must be of type HttpFormData")
elif content_type in [HttpContentType.JSON, HttpContentType.WWW_FORM] and not isinstance(v, dict):
raise ValueError("When content_type is JSON or x-www-form-urlencoded, data must be a object")
elif content_type in [HttpContentType.JSON] and not isinstance(v, str):
raise ValueError("When content_type is JSON, data must be of type str")
elif content_type in [HttpContentType.WWW_FORM] and not isinstance(v, dict):
raise ValueError("When content_type is x-www-form-urlencoded, data must be a object")
elif content_type in [HttpContentType.RAW, HttpContentType.BINARY] and not isinstance(v, str):
raise ValueError("When content_type is raw/binary, data must be a string (File descriptor)")
return v

View File

@@ -120,7 +120,7 @@ class HttpRequestNode(BaseNode):
return {}
case HttpContentType.JSON:
content["json"] = json.loads(self._render_template(
json.dumps(self.typed_config.body.data), state
self.typed_config.body.data, state
))
case HttpContentType.FROM_DATA:
data = {}