MCPcopy Create free account
hub / github.com/castai/openwebui-content-sync / RemoveFileFromKnowledge

Method RemoveFileFromKnowledge

internal/openwebui/client.go:407–447  ·  view source on GitHub ↗

RemoveFileFromKnowledge removes a file from a knowledge source

(ctx context.Context, knowledgeID, fileID string)

Source from the content-addressed store, hash-verified

405
406// RemoveFileFromKnowledge removes a file from a knowledge source
407func (c *Client) RemoveFileFromKnowledge(ctx context.Context, knowledgeID, fileID string) error {
408 url := fmt.Sprintf("%s/api/v1/knowledge/%s/file/remove", c.baseURL, knowledgeID)
409
410 payload := map[string]string{
411 "file_id": fileID,
412 }
413
414 jsonData, err := json.Marshal(payload)
415 if err != nil {
416 return fmt.Errorf("failed to marshal payload: %w", err)
417 }
418
419 req, err := http.NewRequestWithContext(ctx, "POST", url, bytes.NewBuffer(jsonData))
420 if err != nil {
421 return fmt.Errorf("failed to create request: %w", err)
422 }
423
424 req.Header.Set("Content-Type", "application/json")
425 if c.apiKey != "" {
426 req.Header.Set("Authorization", "Bearer "+c.apiKey)
427 }
428
429 resp, err := c.client.Do(req)
430 if err != nil {
431 return fmt.Errorf("failed to send request: %w", err)
432 }
433 defer resp.Body.Close()
434
435 // Consider 404 as success - file already doesn't exist in knowledge base
436 if resp.StatusCode == http.StatusNotFound {
437 logrus.Debugf("File %s not found in knowledge %s (already removed or doesn't exist)", fileID, knowledgeID)
438 return nil
439 }
440
441 if resp.StatusCode != http.StatusOK && resp.StatusCode != http.StatusCreated {
442 body, _ := io.ReadAll(resp.Body)
443 return fmt.Errorf("remove file from knowledge failed with status %d: %s", resp.StatusCode, string(body))
444 }
445
446 return nil
447}
448
449// DeleteFile deletes a file from OpenWebUI
450func (c *Client) DeleteFile(ctx context.Context, fileID string) error {

Callers 1

Calls

no outgoing calls

Tested by 1