| | |
| | | return &result, nil |
| | | } |
| | | |
| | | // ClassifyDocuments 分类文档 |
| | | func (c *Client) ClassifyDocuments(prompt string) (string, error) { |
| | | response, err := c.callLLMWithRetry(prompt) |
| | | if err != nil { |
| | | return "", err |
| | | } |
| | | |
| | | // 解析 JSON |
| | | var result []struct { |
| | | Path string `json:"path"` |
| | | Platform string `json:"platform"` |
| | | Device string `json:"device"` |
| | | ContentType string `json:"content_type"` |
| | | Confidence float64 `json:"confidence"` |
| | | } |
| | | |
| | | if err := parseJSON(response, &result); err != nil { |
| | | return "", fmt.Errorf("解析 LLM 响应失败: %w", err) |
| | | } |
| | | |
| | | // 转换回 JSON 字符串 |
| | | jsonBytes, err := json.Marshal(result) |
| | | if err != nil { |
| | | return "", err |
| | | } |
| | | |
| | | return string(jsonBytes), nil |
| | | } |
| | | |
| | | // ClassifyDocuments 分类文档 |
| | | |
| | | // callLLMWithRetry 带重试的 LLM 调用 |
| | | func (c *Client) callLLMWithRetry(prompt string) (string, error) { |
| | | // 第一次尝试 |