Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
A
agentchat
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
李伟@五瓣科技
agentchat
Commits
ccab4bec
Commit
ccab4bec
authored
Jun 02, 2025
by
Wade
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
milvus idx ok
parent
19168956
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
66 additions
and
1 deletion
+66
-1
main.go
main.go
+66
-1
No files found.
main.go
View file @
ccab4bec
...
...
@@ -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`
))
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment