From d9c842bba567326554c2af741fd8557212b5b614 Mon Sep 17 00:00:00 2001 From: narawat lamaiin Date: Fri, 25 Apr 2025 21:13:12 +0700 Subject: [PATCH] update --- src/interface.jl | 11 +++++++---- src/llmfunction.jl | 12 ++++++++---- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/src/interface.jl b/src/interface.jl index d24b72e..549cdab 100644 --- a/src/interface.jl +++ b/src/interface.jl @@ -230,8 +230,9 @@ function decisionMaker(state::T1, context, text2textInstructLLM::Function, ] # put in model format - prompt = GeneralUtils.formatLLMtext(_prompt; formatname="qwen") + prompt = GeneralUtils.formatLLMtext(_prompt, "granite3") response = text2textInstructLLM(prompt; llmkwargs=llmkwargs) + response = GeneralUtils.deFormatLLMtext(response, "granite3") # LLM tends to generate observation given that it is in the input response = @@ -448,12 +449,13 @@ function evaluator(state::T1, text2textInstructLLM::Function ] # put in model format - prompt = GeneralUtils.formatLLMtext(_prompt; formatname="qwen") + prompt = GeneralUtils.formatLLMtext(_prompt, "granite3") header = ["Trajectory_evaluation:", "Answer_evaluation:", "Accepted_as_answer:", "Score:", "Suggestion:"] dictkey = ["trajectory_evaluation", "answer_evaluation", "accepted_as_answer", "score", "suggestion"] response = text2textInstructLLM(prompt, modelsize="medium") + response = GeneralUtils.deFormatLLMtext(response, "granite3") # sometime LLM output something like **Comprehension**: which is not expected response = replace(response, "**"=>"") @@ -603,7 +605,7 @@ function reflector(config::T1, state::T2)::String where {T1<:AbstractDict, T2<:A ] # put in model format - prompt = GeneralUtils.formatLLMtext(_prompt; formatname="qwen") + prompt = GeneralUtils.formatLLMtext(_prompt, "granite3") externalService = config[:externalservice][:text2textinstruct] # apply LLM specific instruct format @@ -1176,10 +1178,11 @@ function generatequestion(state::T1, context, text2textInstructLLM::Function; ] # put in model format - prompt = GeneralUtils.formatLLMtext(_prompt; formatname="qwen") + prompt = GeneralUtils.formatLLMtext(_prompt, "granite3") try response = text2textInstructLLM(prompt, modelsize="medium") + response = GeneralUtils.deFormatLLMtext(response, "granite3") # check if response is valid q_number = count("Q", response) diff --git a/src/llmfunction.jl b/src/llmfunction.jl index 8f83cac..1777c88 100644 --- a/src/llmfunction.jl +++ b/src/llmfunction.jl @@ -406,9 +406,10 @@ function getdata_decisionMaker(state::Dict, context::Dict, text2textInstructLLM: ] # put in model format - prompt = GeneralUtils.formatLLMtext(_prompt; formatname="llama3instruct") + prompt = GeneralUtils.formatLLMtext(_prompt, "granite3") try response = text2textInstructLLM(prompt, modelsize="medium") + response = GeneralUtils.deFormatLLMtext(response, "granite3") header = ["Comprehension:", "Plan:", "Code:"] dictkey = ["comprehension", "plan", "code"] @@ -627,12 +628,13 @@ function extractContent_dataframe(df::DataFrame, text2textInstructLLM::Function, ] # put in model format - prompt = GeneralUtils.formatLLMtext(_prompt; formatname="llama3instruct") + prompt = GeneralUtils.formatLLMtext(_prompt, "granite3") header = ["About_resulting_table:", "Search_summary:"] dictkey = ["about_resulting_table", "search_summary"] for i in 1:5 response = text2textInstructLLM(prompt, modelsize="medium") + response = GeneralUtils.deFormatLLMtext(response, "granite3") kw = [] # use for loop and detect_keyword function to get the exact variation of each keyword in the text then push to kw list @@ -762,13 +764,14 @@ function getTableNameFromSQL(sql::T, text2textInstructLLM::Function)::Vector{Str ] # put in model format - prompt = GeneralUtils.formatLLMtext(_prompt; formatname="llama3instruct") + prompt = GeneralUtils.formatLLMtext(_prompt, "granite3") header = ["Table_name:"] dictkey = ["table_name"] for attempt in 1:5 try response = text2textInstructLLM(prompt, modelsize="medium") + response = GeneralUtils.deFormatLLMtext(response, "granite3") responsedict = GeneralUtils.textToDict(response, header; dictKey=dictkey, symbolkey=true) response = copy(JSON3.read(responsedict[:table_name])) @@ -914,7 +917,7 @@ function compareState(question::String, highValueStateList::Vector{T}, ] # put in model format - prompt = GeneralUtils.formatLLMtext(_prompt; formatname="llama3instruct") + prompt = GeneralUtils.formatLLMtext(_prompt, "granite3") header = ["Comparison:", "Rationale:", "Selected_response_number:"] dictkey = ["comparison", "rationale", "selected_response_number"] @@ -924,6 +927,7 @@ function compareState(question::String, highValueStateList::Vector{T}, # sometime LLM output something like **Comprehension**: which is not expected response = replace(response, "**"=>"") response = replace(response, "***"=>"") + response = GeneralUtils.deFormatLLMtext(response, "granite3") # make sure every header is in the response for i in header