This commit is contained in:
2026-08-06 19:30:59 +07:00
parent ebd79aa686
commit 51fca0aa8c
2 changed files with 39 additions and 52 deletions
+1 -1
View File
@@ -179,7 +179,7 @@ function _process_message(agent::yiemAgent)::assistantMessage
# call agent.prepareContext() # call agent.prepareContext()
preparedContext = agent.prepareContext(agent._state) preparedContext = agent.prepareContext(agent._state)
#WORKING Call agent.formatMsgForLLM(agent._state) to format for LLM # Call agent.formatMsgForLLM(agent._state) to format for LLM
formatted_messages = agent.formatMsgForLLM(preparedContext) formatted_messages = agent.formatMsgForLLM(preparedContext)
# Call llmCall() (blocking — the task waits here) # Call llmCall() (blocking — the task waits here)
+39 -52
View File
@@ -115,60 +115,47 @@ end
""" convert preparedcontext into openai message format ready to be used by LLM """ convert preparedcontext into openai message format ready to be used by LLM
""" """
function formatMsgForLLM(messages::Vector{agentMessage})::Vector{Dict{String, Any}} function formatMsgForLLM(preparedContext::Vector{agentMessage})::Dict{String, Any}
""" openai message format example
openai_messages = Vector{Dict{String, Any}}() msg = Dict(
"model" => "gemma-4-E4B-it-UD-Q4_K_XL",
for msg in messages "messages" => [
if msg isa userMessage Dict(
push!(openai_messages, _toOpenAIUserMsg(msg)) "role" => "system",
elseif msg isa assistantMessage "content" => [
push!(openai_messages, _toOpenAIAssistantMsg(msg)) Dict("type" => "text", "text" => systemmsg),
elseif msg isa toolResultMessage ]
push!(openai_messages, _toOpenAIToolResultMsg(msg)) ),
end Dict(
end
return openai_messages
end
function _toOpenAIUserMsg(msg::userMessage)::Dict{String, Any}
return Dict{String, Any}(
"role" => "user", "role" => "user",
"content" => _toOpenAIBlocks(msg.content), "content" => [
) Dict("type" => "text", "text" => "Do you have something similar to the one in the image?"),
end Dict(
function _toOpenAIAssistantMsg(msg::assistantMessage)::Dict{String, Any}
return Dict{String, Any}(
"role" => "assistant",
"content" => _toOpenAIBlocks(msg.content),
)
end
function _toOpenAIToolResultMsg(msg::toolResultMessage)::Dict{String, Any}
return Dict{String, Any}(
"role" => "tool",
"tool_call_id" => msg.toolCallId,
"name" => msg.toolName,
"content" => _toOpenAIBlocks(msg.content),
)
end
function _toOpenAIBlocks(contents::Vector{messageContent})::Vector{Dict{String, Any}}
blocks = Vector{Dict{String, Any}}()
for c in contents
if c isa textContent
push!(blocks, Dict("type" => "text", "text" => c.text))
elseif c isa imageContent
data_uri = "data:$(c.mimeType);base64,$(c.data)"
push!(blocks, Dict(
"type" => "image_url", "type" => "image_url",
"image_url" => Dict("url" => data_uri), "image_url" => Dict("url" => data1_uri)
)) )
end ]
end ),
return blocks Dict(
"role" => "assistant",
"content" => [
Dict("type" => "text", "text" => "let me check."),
]
),
Dict(
"role" => "toolResult",
"content" => [
Dict("type" => "text", "text" => "name: Chateau Montelena ..."),
]
),
],
"temperature" => 0.7
)
"""
# convert various messages to openai message format
return openai_message
end end