static IEnumerable ToOpenAIChatRequestMessages()

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}'");
            }
        }
    }