diff --git a/Project.toml b/Project.toml index a91a34e..0c1f65e 100644 --- a/Project.toml +++ b/Project.toml @@ -1,6 +1,6 @@ name = "GeneralUtils" uuid = "c6c72f09-b708-4ac8-ac7c-2084d70108fe" -version = "0.5.3" +version = "0.5.4" authors = ["tonaerospace "] [deps] diff --git a/src/dbUtil.jl b/src/dbUtil.jl index 14cf779..d3a240d 100644 --- a/src/dbUtil.jl +++ b/src/dbUtil.jl @@ -39,13 +39,15 @@ function execute_postgres_sql(pg_conn_str::T, sql::T) where {T<:AbstractString} end """ -get_embedding_nats(nats_server_url::String, texts::Vector{String}) +get_embedding_nats(nats_server_url::String, texts::Vector{String}, sendto_topic::String, fileserver_url::String) Fetch embeddings for a list of texts from a NATS-based embedding service. # Arguments - `nats_server_url::String`: NATS server connection URL - `texts::Vector{String}`: List of text strings to generate embeddings for +- `sendto_topic::String`: NATS topic to send the embedding request to +- `fileserver_url::String`: URL of the file server for additional data # Returns - `Vector` of embeddings, where each embedding is a vector of floats (Vector{Float32} or Vector{Float64}) @@ -54,27 +56,30 @@ Fetch embeddings for a list of texts from a NATS-based embedding service. ```julia nats_server_url = "nats://localhost:4222" texts = ["Hello world", "Another text"] -embeddings = get_embedding_nats(nats_server_url, texts) +sendto_topic = "embedding.service" +fileserver_url = "http://localhost:8080" +embeddings = get_embedding_nats(nats_server_url, texts, sendto_topic, fileserver_url) ``` """ -function get_embedding_nats(nats_server_url::String, texts::Vector{String}) +function get_embedding_nats(nats_server_url::String, texts::Vector{String}, sendto_topic::String, + fileserver_url::String) nats_conn = NATS.connect(nats_server_url) - return get_embedding_nats(nats_conn, texts) + return get_embedding_nats(nats_conn, texts, sendto_topic, fileserver_url) end -function get_embedding_nats(nats_conn::NATS.Connection, texts::Vector{String}) +function get_embedding_nats(nats_conn::NATS.Connection, texts::Vector{String}, sendto_topic::String, + fileserver_url::String) println("Generating embeddings for $(length(texts)) texts...") documents_dict = Dict("documents" => texts) payloads = [("documents", documents_dict, "dictionary")] _, msg_envelope_json_str = msghandler.smartpack( - config["externalservice"]["servicesloadbalancer"]["nats"], + sendto_topic, payloads; - msg_purpose="embedding", - broker_url=config["nats_server_info"]["url"], - fileserver_url=config["externalservice"]["fileserver"]["url"]) + msg_purpose="embedding", + fileserver_url=fileserver_url) reply = NATS.request(nats_conn, - config["externalservice"]["servicesloadbalancer"]["nats"], + sendto_topic, msg_envelope_json_str, timeout=300) incoming_env_json_str = String(reply.payload) incoming_env = msghandler.smartunpack(incoming_env_json_str)