ソースを参照

fix: gemini model use some tools raise error (#9993)

tags/0.11.0
非法操作 1年前
コミット
12adcf8925
コミッターのメールアドレスに関連付けられたアカウントが存在しません
1個のファイルの変更26行の追加19行の削除
  1. 26
    19
      api/core/model_runtime/model_providers/google/llm/llm.py

+ 26
- 19
api/core/model_runtime/model_providers/google/llm/llm.py ファイルの表示

@@ -116,26 +116,33 @@ class GoogleLargeLanguageModel(LargeLanguageModel):
:param tools: tool messages
:return: glm tools
"""
return glm.Tool(
function_declarations=[
glm.FunctionDeclaration(
name=tool.name,
parameters=glm.Schema(
type=glm.Type.OBJECT,
properties={
key: {
"type_": value.get("type", "string").upper(),
"description": value.get("description", ""),
"enum": value.get("enum", []),
}
for key, value in tool.parameters.get("properties", {}).items()
},
required=tool.parameters.get("required", []),
),
function_declarations = []
for tool in tools:
properties = {}
for key, value in tool.parameters.get("properties", {}).items():
properties[key] = {
"type_": glm.Type.STRING,
"description": value.get("description", ""),
"enum": value.get("enum", []),
}

if properties:
parameters = glm.Schema(
type=glm.Type.OBJECT,
properties=properties,
required=tool.parameters.get("required", []),
)
for tool in tools
]
)
else:
parameters = None

function_declaration = glm.FunctionDeclaration(
name=tool.name,
parameters=parameters,
description=tool.description,
)
function_declarations.append(function_declaration)

return glm.Tool(function_declarations=function_declarations)

def validate_credentials(self, model: str, credentials: dict) -> None:
"""

読み込み中…
キャンセル
保存