461bf6fd40
CI / lint (3.11) (push) Blocked by required conditions
CI / lint (3.12) (push) Blocked by required conditions
CI / lint (3.13) (push) Blocked by required conditions
CI / shellcheck (push) Waiting to run
CI / shfmt (push) Waiting to run
CI / setup (3.11) (push) Waiting to run
CI / setup (3.12) (push) Waiting to run
CI / setup (3.13) (push) Waiting to run
CI / check-licenses (3.12) (push) Blocked by required conditions
CI / test_unit (3.11) (push) Blocked by required conditions
CI / test_unit (3.12) (push) Blocked by required conditions
CI / test_unit (3.13) (push) Blocked by required conditions
CI / test_unit_no_extras (3.11) (push) Blocked by required conditions
CI / test_unit_no_extras (3.12) (push) Blocked by required conditions
CI / test_json_to_html (3.12) (push) Blocked by required conditions
CI / test_unit_no_extras (3.13) (push) Blocked by required conditions
CI / test_unit_dependency_extras (csv, 3.11, --extra csv) (push) Blocked by required conditions
CI / test_unit_dependency_extras (csv, 3.12, --extra csv) (push) Blocked by required conditions
CI / test_unit_dependency_extras (csv, 3.13, --extra csv) (push) Blocked by required conditions
CI / test_unit_dependency_extras (docx, 3.11, --extra docx) (push) Blocked by required conditions
CI / test_unit_dependency_extras (docx, 3.12, --extra docx) (push) Blocked by required conditions
CI / test_unit_dependency_extras (docx, 3.13, --extra docx) (push) Blocked by required conditions
CI / test_unit_dependency_extras (markdown, 3.11, --extra md) (push) Blocked by required conditions
CI / test_unit_dependency_extras (markdown, 3.12, --extra md) (push) Blocked by required conditions
CI / test_unit_dependency_extras (markdown, 3.13, --extra md) (push) Blocked by required conditions
CI / test_unit_dependency_extras (odt, 3.11, --extra odt) (push) Blocked by required conditions
CI / test_unit_dependency_extras (odt, 3.12, --extra odt) (push) Blocked by required conditions
CI / test_unit_dependency_extras (pdf-image, 3.12, --extra pdf --extra image --extra paddleocr) (push) Blocked by required conditions
CI / test_unit_dependency_extras (pdf-image, 3.13, --extra pdf --extra image --extra paddleocr) (push) Blocked by required conditions
CI / test_unit_dependency_extras (pptx, 3.13, --extra pptx) (push) Blocked by required conditions
CI / test_unit_dependency_extras (odt, 3.13, --extra odt) (push) Blocked by required conditions
CI / test_unit_dependency_extras (pdf-image, 3.11, --extra pdf --extra image --extra paddleocr) (push) Blocked by required conditions
CI / test_unit_dependency_extras (pptx, 3.11, --extra pptx) (push) Blocked by required conditions
CI / test_unit_dependency_extras (pptx, 3.12, --extra pptx) (push) Blocked by required conditions
CI / test_unit_dependency_extras (pypandoc, 3.11, --extra epub --extra org --extra rtf --extra rst) (push) Blocked by required conditions
CI / test_unit_dependency_extras (pypandoc, 3.12, --extra epub --extra org --extra rtf --extra rst) (push) Blocked by required conditions
CI / test_unit_dependency_extras (pypandoc, 3.13, --extra epub --extra org --extra rtf --extra rst) (push) Blocked by required conditions
CI / test_unit_dependency_extras (xlsx, 3.11, --extra xlsx) (push) Blocked by required conditions
CI / test_unit_dependency_extras (xlsx, 3.12, --extra xlsx) (push) Blocked by required conditions
CI / test_unit_dependency_extras (xlsx, 3.13, --extra xlsx) (push) Blocked by required conditions
CI / test_ingest_src (3.12) (push) Blocked by required conditions
CI / test_json_to_markdown (3.12) (push) Blocked by required conditions
CI / changelog (push) Waiting to run
CI / test_dockerfile (push) Blocked by required conditions
CodeQL / Analyze (python) (push) Waiting to run
Build And Push Docker Image / set-short-sha (push) Waiting to run
Build And Push Docker Image / build-images (linux/amd64, opensource-linux-8core) (push) Blocked by required conditions
Build And Push Docker Image / build-images (linux/arm64, ubuntu-24.04-arm) (push) Blocked by required conditions
Build And Push Docker Image / publish-images (push) Blocked by required conditions
Partition Benchmark / setup (push) Waiting to run
Partition Benchmark / Measure and compare partition() runtime (push) Blocked by required conditions
80 lines
2.6 KiB
Python
Executable File
80 lines
2.6 KiB
Python
Executable File
#!/usr/bin/env python
|
|
import click
|
|
from astrapy.db import AstraDB
|
|
|
|
|
|
def get_client(token, api_endpoint, collection_name) -> AstraDB:
|
|
# Initialize our vector db
|
|
astra_db = AstraDB(token=token, api_endpoint=api_endpoint)
|
|
astra_db_collection = astra_db.collection(collection_name)
|
|
return astra_db, astra_db_collection
|
|
|
|
|
|
@click.group(name="astradb-ingest")
|
|
@click.option("--token", type=str)
|
|
@click.option("--api-endpoint", type=str)
|
|
@click.option("--collection-name", type=str, default="collection_test")
|
|
@click.option("--embedding-dimension", type=int, default=384)
|
|
@click.pass_context
|
|
def cli(ctx, token: str, api_endpoint: str, collection_name: str, embedding_dimension: int):
|
|
# ensure that ctx.obj exists and is a dict (in case `cli()` is called
|
|
ctx.ensure_object(dict)
|
|
|
|
ctx.obj["db"], ctx.obj["collection"] = get_client(token, api_endpoint, collection_name)
|
|
|
|
|
|
@cli.command()
|
|
@click.pass_context
|
|
def check(ctx):
|
|
collection_name = ctx.parent.params["collection_name"]
|
|
print(f"Checking contents of Astra DB collection: {collection_name}")
|
|
|
|
astra_db_collection = ctx.obj["collection"]
|
|
|
|
# Tally up the embeddings
|
|
docs_count = astra_db_collection.count_documents()
|
|
number_of_embeddings = docs_count["status"]["count"]
|
|
|
|
# Print the results
|
|
expected_embeddings = 3
|
|
print(
|
|
f"# of embeddings in collection vs expected: {number_of_embeddings}/{expected_embeddings}"
|
|
)
|
|
|
|
# Check that the assertion is true
|
|
assert number_of_embeddings == expected_embeddings, (
|
|
f"Number of rows in generated table ({number_of_embeddings})"
|
|
f"doesn't match expected value: {expected_embeddings}"
|
|
)
|
|
|
|
# Grab an embedding from the collection and search against itself
|
|
# Should get the same document back as the most similar
|
|
find_one = astra_db_collection.find_one(projection={"*": 1})
|
|
random_vector = find_one["data"]["document"]["$vector"]
|
|
random_text = find_one["data"]["document"]["content"]
|
|
|
|
# Perform a similarity search
|
|
find_result = astra_db_collection.vector_find(
|
|
random_vector,
|
|
limit=1,
|
|
fields=["*"],
|
|
)
|
|
|
|
# Check that we retrieved the coded cleats copy data
|
|
assert find_result[0]["content"] == random_text
|
|
print("Vector search complete.")
|
|
|
|
|
|
@cli.command()
|
|
@click.pass_context
|
|
def down(ctx):
|
|
astra_db = ctx.obj["db"]
|
|
collection_name = ctx.parent.params["collection_name"]
|
|
print(f"deleting collection: {collection_name}")
|
|
astra_db.delete_collection(collection_name)
|
|
print(f"successfully deleted collection: {collection_name}")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
cli()
|