mirror of
https://github.com/Tencent/WeKnora.git
synced 2025-11-25 03:15:00 +08:00
feat: 新增多模态参数及处理逻辑,优化图片与删除操作
This commit is contained in:
@@ -64,7 +64,7 @@ func ExampleUsage() {
|
||||
"source": "local",
|
||||
"type": "document",
|
||||
}
|
||||
knowledge, err := apiClient.CreateKnowledgeFromFile(context.Background(), createdKB.ID, filePath, metadata)
|
||||
knowledge, err := apiClient.CreateKnowledgeFromFile(context.Background(), createdKB.ID, filePath, metadata, nil)
|
||||
if err != nil {
|
||||
fmt.Printf("Failed to upload knowledge file: %v\n", err)
|
||||
} else {
|
||||
|
||||
@@ -76,7 +76,7 @@ var ErrDuplicateFile = errors.New("file already exists")
|
||||
|
||||
// CreateKnowledgeFromFile creates a knowledge entry from a local file path
|
||||
func (c *Client) CreateKnowledgeFromFile(ctx context.Context,
|
||||
knowledgeBaseID string, filePath string, metadata map[string]string,
|
||||
knowledgeBaseID string, filePath string, metadata map[string]string, enableMultimodel *bool,
|
||||
) (*Knowledge, error) {
|
||||
// Open the local file
|
||||
file, err := os.Open(filePath)
|
||||
@@ -112,6 +112,13 @@ func (c *Client) CreateKnowledgeFromFile(ctx context.Context,
|
||||
return nil, fmt.Errorf("failed to copy file content: %w", err)
|
||||
}
|
||||
|
||||
// Add enable_multimodel field
|
||||
if enableMultimodel != nil {
|
||||
if err := writer.WriteField("enable_multimodel", strconv.FormatBool(*enableMultimodel)); err != nil {
|
||||
return nil, fmt.Errorf("failed to write enable_multimodel field: %w", err)
|
||||
}
|
||||
}
|
||||
|
||||
// Add metadata to the request if provided
|
||||
if metadata != nil {
|
||||
metadataBytes, err := json.Marshal(metadata)
|
||||
@@ -162,13 +169,15 @@ func (c *Client) CreateKnowledgeFromFile(ctx context.Context,
|
||||
}
|
||||
|
||||
// CreateKnowledgeFromURL creates a knowledge entry from a web URL
|
||||
func (c *Client) CreateKnowledgeFromURL(ctx context.Context, knowledgeBaseID string, url string) (*Knowledge, error) {
|
||||
func (c *Client) CreateKnowledgeFromURL(ctx context.Context, knowledgeBaseID string, url string, enableMultimodel *bool) (*Knowledge, error) {
|
||||
path := fmt.Sprintf("/api/v1/knowledge-bases/%s/knowledge/url", knowledgeBaseID)
|
||||
|
||||
reqBody := struct {
|
||||
URL string `json:"url"`
|
||||
URL string `json:"url"`
|
||||
EnableMultimodel *bool `json:"enable_multimodel"`
|
||||
}{
|
||||
URL: url,
|
||||
URL: url,
|
||||
EnableMultimodel: enableMultimodel,
|
||||
}
|
||||
|
||||
resp, err := c.doRequest(ctx, http.MethodPost, path, reqBody, nil)
|
||||
|
||||
Reference in New Issue
Block a user