update
This commit is contained in:
25
src/utils.jl
25
src/utils.jl
@@ -974,13 +974,21 @@ end
|
||||
|
||||
"""
|
||||
function keywordMemoryUpdate!(keywordmemory::AbstractDict, newinfo::AbstractDict)
|
||||
|
||||
for (k, v) in newinfo
|
||||
k = String(k)
|
||||
if v === nothing && haskey(keywordmemory, k) && keywordmemory[k] !== nothing
|
||||
# skip
|
||||
|
||||
# some time input keyword is different than dict's key thus it skip update
|
||||
# e.x. input key "tannin level" => "low to medium"
|
||||
# dict key "wine tannin level" => "low to medium"
|
||||
similar_k = checkSimilarKey(keywordmemory, k)
|
||||
k = similar_k === nothing ? k : similar_k
|
||||
|
||||
if v === nothing && haskey(keywordmemory, similar_k) && keywordmemory[similar_k] !== nothing
|
||||
# do not write value nothing if the key already has value
|
||||
else
|
||||
if haskey(keywordmemory, k)
|
||||
println("before k $k v $(keywordmemory[k])") #BUG this function write null to a non-empty key
|
||||
println("before k $k v $(keywordmemory[k])")
|
||||
end
|
||||
println("write k $k v $v")
|
||||
keywordmemory[k] = v
|
||||
@@ -991,7 +999,16 @@ function keywordMemoryUpdate!(keywordmemory::AbstractDict, newinfo::AbstractDict
|
||||
end
|
||||
|
||||
|
||||
|
||||
function checkSimilarKey(dict::AbstractDict, key::AbstractString)
|
||||
similar_k = nothing
|
||||
for (k, v) in dict
|
||||
if occursin(key, String(k))
|
||||
similar_k = k
|
||||
break
|
||||
end
|
||||
end
|
||||
return similar_k
|
||||
end
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user