Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
phsl
/
new-api
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
38d4c7b7
authored
Dec 25, 2024
by
Calcium-Ion
Committed by
GitHub
Dec 25, 2024
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #656 from Yan-Zero/main
fix: gemini function call
parents
6f9f7a0b
a6989dfb
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
34 additions
and
7 deletions
+34
-7
common/str.go
+1
-3
constant/finish_reason.go
+3
-0
relay/channel/gemini/dto.go
+30
-4
relay/channel/gemini/relay-gemini.go
+0
-0
No files found.
common/str.go
View file @
38d4c7b7
...
...
@@ -35,9 +35,7 @@ func StrToMap(str string) map[string]interface{} {
m
:=
make
(
map
[
string
]
interface
{})
err
:=
json
.
Unmarshal
([]
byte
(
str
),
&
m
)
if
err
!=
nil
{
return
map
[
string
]
interface
{}{
"result"
:
str
,
}
return
nil
}
return
m
}
...
...
constant/finish_reason.go
View file @
38d4c7b7
...
...
@@ -3,4 +3,7 @@ package constant
var
(
FinishReasonStop
=
"stop"
FinishReasonToolCalls
=
"tool_calls"
FinishReasonLength
=
"length"
FinishReasonFunctionCall
=
"function_call"
FinishReasonContentFilter
=
"content_filter"
)
relay/channel/gemini/dto.go
View file @
38d4c7b7
...
...
@@ -4,7 +4,7 @@ type GeminiChatRequest struct {
Contents
[]
GeminiChatContent
`json:"contents"`
SafetySettings
[]
GeminiChatSafetySettings
`json:"safety_settings,omitempty"`
GenerationConfig
GeminiChatGenerationConfig
`json:"generation_config,omitempty"`
Tools
[]
GeminiChatTool
s
`json:"tools,omitempty"`
Tools
[]
GeminiChatTool
`json:"tools,omitempty"`
SystemInstructions
*
GeminiChatContent
`json:"system_instruction,omitempty"`
}
...
...
@@ -18,9 +18,29 @@ type FunctionCall struct {
Arguments
any
`json:"args"`
}
type
GeminiFunctionResponseContent
struct
{
Name
string
`json:"name"`
Content
any
`json:"content"`
}
type
FunctionResponse
struct
{
Name
string
`json:"name"`
Response
any
`json:"response"`
Response
GeminiFunctionResponseContent
`json:"response"`
}
type
GeminiPartExecutableCode
struct
{
Language
string
`json:"language,omitempty"`
Code
string
`json:"code,omitempty"`
}
type
GeminiPartCodeExecutionResult
struct
{
Outcome
string
`json:"outcome,omitempty"`
Output
string
`json:"output,omitempty"`
}
type
GeminiFileData
struct
{
MimeType
string
`json:"mimeType,omitempty"`
FileUri
string
`json:"fileUri,omitempty"`
}
type
GeminiPart
struct
{
...
...
@@ -28,6 +48,9 @@ type GeminiPart struct {
InlineData
*
GeminiInlineData
`json:"inlineData,omitempty"`
FunctionCall
*
FunctionCall
`json:"functionCall,omitempty"`
FunctionResponse
*
FunctionResponse
`json:"functionResponse,omitempty"`
FileData
*
GeminiFileData
`json:"fileData,omitempty"`
ExecutableCode
*
GeminiPartExecutableCode
`json:"executableCode,omitempty"`
CodeExecutionResult
*
GeminiPartCodeExecutionResult
`json:"codeExecutionResult,omitempty"`
}
type
GeminiChatContent
struct
{
...
...
@@ -40,8 +63,10 @@ type GeminiChatSafetySettings struct {
Threshold
string
`json:"threshold"`
}
type
GeminiChatTool
s
struct
{
type
GeminiChatTool
struct
{
GoogleSearch
any
`json:"googleSearch,omitempty"`
GoogleSearchRetrieval
any
`json:"googleSearchRetrieval,omitempty"`
CodeExecution
any
`json:"codeExecution,omitempty"`
FunctionDeclarations
any
`json:"functionDeclarations,omitempty"`
}
...
...
@@ -54,11 +79,12 @@ type GeminiChatGenerationConfig struct {
StopSequences
[]
string
`json:"stopSequences,omitempty"`
ResponseMimeType
string
`json:"responseMimeType,omitempty"`
ResponseSchema
any
`json:"responseSchema,omitempty"`
Seed
int64
`json:"seed,omitempty"`
}
type
GeminiChatCandidate
struct
{
Content
GeminiChatContent
`json:"content"`
FinishReason
string
`json:"finishReason"`
FinishReason
*
string
`json:"finishReason"`
Index
int64
`json:"index"`
SafetyRatings
[]
GeminiChatSafetyRating
`json:"safetyRatings"`
}
...
...
relay/channel/gemini/relay-gemini.go
View file @
38d4c7b7
This diff is collapsed.
Click to expand it.
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