Commit ccab4bec authored by Wade's avatar Wade

milvus idx ok

parent 19168956
......@@ -10,7 +10,10 @@ import (
"github.com/firebase/genkit/go/ai"
"github.com/firebase/genkit/go/genkit"
"github.com/wade-liwei/agentchat/plugins/deepseek"
"github.com/wade-liwei/agentchat/plugins/milvus"
"github.com/firebase/genkit/go/plugins/evaluators"
"github.com/firebase/genkit/go/plugins/googlegenai"
"github.com/firebase/genkit/go/plugins/server"
httpSwagger "github.com/swaggo/http-swagger"
......@@ -26,6 +29,13 @@ type Input struct {
UserID string `json:"user_id,omitempty"`
}
// DocumentInput 结构体用于文档索引接口
type DocumentInput struct {
Content string `json:"content"`
Metadata map[string]interface{} `json:"metadata,omitempty"`
}
func main() {
ctx := context.Background()
......@@ -34,7 +44,22 @@ func main() {
APIKey: "sk-9f70df871a7c4b8aa566a3c7a0603706",
}
g, err := genkit.Init(ctx, genkit.WithPlugins(&ds))
mil := milvus.Milvus{
Addr: "54.92.111.204:19530", // Milvus gRPC endpoint
}
metrics := []evaluators.MetricConfig{
{
MetricType: evaluators.EvaluatorDeepEqual,
},
{
MetricType: evaluators.EvaluatorRegex,
},
{
MetricType: evaluators.EvaluatorJsonata,
},
}
g, err := genkit.Init(ctx, genkit.WithPlugins(&ds,&mil,&googlegenai.GoogleAI{APIKey:"AIzaSyCoYBOmnwRWlH_-nT25lpn8pMg3T18Q0uI"}, &evaluators.GenkitEval{Metrics: metrics}))
if err != nil {
log.Fatal(err)
}
......@@ -46,6 +71,44 @@ func main() {
},
nil)
embedder := googlegenai.GoogleAIEmbedder(g, "embedding-001")
if embedder == nil {
log.Fatal("embedder is not defined")
}
// Configure collection
cfg := milvus.CollectionConfig{
Collection: "useridx",
Dimension: 768, // Match mock embedder dimension
Embedder: embedder,
EmbedderOptions: map[string]interface{}{}, // Explicitly set as map
}
// Define indexer and retriever
indexer, retriever, err := milvus.DefineIndexerAndRetriever(ctx, g, cfg)
if err != nil {
log.Fatalf("DefineIndexerAndRetriever failed: %v", err)
}
_ = retriever
// 定义文档索引流
genkit.DefineFlow(g, "indexDocuments", func(ctx context.Context, input *DocumentInput) (string, error) {
doc := ai.DocumentFromText(input.Content, input.Metadata)
err := indexer.Index(ctx, &ai.IndexerRequest{
Documents:[]*ai.Document{doc},
})
if err != nil {
return "", fmt.Errorf("index document: %w", err)
}
return "Document indexed successfully", nil
})
// Define a simple flow that generates jokes about a given topic
genkit.DefineFlow(g, "chat", func(ctx context.Context, input *Input) (string, error) {
......@@ -57,6 +120,8 @@ func main() {
fmt.Println("input-------------------------------",string(inputAsJson))
resp, err := genkit.Generate(ctx, g,
ai.WithModel(m),
ai.WithPrompt(`Tell silly short jokes about apple`))
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment