microsoft / microsoft/semantic-kernel-java
Java: Not possible to retrieve function calls and function results
Personne n'a encore pris cette issue.
- Langage dominant
- Java
- Étoiles
- 276
- Forks
- 56
- Merge moyen
- 17 h 45 min
- PR mergées (30 j)
- 4
Description
After running the following code, it is not possible to retrieve the function calls and function result messages so that they can be readded to the history.
InvocationContext invocationContext = new InvocationContext.Builder()
.withToolCallBehavior(ToolCallBehavior.allowAllKernelFunctions(true))
.build();
List<ChatMessageContent<?>> results = chat.getChatMessageContentsAsync(chatHistory, kernel, invocationContext)
.block();
In .NET, after invoking the chat completion model, the ChatHistory is mutated so that it includes all of the messages that were created (including function calls from the assistant role and function results as tool messages)
Because of this limitation, it is not possible for the AI to reuse context it was able to retrieve in previous function calls/results. For example, in the following chat, the AI used a function call to get the states of the lightbulbs. This included the IDs of the lights which are necessary for subsequent function calls.
Unfortunately, because the function result is lost, subsequent questions aren't able to use that information and the AI cannot complete them.
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez par l’appel Java à getChatMessageContentsAsync présenté dans l’issue et suivez la manière dont InvocationContext et ChatHistory gèrent les appels de fonction et leurs résultats. Comparez le comportement Java décrit avec le comportement de ChatHistory dans .NET ; le travail est terminé lorsque les messages d’appel de fonction et de résultat de fonction peuvent être récupérés ou ajoutés à nouveau afin que les questions ultérieures puissent réutiliser le contexte récupéré.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- java
- Domaine
- ai, api
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 38/100