Liking cljdoc? Tell your friends :D

im.ttalk.agent.provider.common.response-parser

响应解析模块

提供统一的 LLM API 响应解析功能,支持 OpenAI 格式的响应。 将 OpenAI 原始响应转换为统一的内部格式。

使用示例:

(require '[im.ttalk.agent.provider.common.response-parser :as parser])

;; 提取工具调用 (parser/extract-tool-calls response)

;; 提取文本 (parser/extract-text response)

;; 标准化响应为统一格式 (parser/normalize-response response)

响应解析模块

提供统一的 LLM API 响应解析功能,支持 OpenAI 格式的响应。
将 OpenAI 原始响应转换为统一的内部格式。

使用示例:

(require '[im.ttalk.agent.provider.common.response-parser :as parser])

;; 提取工具调用
(parser/extract-tool-calls response)

;; 提取文本
(parser/extract-text response)

;; 标准化响应为统一格式
(parser/normalize-response response)
raw docstring

debug-responseclj

(debug-response provider-name response)
(debug-response provider-name response verbose)

打印响应调试信息

参数:

  • provider-name: Provider 名称字符串
  • response: API 响应
  • verbose: 是否详细信息(默认 false)
打印响应调试信息

参数:
- provider-name: Provider 名称字符串
- response:      API 响应
- verbose:       是否详细信息(默认 false)
sourceraw docstring

extract-textclj

(extract-text response)

从响应中提取文本内容

参数:

  • response: API 响应

返回: 字符串(空字符串如果无内容)

从响应中提取文本内容

参数:
- response: API 响应

返回:
字符串(空字符串如果无内容)
sourceraw docstring

extract-tool-callsclj

(extract-tool-calls response)

从响应中提取工具调用

参数:

  • response: API 响应

返回: 工具调用列表 [{:id "..." :name "字符串" :args {...}}] 或 nil

示例: (extract-tool-calls response) ; => [{:id "call_123" :name "calculator" :args {:expression "2+2"}}]

从响应中提取工具调用

参数:
- response: API 响应

返回:
工具调用列表 [{:id "..." :name "字符串" :args {...}}] 或 nil

示例:
(extract-tool-calls response)
; => [{:id "call_123" :name "calculator" :args {:expression "2+2"}}]
sourceraw docstring

format-response-summaryclj

(format-response-summary response)

格式化响应摘要(用于调试)

参数:

  • response: API 响应

返回: 格式化的字符串

格式化响应摘要(用于调试)

参数:
- response: API 响应

返回:
格式化的字符串
sourceraw docstring

get-finish-reasonclj

(get-finish-reason response)

获取完成原因

参数:

  • response: API 响应

返回: 字符串 ("stop", "length", "tool_calls", "content_filter")

获取完成原因

参数:
- response: API 响应

返回:
字符串 ("stop", "length", "tool_calls", "content_filter")
sourceraw docstring

get-messageclj

(get-message response)

获取响应中的消息

参数:

  • response: API 响应

返回: 消息 map {:role "..." :content "..." :tool_calls [...]}

获取响应中的消息

参数:
- response: API 响应

返回:
消息 map {:role "..." :content "..." :tool_calls [...]}
sourceraw docstring

get-usageclj

(get-usage response)

获取 token 使用情况

参数:

  • response: API 响应

返回: usage map {:prompt_tokens n :completion_tokens m :total_tokens t}

获取 token 使用情况

参数:
- response: API 响应

返回:
usage map {:prompt_tokens n :completion_tokens m :total_tokens t}
sourceraw docstring

has-tool-calls?clj

(has-tool-calls? response)

检查响应是否包含工具调用

参数:

  • response: API 响应

返回: boolean

检查响应是否包含工具调用

参数:
- response: API 响应

返回:
boolean
sourceraw docstring

normalize-responseclj

(normalize-response raw-response)

将原始 OpenAI API 响应标准化为统一格式

参数:

  • response: 原始 OpenAI API 响应

返回: 统一响应格式: {:text "..." :tool-calls [{:id :name :args}] :usage {:input-tokens n :output-tokens m :total-tokens t} :finish-reason :stop | :tool-use | :max-tokens | ... :model "..." :id "..." :provider :openai :raw-response {...}}

示例: (normalize-response raw-response) ; => {:text "你好" ; :tool-calls [] ; :usage {:input-tokens 100 :output-tokens 50 :total-tokens 150} ; :finish-reason :stop ; :provider :openai}

将原始 OpenAI API 响应标准化为统一格式

参数:
- response: 原始 OpenAI API 响应

返回:
统一响应格式:
{:text "..."
 :tool-calls [{:id :name :args}]
 :usage {:input-tokens n :output-tokens m :total-tokens t}
 :finish-reason :stop | :tool-use | :max-tokens | ...
 :model "..."
 :id "..."
 :provider :openai
 :raw-response {...}}

示例:
(normalize-response raw-response)
; => {:text "你好"
;     :tool-calls []
;     :usage {:input-tokens 100 :output-tokens 50 :total-tokens 150}
;     :finish-reason :stop
;     :provider :openai}
sourceraw docstring

valid-response?clj

(valid-response? response)

检查响应是否有效

参数:

  • response: API 响应

返回: boolean

检查响应是否有效

参数:
- response: API 响应

返回:
boolean
sourceraw docstring

cljdoc builds & hosts documentation for Clojure/Script libraries

Keyboard shortcuts
Ctrl+kJump to recent docs
←Move to previous article
→Move to next article
Ctrl+/Jump to the search field
× close