- Updated the Vision function and associated handlers to accept a forceUses parameter, allowing explicit control over the use of external tools regardless of model capabilities. - Modified the Assistant's BuildContent method to set the AssistantID in the context for better file tracking. - Enhanced the applyCreateResponseOptions method to merge and prioritize Uses and ForceUses configurations from the createResponse. - Added comprehensive tests to validate the adjustment of Uses and ForceUses configurations through hooks, ensuring correct application in content processing.
39 lines
1.3 KiB
Go
39 lines
1.3 KiB
Go
package content
|
|
|
|
import (
|
|
"fmt"
|
|
"strings"
|
|
|
|
"github.com/yaoapp/gou/connector/openai"
|
|
agentContext "github.com/yaoapp/yao/agent/context"
|
|
)
|
|
|
|
// WordHandler handles Microsoft Word documents
|
|
type WordHandler struct{}
|
|
|
|
// CanHandle checks if this handler can handle the content type
|
|
func (h *WordHandler) CanHandle(contentType string, fileType FileType) bool {
|
|
return fileType == FileTypeWord ||
|
|
contentType == "application/vnd.openxmlformats-officedocument.wordprocessingml.document" ||
|
|
contentType == "application/msword" ||
|
|
strings.Contains(contentType, "word")
|
|
}
|
|
|
|
// Handle processes Word document content
|
|
func (h *WordHandler) Handle(ctx *agentContext.Context, info *Info, capabilities *openai.Capabilities, uses *agentContext.Uses, forceUses bool) (*Result, error) {
|
|
// TODO: Implement Word document handling
|
|
// 1. Extract text from .docx or .doc file
|
|
// 2. Preserve formatting information if needed
|
|
// 3. Return Result with extracted text
|
|
return nil, fmt.Errorf("not implemented")
|
|
}
|
|
|
|
// extractWordText extracts text from Word document
|
|
func extractWordText(data []byte, contentType string) (string, error) {
|
|
// TODO: Implement Word text extraction
|
|
// Handle both .doc (old format) and .docx (new format)
|
|
// Consider using libraries like:
|
|
// - github.com/unidoc/unioffice for .docx
|
|
// - Other libraries for .doc
|
|
return "", fmt.Errorf("not implemented")
|
|
}
|