Merge pull request 'v0.6.0-output_text_image' (#21) from v0.6.0-output_text_image into main

Reviewed-on: #21
This commit was merged in pull request #21.
This commit is contained in:
ton
2026-07-15 11:48:20 +00:00
6 changed files with 39 additions and 37 deletions
+5 -5
View File
@@ -2,7 +2,7 @@
julia_version = "1.12.6" julia_version = "1.12.6"
manifest_format = "2.0" manifest_format = "2.0"
project_hash = "76bd6c852fad3452022f32202b19c4689be8e912" project_hash = "a5128932115e2d3aa9658af105ac712db061d523"
[[deps.Accessors]] [[deps.Accessors]]
deps = ["CompositionsBase", "ConstructionBase", "Dates", "InverseFunctions", "MacroTools"] deps = ["CompositionsBase", "ConstructionBase", "Dates", "InverseFunctions", "MacroTools"]
@@ -290,11 +290,11 @@ version = "1.1.0"
[[deps.GeneralUtils]] [[deps.GeneralUtils]]
deps = ["CSV", "DataFrames", "DataStructures", "Dates", "Distributions", "Graphs", "HTTP", "JSON", "LibPQ", "NATS", "PrettyPrinting", "Random", "Revise", "SHA", "StringDistances", "UUIDs"] deps = ["CSV", "DataFrames", "DataStructures", "Dates", "Distributions", "Graphs", "HTTP", "JSON", "LibPQ", "NATS", "PrettyPrinting", "Random", "Revise", "SHA", "StringDistances", "UUIDs"]
git-tree-sha1 = "aa695d21f155567524e7329fb7b96d8a9d0eba86" git-tree-sha1 = "a75a088ee8e5faf10f554ca00748e0e6ca58d1ca"
repo-rev = "main" repo-rev = "main"
repo-url = "https://git.yiem.cc/ton/GeneralUtils" repo-url = "https://git.yiem.cc/ton/GeneralUtils"
uuid = "c6c72f09-b708-4ac8-ac7c-2084d70108fe" uuid = "c6c72f09-b708-4ac8-ac7c-2084d70108fe"
version = "0.5.0" version = "0.5.1"
[[deps.Graphs]] [[deps.Graphs]]
deps = ["ArnoldiMethod", "DataStructures", "Inflate", "LinearAlgebra", "Random", "SimpleTraits", "SparseArrays", "Statistics"] deps = ["ArnoldiMethod", "DataStructures", "Inflate", "LinearAlgebra", "Random", "SimpleTraits", "SparseArrays", "Statistics"]
@@ -1047,10 +1047,10 @@ uuid = "76eceee3-57b5-4d4a-8e66-0e911cebbf60"
version = "1.6.1" version = "1.6.1"
[[deps.YiemAgent]] [[deps.YiemAgent]]
deps = ["CSV", "DataFrames", "DataStructures", "Dates", "GeneralUtils", "HTTP", "JSON", "LLMMCTS", "LibPQ", "NATS", "PrettyPrinting", "Random", "Revise", "Serialization", "URIs", "UUIDs"] deps = ["CSV", "DataFrames", "DataStructures", "Dates", "HTTP", "JSON", "LLMMCTS", "LibPQ", "NATS", "PrettyPrinting", "Random", "Revise", "SQLLLM", "Serialization", "URIs", "UUIDs"]
path = "." path = "."
uuid = "e012c34b-7f78-48e0-971c-7abb83b6f0a2" uuid = "e012c34b-7f78-48e0-971c-7abb83b6f0a2"
version = "0.5.0" version = "0.6.4"
[[deps.Zlib_jll]] [[deps.Zlib_jll]]
deps = ["Libdl"] deps = ["Libdl"]
+1 -1
View File
@@ -25,7 +25,7 @@ UUIDs = "cf7118a7-6976-5b1a-9a39-7adc72f591a4"
[compat] [compat]
CSV = "0.10.15" CSV = "0.10.15"
DataFrames = "1.7.0" DataFrames = "1.7.0"
GeneralUtils = "0.5.0" GeneralUtils = "0.5.1"
HTTP = "2.4.0" HTTP = "2.4.0"
JSON = "1.6.1" JSON = "1.6.1"
LLMMCTS = "0.1.5" LLMMCTS = "0.1.5"
+28 -13
View File
@@ -1,13 +1,28 @@
"""
CREATE TABLE "public"."wine" (
"wine_id" uuid DEFAULT gen_random_uuid() NOT NULL,
d = Dict( "seo_name" character varying(128) NOT NULL,
"hello"=> 555, "wine_name" character varying(128) NOT NULL,
"world"=> Dict( "winery" character varying(128) NOT NULL,
"name"=> "ton" "vintage" integer NOT NULL,
) "region" character varying(128) NOT NULL,
) "country" character varying(128) NOT NULL,
"wine_type" character varying(128) NOT NULL,
x = 55 "grape" character varying(128) NOT NULL,
"serving_temperature" character varying(128) NOT NULL,
@info "YiemAgent think() 1 " d x @__LINE__ "intensity" integer NULL,
"sweetness" integer NULL,
"tannin" integer NULL,
"acidity" integer NULL,
"fizziness" integer NULL,
"tasting_notes" text NULL,
"image_url" jsonb NULL,
"manufacturer_sku" text NULL,
"note" text NULL,
"other_attributes" jsonb NULL,
"created_time" timestamp with time zone DEFAULT CURRENT_TIMESTAMP NULL,
"updated_time" timestamp with time zone DEFAULT CURRENT_TIMESTAMP NULL,
"description" text NULL,
PRIMARY KEY (wine_id)
);
"""
-13
View File
@@ -154,19 +154,6 @@ function decisionMaker(a::T; recentevents::Integer=20, maxattempt=10
println("\nERROR YiemAgent decisionMaker() failed to parse response: $response ", @__FILE__, ":", @__LINE__, " $(Dates.now())") println("\nERROR YiemAgent decisionMaker() failed to parse response: $response ", @__FILE__, ":", @__LINE__, " $(Dates.now())")
continue continue
end end
# fall back to normal text because LLM default to natural chat when it didn't use action_call
else
try
responsedict = OrderedDict(
"plan"=> "I will talk to the user",
"action_name"=> "CHAT_BOX",
"action_input"=> response[2:end-1] # remove { } at the front and back that added by clean_json_response
)
catch e
println("\nERROR YiemAgent decisionMaker(). $e --(not qualify response)-> $response", @__FILE__, ":", @__LINE__, " $(Dates.now())\n")
continue
end
end end
# check whether all answer's key points are in responsedict # check whether all answer's key points are in responsedict
+4 -4
View File
@@ -530,8 +530,8 @@ function generatesql(a::T, searchterm::String,
related_tables = a.context.find_related_tables_for_user_question(searchterm) related_tables = a.context.find_related_tables_for_user_question(searchterm)
table_schema = "" table_schema = ""
for table in related_tables for table in related_tables
table_schema_df = GeneralUtils.get_db_table_schema(a.context.pg_conn_str, table) _table_schema_str = GeneralUtils.get_db_table_schema_simple(a.context.pg_conn_str, table)
table_schema_str = sprint(show, table_schema_df) * "\n" table_schema_str = sprint(show, _table_schema_str) * "\n"
table_schema = table_schema * table_schema_str table_schema = table_schema * table_schema_str
end end
@@ -755,11 +755,11 @@ function extractWineAttributes_1(a::T1, input::T2; maxattempt=10
"wine_name": "Saumur Blanc", "wine_name": "Saumur Blanc",
"winery": "Domaine du Collier", "winery": "Domaine du Collier",
"vintage": "2019", "vintage": "2019",
"region": "Saumur", "region": "N/A",
"country": "France", "country": "France",
"wine_type": "white", "wine_type": "white",
"grape_varietal": "Merlot", "grape_varietal": "Merlot",
"tasting_notes": "plum", "tasting_notes": "N/A",
"wine_price_min": "N/A", "wine_price_min": "N/A",
"wine_price_max": "N/A", "wine_price_max": "N/A",
"occasion": "N/A", "occasion": "N/A",
+1 -1
View File
@@ -306,7 +306,7 @@ function sommelier(
end end
mutable struct virtualcustomer <: agent mutable f virtualcustomer <: agent
name::String # agent name name::String # agent name
id::String # agent id id::String # agent id
systemmsg::String # system message systemmsg::String # system message