cyborgdb 0.11.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- cyborgdb-0.11.0/.github/ISSUE_TEMPLATE/bug_report.yml +94 -0
- cyborgdb-0.11.0/.github/ISSUE_TEMPLATE/epic.yml +68 -0
- cyborgdb-0.11.0/.github/ISSUE_TEMPLATE/task.yml +56 -0
- cyborgdb-0.11.0/.github/workflows/build_and_package_wheels.yml +89 -0
- cyborgdb-0.11.0/.gitignore +72 -0
- cyborgdb-0.11.0/.openapi-generator/FILES +97 -0
- cyborgdb-0.11.0/.openapi-generator/VERSION +1 -0
- cyborgdb-0.11.0/.openapi-generator-ignore +27 -0
- cyborgdb-0.11.0/CODEOWNERS +8 -0
- cyborgdb-0.11.0/LICENSE +7 -0
- cyborgdb-0.11.0/PKG-INFO +104 -0
- cyborgdb-0.11.0/README.md +72 -0
- cyborgdb-0.11.0/cyborgdb/.gitignore +66 -0
- cyborgdb-0.11.0/cyborgdb/__init__.py +26 -0
- cyborgdb-0.11.0/cyborgdb/client/__init__.py +2 -0
- cyborgdb-0.11.0/cyborgdb/client/client.py +184 -0
- cyborgdb-0.11.0/cyborgdb/client/encrypted_index.py +545 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/__init__.py +61 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/api/__init__.py +5 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/api/default_api.py +3103 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/api_client.py +797 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/api_response.py +21 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/configuration.py +602 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/docs/BatchQueryRequest.md +37 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/docs/Contents.md +28 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/docs/CreateIndexRequest.md +33 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/docs/CyborgdbServiceApiSchemasIndexSuccessResponseModel.md +31 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/docs/CyborgdbServiceApiSchemasVectorsSuccessResponseModel.md +31 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/docs/DefaultApi.md +909 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/docs/DeleteRequest.md +32 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/docs/ErrorResponseModel.md +31 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/docs/GetRequest.md +33 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/docs/GetResponseModel.md +30 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/docs/GetResultItemModel.md +33 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/docs/HTTPValidationError.md +29 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/docs/IndexConfig.md +34 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/docs/IndexIVFFlatModel.md +33 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/docs/IndexIVFModel.md +33 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/docs/IndexIVFPQModel.md +35 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/docs/IndexInfoResponseModel.md +33 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/docs/IndexListResponseModel.md +30 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/docs/IndexOperationRequest.md +31 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/docs/QueryRequest.md +38 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/docs/QueryResponse.md +30 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/docs/QueryResultItem.md +33 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/docs/Request.md +37 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/docs/Results.md +28 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/docs/TrainRequest.md +35 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/docs/UpsertRequest.md +32 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/docs/ValidationError.md +31 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/docs/ValidationErrorLocInner.md +28 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/docs/VectorItem.md +33 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/exceptions.py +216 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/models/__init__.py +44 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/models/batch_query_request.py +106 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/models/contents.py +144 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/models/create_index_request.py +102 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/models/cyborgdb_service_api_schemas_index_success_response_model.py +89 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/models/cyborgdb_service_api_schemas_vectors_success_response_model.py +89 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/models/delete_request.py +91 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/models/error_response_model.py +89 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/models/get_request.py +93 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/models/get_response_model.py +95 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/models/get_result_item_model.py +108 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/models/http_validation_error.py +95 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/models/index_config.py +149 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/models/index_info_response_model.py +93 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/models/index_ivf_flat_model.py +103 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/models/index_ivf_model.py +103 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/models/index_ivfpq_model.py +107 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/models/index_list_response_model.py +87 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/models/index_operation_request.py +89 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/models/query_request.py +118 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/models/query_response.py +91 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/models/query_result_item.py +108 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/models/request.py +134 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/models/results.py +139 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/models/train_request.py +97 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/models/upsert_request.py +99 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/models/validation_error.py +99 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/models/validation_error_loc_inner.py +138 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/models/vector_item.py +112 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/py.typed +0 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/rest.py +258 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/test/__init__.py +0 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/test/test_batch_query_request.py +71 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/test/test_contents.py +50 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/test/test_create_index_request.py +57 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/test/test_cyborgdb_service_api_schemas_index_success_response_model.py +53 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/test/test_cyborgdb_service_api_schemas_vectors_success_response_model.py +53 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/test/test_default_api.py +108 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/test/test_delete_request.py +60 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/test/test_error_response_model.py +54 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/test/test_get_request.py +63 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/test/test_get_response_model.py +68 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/test/test_get_result_item_model.py +57 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/test/test_http_validation_error.py +58 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/test/test_index_config.py +59 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/test/test_index_info_response_model.py +58 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/test/test_index_ivf_flat_model.py +55 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/test/test_index_ivf_model.py +55 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/test/test_index_ivfpq_model.py +59 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/test/test_index_list_response_model.py +56 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/test/test_index_operation_request.py +54 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/test/test_query_request.py +65 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/test/test_query_response.py +52 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/test/test_query_result_item.py +57 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/test/test_request.py +72 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/test/test_results.py +50 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/test/test_train_request.py +58 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/test/test_upsert_request.py +72 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/test/test_validation_error.py +60 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/test/test_validation_error_loc_inner.py +50 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client/test/test_vector_item.py +57 -0
- cyborgdb-0.11.0/cyborgdb/openapi_client_README.md +139 -0
- cyborgdb-0.11.0/cyborgdb/test/__init__.py +0 -0
- cyborgdb-0.11.0/cyborgdb.egg-info/PKG-INFO +104 -0
- cyborgdb-0.11.0/cyborgdb.egg-info/SOURCES.txt +127 -0
- cyborgdb-0.11.0/cyborgdb.egg-info/dependency_links.txt +1 -0
- cyborgdb-0.11.0/cyborgdb.egg-info/requires.txt +4 -0
- cyborgdb-0.11.0/cyborgdb.egg-info/top_level.txt +1 -0
- cyborgdb-0.11.0/openapi.json +1 -0
- cyborgdb-0.11.0/pyproject.toml +49 -0
- cyborgdb-0.11.0/requirements.txt +4 -0
- cyborgdb-0.11.0/setup.cfg +4 -0
- cyborgdb-0.11.0/tests/basic_integration_tests.py +364 -0
- cyborgdb-0.11.0/tests/constants/unit_test_flow_data.pkl.zst +0 -0
- cyborgdb-0.11.0/tests/test_client.py +57 -0
- cyborgdb-0.11.0/update-openapi-client.sh +33 -0
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
name: Bug Report
|
|
2
|
+
description: Fill this form out to report a bug in `cyborgdb_py`.
|
|
3
|
+
title: "[BUG]: "
|
|
4
|
+
labels: bug
|
|
5
|
+
projects: cyborginc/4
|
|
6
|
+
type: Bug
|
|
7
|
+
assignees: []
|
|
8
|
+
|
|
9
|
+
body:
|
|
10
|
+
- type: checkboxes
|
|
11
|
+
attributes:
|
|
12
|
+
label: Bug Report Checklist
|
|
13
|
+
options:
|
|
14
|
+
- label: I have searched for similar issues in the repository.
|
|
15
|
+
required: true
|
|
16
|
+
- label: I have included all relevant information for reproducing the bug.
|
|
17
|
+
required: true
|
|
18
|
+
|
|
19
|
+
- type: input
|
|
20
|
+
attributes:
|
|
21
|
+
label: Summary
|
|
22
|
+
placeholder: "Enter a short description of the issue..."
|
|
23
|
+
validations:
|
|
24
|
+
required: true
|
|
25
|
+
|
|
26
|
+
- type: textarea
|
|
27
|
+
attributes:
|
|
28
|
+
label: Detailed Description
|
|
29
|
+
placeholder: "Explain the issue in detail..."
|
|
30
|
+
validations:
|
|
31
|
+
required: true
|
|
32
|
+
|
|
33
|
+
- type: textarea
|
|
34
|
+
attributes:
|
|
35
|
+
label: Steps to Reproduce
|
|
36
|
+
description: Provide step-by-step instructions for reproducing the issue.
|
|
37
|
+
placeholder: |
|
|
38
|
+
Example:
|
|
39
|
+
1. Initialize the `cyborgdb_py` service using Python 3.10.
|
|
40
|
+
2. Call the `POST /vector` API with the following payload.
|
|
41
|
+
3. ...
|
|
42
|
+
validations:
|
|
43
|
+
required: true
|
|
44
|
+
|
|
45
|
+
- type: textarea
|
|
46
|
+
attributes:
|
|
47
|
+
label: Observed Behavior
|
|
48
|
+
description: Describe what actually happened when the issue occurred.
|
|
49
|
+
placeholder: "What did you observe? Include error messages, unexpected responses, etc."
|
|
50
|
+
validations:
|
|
51
|
+
required: true
|
|
52
|
+
|
|
53
|
+
- type: textarea
|
|
54
|
+
attributes:
|
|
55
|
+
label: Expected Behavior
|
|
56
|
+
description: Describe what you expected to happen instead.
|
|
57
|
+
placeholder: "What should the service have done?"
|
|
58
|
+
validations:
|
|
59
|
+
required: true
|
|
60
|
+
|
|
61
|
+
- type: input
|
|
62
|
+
attributes:
|
|
63
|
+
label: API Version
|
|
64
|
+
description: Specify the version of `cyborgdb_py`.
|
|
65
|
+
placeholder: "e.g., v0.9.0"
|
|
66
|
+
|
|
67
|
+
- type: dropdown
|
|
68
|
+
attributes:
|
|
69
|
+
label: Operating System
|
|
70
|
+
description: "Select the operating system you're using."
|
|
71
|
+
options:
|
|
72
|
+
- Not OS-specific
|
|
73
|
+
- Windows
|
|
74
|
+
- macOS
|
|
75
|
+
- Linux
|
|
76
|
+
validations:
|
|
77
|
+
required: true
|
|
78
|
+
|
|
79
|
+
- type: dropdown
|
|
80
|
+
attributes:
|
|
81
|
+
label: Severity
|
|
82
|
+
description: Indicate the impact of this bug.
|
|
83
|
+
options:
|
|
84
|
+
- Critical - Breaks functionality or crashes the service.
|
|
85
|
+
- Major - Significant issue but a workaround exists.
|
|
86
|
+
- Minor - Low impact, minor functionality affected.
|
|
87
|
+
validations:
|
|
88
|
+
required: true
|
|
89
|
+
|
|
90
|
+
- type: textarea
|
|
91
|
+
attributes:
|
|
92
|
+
label: Additional Context
|
|
93
|
+
description: Provide logs, error messages, or any other supporting details.
|
|
94
|
+
placeholder: "Paste logs, stack traces, or screenshots here."
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
name: New Epic
|
|
2
|
+
description: Use this form to create new epics or user stories.
|
|
3
|
+
title: "[EPIC]: "
|
|
4
|
+
projects: cyborginc/4
|
|
5
|
+
type: Feature
|
|
6
|
+
assignees: []
|
|
7
|
+
|
|
8
|
+
body:
|
|
9
|
+
- type: textarea
|
|
10
|
+
attributes:
|
|
11
|
+
label: Background
|
|
12
|
+
placeholder: |
|
|
13
|
+
Provide a concise but informative overview of the task. Include any relevant business or technical context, such as:
|
|
14
|
+
- Problem Statement: What issue or opportunity prompted this task?
|
|
15
|
+
- Current State: What is happening now, and why is it insufficient?
|
|
16
|
+
- Desired Outcome: What do we hope to achieve by completing this task?
|
|
17
|
+
- Stakeholders: Who cares about this and why?
|
|
18
|
+
|
|
19
|
+
This section should help anyone new to the task quickly understand the “why” behind it and how it fits into the bigger picture.
|
|
20
|
+
validations:
|
|
21
|
+
required: true
|
|
22
|
+
|
|
23
|
+
- type: textarea
|
|
24
|
+
attributes:
|
|
25
|
+
label: User Story
|
|
26
|
+
placeholder: |
|
|
27
|
+
Use clear, human-centered language. The user story should represent a real-world need or problem, focusing on the user's perspective. Avoid technical jargon unless the user persona is technical.
|
|
28
|
+
*Format: As [a specific user role or persona], I want [to perform a specific action or experience], so that [I can achieve a specific outcome or benefit].*
|
|
29
|
+
|
|
30
|
+
*Example: As a first-time customer, I want to save my shopping cart without creating an account so that I can return later and complete my purchase.*
|
|
31
|
+
validations:
|
|
32
|
+
required: true
|
|
33
|
+
|
|
34
|
+
- type: textarea
|
|
35
|
+
attributes:
|
|
36
|
+
label: Acceptance Criteria
|
|
37
|
+
placeholder: |
|
|
38
|
+
List the specific, testable conditions that must be met for this task to be considered complete. These should clearly define **DONE** and help guide both development and QA efforts.
|
|
39
|
+
- Include:
|
|
40
|
+
- Expected behavior under normal conditions
|
|
41
|
+
- Handling of edge cases or exceptions
|
|
42
|
+
- UI/UX considerations (if applicable)
|
|
43
|
+
- Security, performance, or accessibility requirements (if relevant)
|
|
44
|
+
- Each item should be independently verifiable
|
|
45
|
+
|
|
46
|
+
- *Example: Password Reset Flow*
|
|
47
|
+
- *User can request a password reset via email*
|
|
48
|
+
- *Email contains a secure, time-limited reset link (expires after 1 hour)*
|
|
49
|
+
- *User is redirected to a reset form upon clicking the link*
|
|
50
|
+
- *Password must meet complexity rules (min 8 chars, 1 number, 1 special character)*
|
|
51
|
+
- *Error message shown if link is expired or invalid*
|
|
52
|
+
- *Confirmation message shown after successful reset*
|
|
53
|
+
validations:
|
|
54
|
+
required: true
|
|
55
|
+
|
|
56
|
+
- type: textarea
|
|
57
|
+
attributes:
|
|
58
|
+
label: Additional Notes
|
|
59
|
+
placeholder: |
|
|
60
|
+
Use this section to capture any important supporting information that does not fit neatly elsewhere, such as:
|
|
61
|
+
- Related Links: JIRA tickets, PRDs, Figma mockups, Notion docs, API specs, etc.
|
|
62
|
+
- Dependencies: Is this blocked by another task? Is it part of a feature set?
|
|
63
|
+
- Technical Notes: Known constraints, decisions made, code references, or areas of complexity.
|
|
64
|
+
- Business Constraints:** Legal, compliance, timeline pressures, or customer commitments.
|
|
65
|
+
|
|
66
|
+
This section is useful for cross-functional collaborators and future maintainers who may need additional context or history.
|
|
67
|
+
validations:
|
|
68
|
+
required: false
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
name: New Issue/Task
|
|
2
|
+
description: Use this form to create new issues or tasks.
|
|
3
|
+
projects: cyborginc/4
|
|
4
|
+
type: Task
|
|
5
|
+
assignees: []
|
|
6
|
+
|
|
7
|
+
body:
|
|
8
|
+
- type: textarea
|
|
9
|
+
attributes:
|
|
10
|
+
label: Background
|
|
11
|
+
placeholder: |
|
|
12
|
+
Provide a concise but informative overview of the task. Include any relevant business or technical context, such as:
|
|
13
|
+
- Problem Statement: What issue or opportunity prompted this task?
|
|
14
|
+
- Current State: What is happening now, and why is it insufficient?
|
|
15
|
+
- Desired Outcome: What do we hope to achieve by completing this task?
|
|
16
|
+
- Stakeholders: Who cares about this and why?
|
|
17
|
+
|
|
18
|
+
This section should help anyone new to the task quickly understand the “why” behind it and how it fits into the bigger picture.
|
|
19
|
+
validations:
|
|
20
|
+
required: true
|
|
21
|
+
|
|
22
|
+
- type: textarea
|
|
23
|
+
attributes:
|
|
24
|
+
label: Acceptance Criteria
|
|
25
|
+
placeholder: |
|
|
26
|
+
List the specific, testable conditions that must be met for this task to be considered complete. These should clearly define **DONE** and help guide both development and QA efforts.
|
|
27
|
+
- Include:
|
|
28
|
+
- Expected behavior under normal conditions
|
|
29
|
+
- Handling of edge cases or exceptions
|
|
30
|
+
- UI/UX considerations (if applicable)
|
|
31
|
+
- Security, performance, or accessibility requirements (if relevant)
|
|
32
|
+
- Each item should be independently verifiable
|
|
33
|
+
|
|
34
|
+
- *Example: Password Reset Flow*
|
|
35
|
+
- *User can request a password reset via email*
|
|
36
|
+
- *Email contains a secure, time-limited reset link (expires after 1 hour)*
|
|
37
|
+
- *User is redirected to a reset form upon clicking the link*
|
|
38
|
+
- *Password must meet complexity rules (min 8 chars, 1 number, 1 special character)*
|
|
39
|
+
- *Error message shown if link is expired or invalid*
|
|
40
|
+
- *Confirmation message shown after successful reset*
|
|
41
|
+
validations:
|
|
42
|
+
required: true
|
|
43
|
+
|
|
44
|
+
- type: textarea
|
|
45
|
+
attributes:
|
|
46
|
+
label: Additional Notes
|
|
47
|
+
placeholder: |
|
|
48
|
+
Use this section to capture any important supporting information that does not fit neatly elsewhere, such as:
|
|
49
|
+
- Related Links: JIRA tickets, PRDs, Figma mockups, Notion docs, API specs, etc.
|
|
50
|
+
- Dependencies: Is this blocked by another task? Is it part of a feature set?
|
|
51
|
+
- Technical Notes: Known constraints, decisions made, code references, or areas of complexity.
|
|
52
|
+
- Business Constraints:** Legal, compliance, timeline pressures, or customer commitments.
|
|
53
|
+
|
|
54
|
+
This section is useful for cross-functional collaborators and future maintainers who may need additional context or history.
|
|
55
|
+
validations:
|
|
56
|
+
required: false
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
name: Builda and Package Wheels
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: ["main"]
|
|
6
|
+
tags:
|
|
7
|
+
- "v*"
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
build_distributions:
|
|
11
|
+
runs-on: ubuntu-latest
|
|
12
|
+
steps:
|
|
13
|
+
- name: Checkout code
|
|
14
|
+
uses: actions/checkout@v4
|
|
15
|
+
with:
|
|
16
|
+
fetch-depth: 0
|
|
17
|
+
|
|
18
|
+
- name: Set up Python
|
|
19
|
+
uses: actions/setup-python@v4
|
|
20
|
+
with:
|
|
21
|
+
python-version: "3.13"
|
|
22
|
+
|
|
23
|
+
- name: Set Version from Tag for Wheels
|
|
24
|
+
if: github.ref_type == 'tag'
|
|
25
|
+
shell: bash
|
|
26
|
+
run: |
|
|
27
|
+
VERSION=${GITHUB_REF_NAME#v}
|
|
28
|
+
echo "Setting exact version $VERSION for tag build"
|
|
29
|
+
echo "SETUPTOOLS_SCM_PRETEND_VERSION=$VERSION" >> $GITHUB_ENV
|
|
30
|
+
|
|
31
|
+
- name: Install build dependencies
|
|
32
|
+
run: |
|
|
33
|
+
python -m pip install --upgrade pip
|
|
34
|
+
python -m pip install build wheel
|
|
35
|
+
|
|
36
|
+
- name: Build distributions
|
|
37
|
+
run: |
|
|
38
|
+
python -m build --sdist --wheel --outdir dist/
|
|
39
|
+
echo "Built distributions:"
|
|
40
|
+
ls -la dist/
|
|
41
|
+
|
|
42
|
+
- name: Store distributions as artifact
|
|
43
|
+
uses: actions/upload-artifact@v4
|
|
44
|
+
with:
|
|
45
|
+
name: cyborgdb-dist
|
|
46
|
+
path: dist/*
|
|
47
|
+
retention-days: 5
|
|
48
|
+
|
|
49
|
+
publish_to_pypi:
|
|
50
|
+
needs: [build_distributions]
|
|
51
|
+
runs-on: ubuntu-latest
|
|
52
|
+
if: github.ref_type == 'tag'
|
|
53
|
+
environment:
|
|
54
|
+
name: prod
|
|
55
|
+
permissions:
|
|
56
|
+
id-token: write
|
|
57
|
+
contents: write
|
|
58
|
+
|
|
59
|
+
steps:
|
|
60
|
+
- name: Download distribution artifacts
|
|
61
|
+
uses: actions/download-artifact@v4
|
|
62
|
+
with:
|
|
63
|
+
name: cyborgdb-dist
|
|
64
|
+
path: dist
|
|
65
|
+
|
|
66
|
+
- name: Display structure of downloaded files
|
|
67
|
+
run: ls -la dist/
|
|
68
|
+
|
|
69
|
+
- name: Create release archive
|
|
70
|
+
run: |
|
|
71
|
+
VERSION=${GITHUB_REF_NAME#v} # Strip the 'v' prefix if present
|
|
72
|
+
echo "Creating archive for version $VERSION"
|
|
73
|
+
zip -r cyborgdb-${VERSION}-dist.zip dist/
|
|
74
|
+
echo "RELEASE_VERSION=$VERSION" >> $GITHUB_ENV
|
|
75
|
+
|
|
76
|
+
- name: Publish to GitHub Release
|
|
77
|
+
uses: softprops/action-gh-release@v1
|
|
78
|
+
with:
|
|
79
|
+
files: |
|
|
80
|
+
cyborgdb-${{ env.RELEASE_VERSION }}-dist.zip
|
|
81
|
+
generate_release_notes: true
|
|
82
|
+
draft: false
|
|
83
|
+
tag_name: ${{ github.ref_name }}
|
|
84
|
+
|
|
85
|
+
- name: Publish to PyPI
|
|
86
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
87
|
+
with:
|
|
88
|
+
packages-dir: dist/
|
|
89
|
+
skip-existing: true
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# Byte-compiled / optimized / DLL files
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[cod]
|
|
4
|
+
*$py.class
|
|
5
|
+
|
|
6
|
+
# C extensions
|
|
7
|
+
*.so
|
|
8
|
+
|
|
9
|
+
# Distribution / packaging
|
|
10
|
+
.Python
|
|
11
|
+
env/
|
|
12
|
+
build/
|
|
13
|
+
develop-eggs/
|
|
14
|
+
dist/
|
|
15
|
+
downloads/
|
|
16
|
+
eggs/
|
|
17
|
+
.eggs/
|
|
18
|
+
lib/
|
|
19
|
+
lib64/
|
|
20
|
+
parts/
|
|
21
|
+
sdist/
|
|
22
|
+
var/
|
|
23
|
+
*.egg-info/
|
|
24
|
+
.installed.cfg
|
|
25
|
+
*.egg
|
|
26
|
+
|
|
27
|
+
# PyInstaller
|
|
28
|
+
# Usually these files are written by a python script from a template
|
|
29
|
+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
|
30
|
+
*.manifest
|
|
31
|
+
*.spec
|
|
32
|
+
|
|
33
|
+
# Installer logs
|
|
34
|
+
pip-log.txt
|
|
35
|
+
pip-delete-this-directory.txt
|
|
36
|
+
|
|
37
|
+
# Unit test / coverage reports
|
|
38
|
+
htmlcov/
|
|
39
|
+
.tox/
|
|
40
|
+
.coverage
|
|
41
|
+
.coverage.*
|
|
42
|
+
.cache
|
|
43
|
+
nosetests.xml
|
|
44
|
+
coverage.xml
|
|
45
|
+
*,cover
|
|
46
|
+
.hypothesis/
|
|
47
|
+
venv/
|
|
48
|
+
.venv/
|
|
49
|
+
.python-version
|
|
50
|
+
.pytest_cache
|
|
51
|
+
|
|
52
|
+
# Translations
|
|
53
|
+
*.mo
|
|
54
|
+
*.pot
|
|
55
|
+
|
|
56
|
+
# Django stuff:
|
|
57
|
+
*.log
|
|
58
|
+
|
|
59
|
+
# Sphinx documentation
|
|
60
|
+
docs/_build/
|
|
61
|
+
|
|
62
|
+
# PyBuilder
|
|
63
|
+
target/
|
|
64
|
+
|
|
65
|
+
#Ipython Notebook
|
|
66
|
+
.ipynb_checkpoints
|
|
67
|
+
|
|
68
|
+
datasets
|
|
69
|
+
|
|
70
|
+
.DS_Store
|
|
71
|
+
|
|
72
|
+
venv
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
cyborgdb/openapi_client/__init__.py
|
|
2
|
+
cyborgdb/openapi_client/api/__init__.py
|
|
3
|
+
cyborgdb/openapi_client/api/default_api.py
|
|
4
|
+
cyborgdb/openapi_client/api_client.py
|
|
5
|
+
cyborgdb/openapi_client/api_response.py
|
|
6
|
+
cyborgdb/openapi_client/configuration.py
|
|
7
|
+
cyborgdb/openapi_client/docs/BatchQueryRequest.md
|
|
8
|
+
cyborgdb/openapi_client/docs/Contents.md
|
|
9
|
+
cyborgdb/openapi_client/docs/CreateIndexRequest.md
|
|
10
|
+
cyborgdb/openapi_client/docs/CyborgdbServiceApiSchemasIndexSuccessResponseModel.md
|
|
11
|
+
cyborgdb/openapi_client/docs/CyborgdbServiceApiSchemasVectorsSuccessResponseModel.md
|
|
12
|
+
cyborgdb/openapi_client/docs/DefaultApi.md
|
|
13
|
+
cyborgdb/openapi_client/docs/DeleteRequest.md
|
|
14
|
+
cyborgdb/openapi_client/docs/ErrorResponseModel.md
|
|
15
|
+
cyborgdb/openapi_client/docs/GetRequest.md
|
|
16
|
+
cyborgdb/openapi_client/docs/GetResponseModel.md
|
|
17
|
+
cyborgdb/openapi_client/docs/GetResultItemModel.md
|
|
18
|
+
cyborgdb/openapi_client/docs/HTTPValidationError.md
|
|
19
|
+
cyborgdb/openapi_client/docs/IndexConfig.md
|
|
20
|
+
cyborgdb/openapi_client/docs/IndexIVFFlatModel.md
|
|
21
|
+
cyborgdb/openapi_client/docs/IndexIVFModel.md
|
|
22
|
+
cyborgdb/openapi_client/docs/IndexIVFPQModel.md
|
|
23
|
+
cyborgdb/openapi_client/docs/IndexInfoResponseModel.md
|
|
24
|
+
cyborgdb/openapi_client/docs/IndexListResponseModel.md
|
|
25
|
+
cyborgdb/openapi_client/docs/IndexOperationRequest.md
|
|
26
|
+
cyborgdb/openapi_client/docs/QueryRequest.md
|
|
27
|
+
cyborgdb/openapi_client/docs/QueryResponse.md
|
|
28
|
+
cyborgdb/openapi_client/docs/QueryResultItem.md
|
|
29
|
+
cyborgdb/openapi_client/docs/Request.md
|
|
30
|
+
cyborgdb/openapi_client/docs/Results.md
|
|
31
|
+
cyborgdb/openapi_client/docs/TrainRequest.md
|
|
32
|
+
cyborgdb/openapi_client/docs/UpsertRequest.md
|
|
33
|
+
cyborgdb/openapi_client/docs/ValidationError.md
|
|
34
|
+
cyborgdb/openapi_client/docs/ValidationErrorLocInner.md
|
|
35
|
+
cyborgdb/openapi_client/docs/VectorItem.md
|
|
36
|
+
cyborgdb/openapi_client/exceptions.py
|
|
37
|
+
cyborgdb/openapi_client/models/__init__.py
|
|
38
|
+
cyborgdb/openapi_client/models/batch_query_request.py
|
|
39
|
+
cyborgdb/openapi_client/models/contents.py
|
|
40
|
+
cyborgdb/openapi_client/models/create_index_request.py
|
|
41
|
+
cyborgdb/openapi_client/models/cyborgdb_service_api_schemas_index_success_response_model.py
|
|
42
|
+
cyborgdb/openapi_client/models/cyborgdb_service_api_schemas_vectors_success_response_model.py
|
|
43
|
+
cyborgdb/openapi_client/models/delete_request.py
|
|
44
|
+
cyborgdb/openapi_client/models/error_response_model.py
|
|
45
|
+
cyborgdb/openapi_client/models/get_request.py
|
|
46
|
+
cyborgdb/openapi_client/models/get_response_model.py
|
|
47
|
+
cyborgdb/openapi_client/models/get_result_item_model.py
|
|
48
|
+
cyborgdb/openapi_client/models/http_validation_error.py
|
|
49
|
+
cyborgdb/openapi_client/models/index_config.py
|
|
50
|
+
cyborgdb/openapi_client/models/index_info_response_model.py
|
|
51
|
+
cyborgdb/openapi_client/models/index_ivf_flat_model.py
|
|
52
|
+
cyborgdb/openapi_client/models/index_ivf_model.py
|
|
53
|
+
cyborgdb/openapi_client/models/index_ivfpq_model.py
|
|
54
|
+
cyborgdb/openapi_client/models/index_list_response_model.py
|
|
55
|
+
cyborgdb/openapi_client/models/index_operation_request.py
|
|
56
|
+
cyborgdb/openapi_client/models/query_request.py
|
|
57
|
+
cyborgdb/openapi_client/models/query_response.py
|
|
58
|
+
cyborgdb/openapi_client/models/query_result_item.py
|
|
59
|
+
cyborgdb/openapi_client/models/request.py
|
|
60
|
+
cyborgdb/openapi_client/models/results.py
|
|
61
|
+
cyborgdb/openapi_client/models/train_request.py
|
|
62
|
+
cyborgdb/openapi_client/models/upsert_request.py
|
|
63
|
+
cyborgdb/openapi_client/models/validation_error.py
|
|
64
|
+
cyborgdb/openapi_client/models/validation_error_loc_inner.py
|
|
65
|
+
cyborgdb/openapi_client/models/vector_item.py
|
|
66
|
+
cyborgdb/openapi_client/rest.py
|
|
67
|
+
cyborgdb/openapi_client/test/__init__.py
|
|
68
|
+
cyborgdb/openapi_client/test/test_batch_query_request.py
|
|
69
|
+
cyborgdb/openapi_client/test/test_contents.py
|
|
70
|
+
cyborgdb/openapi_client/test/test_create_index_request.py
|
|
71
|
+
cyborgdb/openapi_client/test/test_cyborgdb_service_api_schemas_index_success_response_model.py
|
|
72
|
+
cyborgdb/openapi_client/test/test_cyborgdb_service_api_schemas_vectors_success_response_model.py
|
|
73
|
+
cyborgdb/openapi_client/test/test_default_api.py
|
|
74
|
+
cyborgdb/openapi_client/test/test_delete_request.py
|
|
75
|
+
cyborgdb/openapi_client/test/test_error_response_model.py
|
|
76
|
+
cyborgdb/openapi_client/test/test_get_request.py
|
|
77
|
+
cyborgdb/openapi_client/test/test_get_response_model.py
|
|
78
|
+
cyborgdb/openapi_client/test/test_get_result_item_model.py
|
|
79
|
+
cyborgdb/openapi_client/test/test_http_validation_error.py
|
|
80
|
+
cyborgdb/openapi_client/test/test_index_config.py
|
|
81
|
+
cyborgdb/openapi_client/test/test_index_info_response_model.py
|
|
82
|
+
cyborgdb/openapi_client/test/test_index_ivf_flat_model.py
|
|
83
|
+
cyborgdb/openapi_client/test/test_index_ivf_model.py
|
|
84
|
+
cyborgdb/openapi_client/test/test_index_ivfpq_model.py
|
|
85
|
+
cyborgdb/openapi_client/test/test_index_list_response_model.py
|
|
86
|
+
cyborgdb/openapi_client/test/test_index_operation_request.py
|
|
87
|
+
cyborgdb/openapi_client/test/test_query_request.py
|
|
88
|
+
cyborgdb/openapi_client/test/test_query_response.py
|
|
89
|
+
cyborgdb/openapi_client/test/test_query_result_item.py
|
|
90
|
+
cyborgdb/openapi_client/test/test_request.py
|
|
91
|
+
cyborgdb/openapi_client/test/test_results.py
|
|
92
|
+
cyborgdb/openapi_client/test/test_train_request.py
|
|
93
|
+
cyborgdb/openapi_client/test/test_upsert_request.py
|
|
94
|
+
cyborgdb/openapi_client/test/test_validation_error.py
|
|
95
|
+
cyborgdb/openapi_client/test/test_validation_error_loc_inner.py
|
|
96
|
+
cyborgdb/openapi_client/test/test_vector_item.py
|
|
97
|
+
cyborgdb/openapi_client_README.md
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
7.13.0
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# OpenAPI Generator Ignore
|
|
2
|
+
# Generated by openapi-generator https://github.com/openapitools/openapi-generator
|
|
3
|
+
|
|
4
|
+
# Use this file to prevent files from being overwritten by the generator.
|
|
5
|
+
# The patterns follow closely to .gitignore or .dockerignore.
|
|
6
|
+
|
|
7
|
+
# As an example, the C# client generator defines ApiClient.cs.
|
|
8
|
+
# You can make changes and tell OpenAPI Generator to ignore just this file by uncommenting the following line:
|
|
9
|
+
#ApiClient.cs
|
|
10
|
+
|
|
11
|
+
# You can match any string of characters against a directory, file or extension with a single asterisk (*):
|
|
12
|
+
#foo/*/qux
|
|
13
|
+
# The above matches foo/bar/qux and foo/baz/qux, but not foo/bar/baz/qux
|
|
14
|
+
|
|
15
|
+
# You can recursively match patterns against a directory, file or extension with a double asterisk (**):
|
|
16
|
+
#foo/**/qux
|
|
17
|
+
# This matches foo/bar/qux, foo/baz/qux, and foo/bar/baz/qux
|
|
18
|
+
|
|
19
|
+
# You can also negate patterns with an exclamation (!).
|
|
20
|
+
# For example, you can ignore all files in a docs folder with the file extension .md:
|
|
21
|
+
#docs/*.md
|
|
22
|
+
# Then explicitly reverse the ignore rule for a single file:
|
|
23
|
+
#!docs/README.md
|
|
24
|
+
|
|
25
|
+
# Ignore all files in the client folder
|
|
26
|
+
cyborgdb/client/**
|
|
27
|
+
cyborgdb/__init__.py
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# This is a comment.
|
|
2
|
+
# Each line is a file pattern followed by one or more owners.
|
|
3
|
+
|
|
4
|
+
# These owners will be the default owners for everything in
|
|
5
|
+
# the repo. Unless a later match takes precedence,
|
|
6
|
+
# @global-owner1 and @global-owner2 will be requested for
|
|
7
|
+
# review when someone opens a pull request.
|
|
8
|
+
* @dupontcyborg @ahellegit
|
cyborgdb-0.11.0/LICENSE
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
Copyright 2025, Cyborg Inc.
|
|
2
|
+
|
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
|
4
|
+
|
|
5
|
+
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
|
6
|
+
|
|
7
|
+
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
cyborgdb-0.11.0/PKG-INFO
ADDED
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: cyborgdb
|
|
3
|
+
Version: 0.11.0
|
|
4
|
+
Summary: CyborgDB Python Client
|
|
5
|
+
Author: Cyborg Inc.
|
|
6
|
+
License: MIT
|
|
7
|
+
Project-URL: Homepage, https://www.cyborg.co
|
|
8
|
+
Project-URL: Documentation, https://docs.cyborg.co
|
|
9
|
+
Keywords: OpenAPI,OpenAPI-Generator,CyborgDB Service
|
|
10
|
+
Classifier: Intended Audience :: Developers
|
|
11
|
+
Classifier: Intended Audience :: Information Technology
|
|
12
|
+
Classifier: Operating System :: OS Independent
|
|
13
|
+
Classifier: Programming Language :: Python :: 3
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
19
|
+
Classifier: Programming Language :: C++
|
|
20
|
+
Classifier: Topic :: Database
|
|
21
|
+
Classifier: Topic :: Database :: Database Engines/Servers
|
|
22
|
+
Classifier: Topic :: Security :: Cryptography
|
|
23
|
+
Classifier: Topic :: Software Development :: Libraries
|
|
24
|
+
Requires-Python: >=3.8
|
|
25
|
+
Description-Content-Type: text/markdown
|
|
26
|
+
License-File: LICENSE
|
|
27
|
+
Requires-Dist: urllib3<3.0.0,>=1.25.3
|
|
28
|
+
Requires-Dist: python-dateutil>=2.8.2
|
|
29
|
+
Requires-Dist: pydantic>=2
|
|
30
|
+
Requires-Dist: typing-extensions>=4.7.1
|
|
31
|
+
Dynamic: license-file
|
|
32
|
+
|
|
33
|
+
# CyborgDB Python SDK
|
|
34
|
+
|
|
35
|
+
The **CyborgDB Python SDK** provides a comprehensive client library for interacting with [CyborgDB](https://www.cyborg.co), the first Confidential Vector Database. This SDK enables you to perform encrypted vector operations including ingestion, search, and retrieval while maintaining end-to-end encryption of your vector embeddings.
|
|
36
|
+
|
|
37
|
+
This SDK provides an interface to `cyborgdb-service` which you will need to separately install and run in order to use the SDK. For more info, please see our [docs](https://docs.cyborg.co)
|
|
38
|
+
|
|
39
|
+
**Why CyborgDB?**
|
|
40
|
+
|
|
41
|
+
Vector Search powers critical AI applications like RAG systems, recommendation engines, and semantic search. The CyborgDB JS/TS SDK brings confidential computing to your web applications and Node.js services, ensuring vector embeddings remain encrypted throughout their entire lifecycle while providing fast, accurate search capabilities.
|
|
42
|
+
|
|
43
|
+
**Key Features**
|
|
44
|
+
|
|
45
|
+
* **End-to-End Encryption**: All vector operations maintain encryption with client-side keys
|
|
46
|
+
* **Batch Operations**: Efficient batch queries and upserts for high-throughput applications
|
|
47
|
+
* **Flexible Indexing**: Support for multiple index types (IVFFlat, IVFPQ, etc.) with customizable parameters
|
|
48
|
+
|
|
49
|
+
**Installation**
|
|
50
|
+
|
|
51
|
+
1. Install `cyborgdb-service`
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
# Install the CyborgDB Service
|
|
55
|
+
pip install cyborgdb-service
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
2. Install `cyborgdb` SDK:
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
# Install the CyborgDB Python SDK
|
|
62
|
+
pip install cyborgdb
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
**Usage**
|
|
66
|
+
|
|
67
|
+
```py
|
|
68
|
+
# TBD
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
**Advanced Usage**
|
|
72
|
+
|
|
73
|
+
**Batch Queries**
|
|
74
|
+
|
|
75
|
+
```py
|
|
76
|
+
# TBD
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
**Metadata Filtering**
|
|
80
|
+
|
|
81
|
+
```py
|
|
82
|
+
# TBD
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
**Index Training**
|
|
86
|
+
|
|
87
|
+
```py
|
|
88
|
+
# TBD
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
**Documentation**
|
|
92
|
+
|
|
93
|
+
For more detailed documentation, visit:
|
|
94
|
+
* [CyborgDB Documentation](https://docs.cyborg.co/)
|
|
95
|
+
|
|
96
|
+
**License**
|
|
97
|
+
|
|
98
|
+
The CyborgDB Python SDK is licensed under the MIT License - see the [LICENSE](./LICENSE) file for details.
|
|
99
|
+
|
|
100
|
+
**About CyborgDB**
|
|
101
|
+
|
|
102
|
+
CyborgDB is dedicated to making AI safe and secure through confidential computing. We develop solutions that enable organizations to leverage AI while maintaining the confidentiality and privacy of their data.
|
|
103
|
+
|
|
104
|
+
[Visit our website](https://www.cyborg.co/) | [Contact Us](mailto:hello@cyborg.co)
|