Eai. Utils
(eai v0.1.3)
Copy Markdown
通用清洗、转换等无业务耦合的工具函数。
在任何需要序列化数据的出口(JSON 导出、日志记录、网络请求)之前,
均可 alias Eai.Utils 后调用 sanitize_value/1 进行防御性清洗,
确保所有嵌套结构中的二进制字段都是合法 UTF-8。
Summary
Functions
对整个消息列表(LLM history)做批量清洗,适合在入口/出口统一调用。
递归清洗任意嵌套结构,保证所有二进制字段都是合法 UTF-8 字符串。 无效字节会被替换为 "BASE64_DATA:" <> base64 编码。
Functions
对整个消息列表(LLM history)做批量清洗,适合在入口/出口统一调用。
示例
messages
|> Eai.Utils.sanitize_messages()
|> Jason.encode!()
递归清洗任意嵌套结构,保证所有二进制字段都是合法 UTF-8 字符串。 无效字节会被替换为 "BASE64_DATA:" <> base64 编码。
支持的类型:
binary— 检查 UTF-8 合法性,非法则 base64 编码list— 递归处理每个元素map— 递归处理键和值(含 struct 的 struct 键会被保留)tuple— 递归处理每个元素,返回同阶 tuple- 其他 — 原样返回(integer / float / atom / boolean / nil)
示例
iex> Eai.Utils.sanitize_value("hello")
"hello"
iex> Eai.Utils.sanitize_value(<<0xFF, 0xFE>>)
"BASE64_DATA://w=="
iex> Eai.Utils.sanitize_value(%{"key" => <<0xFF>>})
%{"key" => "BASE64_DATA:/w=="}
iex> Eai.Utils.sanitize_value([1, "ok", <<0xFE>>])
[1, "ok", "BASE64_DATA:/g=="]