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
5908072a
Commit
5908072a
authored
Jun 08, 2025
by
Wade
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ollama
parent
4b2ea618
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
56 additions
and
3 deletions
+56
-3
ollama.go
plugins/ollama/ollama.go
+3
-3
util.go
util/util.go
+53
-0
No files found.
plugins/ollama/ollama.go
View file @
5908072a
...
@@ -33,8 +33,8 @@ import (
...
@@ -33,8 +33,8 @@ import (
"github.com/firebase/genkit/go/ai"
"github.com/firebase/genkit/go/ai"
"github.com/firebase/genkit/go/genkit"
"github.com/firebase/genkit/go/genkit"
"github.com/firebase/genkit/go/plugins/internal/uri"
"github.com/rs/zerolog/log"
"github.com/rs/zerolog/log"
"github.com/wade-liwei/agentchat/util"
)
)
const
provider
=
"ollama"
const
provider
=
"ollama"
...
@@ -447,7 +447,7 @@ func convertParts(role ai.Role, parts []*ai.Part) (*ollamaMessage, error) {
...
@@ -447,7 +447,7 @@ func convertParts(role ai.Role, parts []*ai.Part) (*ollamaMessage, error) {
if
part
.
IsText
()
{
if
part
.
IsText
()
{
contentBuilder
.
WriteString
(
part
.
Text
)
contentBuilder
.
WriteString
(
part
.
Text
)
}
else
if
part
.
IsMedia
()
{
}
else
if
part
.
IsMedia
()
{
_
,
data
,
err
:=
u
ri
.
Data
(
part
)
_
,
data
,
err
:=
u
til
.
Data
(
part
)
if
err
!=
nil
{
if
err
!=
nil
{
return
nil
,
fmt
.
Errorf
(
"failed to extract media data: %v"
,
err
)
return
nil
,
fmt
.
Errorf
(
"failed to extract media data: %v"
,
err
)
}
}
...
@@ -610,7 +610,7 @@ func concatImages(input *ai.ModelRequest, roleFilter []ai.Role) ([]string, error
...
@@ -610,7 +610,7 @@ func concatImages(input *ai.ModelRequest, roleFilter []ai.Role) ([]string, error
}
}
// Get the media type and data
// Get the media type and data
mediaType
,
data
,
err
:=
u
ri
.
Data
(
part
)
mediaType
,
data
,
err
:=
u
til
.
Data
(
part
)
if
err
!=
nil
{
if
err
!=
nil
{
return
nil
,
fmt
.
Errorf
(
"failed to extract image data: %v"
,
err
)
return
nil
,
fmt
.
Errorf
(
"failed to extract image data: %v"
,
err
)
}
}
...
...
util/util.go
View file @
5908072a
package
util
package
util
import
(
"encoding/base64"
"errors"
"strings"
"github.com/firebase/genkit/go/ai"
)
const
UserNameKey
=
"username"
const
UserNameKey
=
"username"
const
UserIdKey
=
"user_id"
const
UserIdKey
=
"user_id"
// Data returns the content type and bytes of the media part.
func
Data
(
p
*
ai
.
Part
)
(
string
,
[]
byte
,
error
)
{
if
!
p
.
IsMedia
()
&&
!
p
.
IsData
()
{
return
""
,
nil
,
errors
.
New
(
"not a media part"
)
}
uri
:=
p
.
Text
if
strings
.
HasPrefix
(
uri
,
"gs://"
)
||
strings
.
HasPrefix
(
uri
,
"http"
)
{
if
p
.
ContentType
==
""
{
return
""
,
nil
,
errors
.
New
(
"must supply contentType when using media from gs:// or http(s):// URLs"
)
}
return
p
.
ContentType
,
[]
byte
(
uri
),
nil
}
if
contents
,
isData
:=
strings
.
CutPrefix
(
uri
,
"data:"
);
isData
{
prefix
,
data
,
found
:=
strings
.
Cut
(
contents
,
","
)
if
!
found
{
return
""
,
nil
,
errors
.
New
(
"failed to parse data URI: missing comma"
)
}
var
dataBytes
[]
byte
if
p
,
isBase64
:=
strings
.
CutSuffix
(
prefix
,
";base64"
);
isBase64
{
prefix
=
p
var
err
error
dataBytes
,
err
=
base64
.
StdEncoding
.
DecodeString
(
data
)
if
err
!=
nil
{
return
""
,
nil
,
err
}
}
else
{
dataBytes
=
[]
byte
(
data
)
}
contentType
:=
p
.
ContentType
if
contentType
==
""
{
contentType
=
prefix
}
return
contentType
,
dataBytes
,
nil
}
return
""
,
nil
,
errors
.
New
(
"could not convert media part to genai part: missing file data"
)
}
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