By SQL priniciple:     
any straight name is meant to be a COLUMN of the actual table.  eg. Embeddings
but an external HostVariable is designated by an initial : (colon)  e.g.  : new_embedding_str or :params

This seems to be the deeper cause your problem

in addition I'd suggest to add  print(new_embedding_str)  to verify its format. (one of my problems.

Furthermore, take a closer look to this example:
iris-vector-search/blob/main/demo/sql_demo.ipynb

I use a similar setup in my example in OEX ,
Especially with TO_VECTOR() I ran into problems if I didn't add the explicit
type and size of the vector.  e.g. TO_VECTOR("..........",,DOUBLE,384)
as model all-MiniLM-L6-v2  produces exactly that type and size:

Don't ask for why. I just used the proposed example

experimenting with class %Library.Vector I found an unattractive way:

;; compose JSON array  >> v
USER>zw v
v=[($double(.5)),($double(1.5)),($double(2.2000000000000001776))]  ; <DYNAMIC ARRAY>
USER>set vec=##class(%Vector).OdbcToLogical(v)
 
USER>zw vec
vec={"type":"double", "count":3, "length":3, "vector":[$double(.5),$double(1.5),$double(2.2000000000000001776)]}  ; <VECTOR>

Applying OdbcToLogical  was really shocking

Hi al!,
Just returning from some private troubleshooting I'm deeply moved and thankful for this feedback.
It's once more a motivation to continue my activities.
Sometimes I'm insisting on small pieces that may bypass general attention.
Though servicing customers - and I understand you all as my customers -
requires to take care also of the small and often annoying pieces. 

Special big THANKS to the brilliant team behind the DC+OEX+GM facility.
YOU ARE GREAT. 💐🌷🌺🌸💮🌼🌻
 

you are in Caché so this might help:
http://localhost:57772/csp/docbook/DocBook.UI.Page.cls?KEY=GIOD_rmsseqfiles
USE file:position
the equivalent in %Stream,Object is MoveTo 
• method MoveTo(position As %Integer) as %Boolean

Move to this position in the stream. If this suceeds then return true, else return false. Note this implementation is not efficient because it searches from the start of the stream, it can be improved upon in specific subclasses. Note that moving to position 1 will be at the start of the stream, position 2 will be at the second character of the stream, etc.

And then you do your Read or Find..