in src/WebJobs.Extensions.OpenAI/Assistants/AssistantService.cs [500:529]
static IEnumerable<ChatMessage> ToOpenAIChatRequestMessages(IEnumerable<ChatMessageTableEntity> entities)
{
foreach (ChatMessageTableEntity entity in entities)
{
switch (entity.Role.ToLowerInvariant())
{
case "user":
yield return new UserChatMessage(entity.Content);
break;
case "assistant":
if (entity.ToolCalls != null && entity.ToolCalls.Any())
{
yield return new AssistantChatMessage(entity.ToolCalls);
}
else
{
yield return new AssistantChatMessage(entity.Content);
}
break;
case "system":
yield return new SystemChatMessage(entity.Content);
break;
case "tool":
yield return new ToolChatMessage(toolCallId: entity.Name, entity.Content);
break;
default:
throw new InvalidOperationException($"Unknown chat role '{entity.Role}'");
}
}
}