Examples
These examples assume you already connected to VNG (see Connect to VNG) and you have a vng client instance.
Notes
- The SDK accepts plain strings and will auto-detect the locator.
- You can also build
VngInputexplicitly for full control.Bytesinput is not supported in REST mode yet in the current SDK.
1) Simple text (string → TextLocator)
vecs = vng.embed(
inputs=["Hello from text"],
)
print(len(vecs), len(vecs[0]))2) URL input (string → UrlLocator)
vecs = vng.embed(
inputs=["https://example.com/report.pdf"],
)
print(len(vecs[0]))3) S3 input (string → S3Locator)
vecs = vng.embed(
inputs=["s3://my-bucket/docs/handbook.pdf"],
)
print(len(vecs[0]))4) Local file path (string → FileLocator if path exists)
vecs = vng.embed(
inputs=["/mnt/shared/data/image.png"],
)
print(len(vecs[0]))5) Mixed inputs (auto-detection per item)
vecs = vng.embed(
inputs=[
"Hello from text", # TextLocator
"https://example.com/logo.png", # UrlLocator
"s3://my-bucket/videos/demo.mp4", # S3Locator
"/mnt/shared/docs/terms.pdf", # FileLocator (if exists)
],
dim=768,
)
print([len(v) for v in vecs])6) Explicit VngInput (full control)
from dodil.vng_client import VngInput
inputs = [
VngInput.as_text("Hello from explicit text"),
VngInput.as_url("https://example.com/report.pdf", kind="FILE"),
VngInput.as_s3("s3://my-bucket/docs/handbook.pdf", kind="FILE"),
VngInput.as_file("/mnt/shared/data/image.png", kind="IMAGE"),
]
vecs = vng.embed(inputs=inputs, dim=768)
print(len(vecs), len(vecs[0]))7) Changing Task (EmbeddingTask enum)
from dodil.vng_client import EmbeddingTask
# Index content (store vectors in VBase)
index_vecs = vng.embed(
inputs=["Company onboarding policy..."],
task=EmbeddingTask.INDEX,
)
# Query a knowledge base (embed the user question)
query_vec = vng.embed(
inputs=["How do I reset my API key?"],
task=EmbeddingTask.QUERY,
)[0]
print(len(index_vecs[0]), len(query_vec))8) Code search tasks
from dodil.vng_client import EmbeddingTask
# Index code
code_vecs = vng.embed(
inputs=["def verify_jwt(token): ..."],
task=EmbeddingTask.CODE_INDEX,
)
# Query codebase
code_query_vec = vng.embed(
inputs=["Where do we validate JWT scopes?"],
task=EmbeddingTask.CODE_QUERY,
)[0]
print(len(code_vecs[0]), len(code_query_vec))Last updated on