Browse Source

🔧 fix(xinference): update Document type to 'any' for flexibility

- Changed the type of `Document` in `XinRerankResponseDocument` from `string` to `any` to accommodate various data types.
- Updated the `RerankHandler` to handle `Document` as `any`, ensuring proper assignment based on its actual type.

These modifications enhance the handling of document data, allowing for greater versatility in response structures.
CaIon 10 tháng trước cách đây
mục cha
commit
038202b1f6
2 tập tin đã thay đổi với 11 bổ sung5 xóa
  1. 1 1
      relay/channel/xinference/dto.go
  2. 10 4
      relay/common_handler/rerank.go

+ 1 - 1
relay/channel/xinference/dto.go

@@ -1,7 +1,7 @@
 package xinference
 
 type XinRerankResponseDocument struct {
-	Document       string  `json:"document,omitempty"`
+	Document       any     `json:"document,omitempty"`
 	Index          int     `json:"index"`
 	RelevanceScore float64 `json:"relevance_score"`
 }

+ 10 - 4
relay/common_handler/rerank.go

@@ -38,10 +38,16 @@ func RerankHandler(c *gin.Context, info *relaycommon.RelayInfo, resp *http.Respo
 			}
 			if info.ReturnDocuments {
 				var document any
-				if result.Document == "" {
-					document = info.Documents[result.Index]
-				} else {
-					document = result.Document
+				if result.Document != nil {
+					if doc, ok := result.Document.(string); ok {
+						if doc == "" {
+							document = info.Documents[result.Index]
+						} else {
+							document = doc
+						}
+					} else {
+						document = result.Document
+					}
 				}
 				respResult.Document = document
 			}