microsoft / microsoft/semantic-kernel-java
Bug: SK runs his self-made function by ignoring the auto-invoke function config
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- Java
- Estrellas
- 276
- Forks
- 56
- Merge medio
- 17 h 45 min
- PR fusionados (30 d)
- 4
Descripción
Describe the bug
I set the toolcallbehavior of allowOnlyKernelFunctions as true, and passed the functions to the kernel
but the kernel make a functiontoolcall by himself and just invoke it.
To Reproduce
Steps to reproduce the behavior:
List<KernelFunction<?>> functions = kernel.getPlugins().stream()
.map(KernelPlugin::getFunctions)
.map(Map::values)
.flatMap(Collection::stream)
.toList();
FunctionResult<String> preResult = kernel
.invokeAsync(function)
.withToolCallBehavior(ToolCallBehavior.allowOnlyKernelFunctions(true, functions))
.withArguments(
KernelFunctionArguments.builder()
.withInput(userInput)
.withVariable("metadata", metadata)
.build())
.withResultType(ContextVariableTypes.getGlobalVariableTypeForClass(String.class))
.block(); // occur exception here, for invoke a self-make function
Expected behavior
Only invoke the passed functions.
Screenshots
Maven
- Version: 3.3.9
- Dependencies: 1.4.3
Platform
- IDE: IDEA
- JDK version: 17
Additional context
Excption: com.azure.core.exception.HttpResponseException: Status code 400, "{"error":{"message":"Invalid 'messages[1].tool_calls[1].function.name': string does not match pattern. Expected a string that matches the pattern '^[a-zA-Z0-9_-]+$'.","type":"invalid_request_error","code":"invalid_value","param":"messages[1].tool_calls[1].function.name"}}"
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Comienza reproduciendo el ejemplo de Java en torno a kernel.invokeAsync(function) y ToolCallBehavior.allowOnlyKernelFunctions(true, functions) con las versiones indicadas. Inspecciona cómo se gestionan las funciones proporcionadas antes de enviar la llamada a la herramienta; se considerará terminado cuando solo se invoquen las funciones del kernel proporcionadas y ya no se genere la solicitud de nombre de función no válido indicada.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- java
- Área
- backend
- Tipo de issue
- Error
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 35/100