Skip to content

feat: integrate weaviate #581

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 38 commits into
base: main
Choose a base branch
from
Open

Conversation

ds-juliamay
Copy link
Collaborator

No description provided.

@ds-juliamay ds-juliamay linked an issue May 27, 2025 that may be closed by this pull request
@ds-juliamay ds-juliamay requested a review from mhordynski May 27, 2025 09:10
@mhordynski mhordynski marked this pull request as draft May 27, 2025 13:44
@mhordynski mhordynski marked this pull request as ready for review May 27, 2025 13:44
Copy link
Contributor

github-actions bot commented May 28, 2025

Trivy scanning results.

Report Summary

┌──────────────────────┬──────┬─────────────────┬─────────┐
│ Target │ Type │ Vulnerabilities │ Secrets │
├──────────────────────┼──────┼─────────────────┼─────────┤
│ ui/package-lock.json │ npm │ 0 │ - │
├──────────────────────┼──────┼─────────────────┼─────────┤
│ uv.lock │ uv │ 16 │ - │
└──────────────────────┴──────┴─────────────────┴─────────┘
Legend:

  • '-': Not scanned
  • '0': Clean (no security findings detected)

For OSS Maintainers: VEX Notice

If you're an OSS maintainer and Trivy has detected vulnerabilities in your project that you believe are not actually exploitable, consider issuing a VEX (Vulnerability Exploitability eXchange) statement.
VEX allows you to communicate the actual status of vulnerabilities in your project, improving security transparency and reducing false positives for your users.
Learn more and start using VEX: https://trivy.dev/v0.61/docs/supply-chain/vex/repo#publishing-vex-documents

To disable this notice, set the TRIVY_DISABLE_VEX_NOTICE environment variable.

uv.lock (uv)

Total: 16 (MEDIUM: 8, HIGH: 6, CRITICAL: 2)

┌──────────────┬────────────────┬──────────┬────────┬───────────────────┬───────────────┬──────────────────────────────────────────────────────────────┐
│ Library │ Vulnerability │ Severity │ Status │ Installed Version │ Fixed Version │ Title │
├──────────────┼────────────────┼──────────┼────────┼───────────────────┼───────────────┼──────────────────────────────────────────────────────────────┤
│ aiohttp │ CVE-2024-52303 │ MEDIUM │ fixed │ 3.10.8 │ 3.10.11 │ aiohttp: aiohttp memory leak when middleware is enabled when │
│ │ │ │ │ │ │ requesting a resource... │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2024-52303
│ ├────────────────┤ │ │ │ ├──────────────────────────────────────────────────────────────┤
│ │ CVE-2024-52304 │ │ │ │ │ aiohttp: aiohttp vulnerable to request smuggling due to │
│ │ │ │ │ │ │ incorrect parsing of chunk... │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2024-52304
├──────────────┼────────────────┼──────────┤ ├───────────────────┼───────────────┼──────────────────────────────────────────────────────────────┤
│ h11 │ CVE-2025-43859 │ CRITICAL │ │ 0.14.0 │ 0.16.0 │ h11: h11 accepts some malformed Chunked-Encoding bodies │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2025-43859
├──────────────┼────────────────┼──────────┤ ├───────────────────┼───────────────┼──────────────────────────────────────────────────────────────┤
│ jinja2 │ CVE-2024-56201 │ MEDIUM │ │ 3.1.4 │ 3.1.5 │ jinja2: Jinja has a sandbox breakout through malicious │
│ │ │ │ │ │ │ filenames │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2024-56201
│ ├────────────────┤ │ │ │ ├──────────────────────────────────────────────────────────────┤
│ │ CVE-2024-56326 │ │ │ │ │ jinja2: Jinja has a sandbox breakout through indirect │
│ │ │ │ │ │ │ reference to format method... │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2024-56326
│ ├────────────────┤ │ │ ├───────────────┼──────────────────────────────────────────────────────────────┤
│ │ CVE-2025-27516 │ │ │ │ 3.1.6 │ jinja2: Jinja sandbox breakout through attr filter selecting │
│ │ │ │ │ │ │ format method │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2025-27516
├──────────────┼────────────────┼──────────┤ ├───────────────────┼───────────────┼──────────────────────────────────────────────────────────────┤
│ litellm │ CVE-2024-8984 │ HIGH │ │ 1.55.0 │ 1.56.2 │ LiteLLM Vulnerable to Denial of Service (DoS) via Crafted │
│ │ │ │ │ │ │ HTTP Request │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2024-8984
│ ├────────────────┤ │ │ ├───────────────┼──────────────────────────────────────────────────────────────┤
│ │ CVE-2025-0628 │ │ │ │ 1.61.15 │ LiteLLM Has an Improper Authorization Vulnerability │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2025-0628
├──────────────┼────────────────┤ │ ├───────────────────┼───────────────┼──────────────────────────────────────────────────────────────┤
│ setuptools │ CVE-2025-47273 │ │ │ 75.1.0 │ 78.1.1 │ setuptools: Path Traversal Vulnerability in setuptools │
│ │ │ │ │ │ │ PackageIndex │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2025-47273
├──────────────┼────────────────┼──────────┤ ├───────────────────┼───────────────┼──────────────────────────────────────────────────────────────┤
│ torch │ CVE-2025-32434 │ CRITICAL │ │ 2.2.2 │ 2.6.0 │ PyTorch is a Python package that provides tensor computation │
│ │ │ │ │ │ │ with stro ...... │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2025-32434
├──────────────┼────────────────┼──────────┤ ├───────────────────┼───────────────┼──────────────────────────────────────────────────────────────┤
│ transformers │ CVE-2024-11392 │ HIGH │ │ 4.44.2 │ 4.48.0 │ transformers: Hugging Face Transformers MobileViTV2 │
│ │ │ │ │ │ │ Deserialization of Untrusted Data Remote Code Execution... │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2024-11392
│ ├────────────────┤ │ │ │ ├──────────────────────────────────────────────────────────────┤
│ │ CVE-2024-11393 │ │ │ │ │ transformers: Hugging Face Transformers MaskFormer Model │
│ │ │ │ │ │ │ Deserialization of Untrusted Data Remote Code... │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2024-11393
│ ├────────────────┤ │ │ │ ├──────────────────────────────────────────────────────────────┤
│ │ CVE-2024-11394 │ │ │ │ │ transformers: Hugging Face Transformers Trax Model │
│ │ │ │ │ │ │ Deserialization of Untrusted Data Remote Code... │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2024-11394
│ ├────────────────┼──────────┤ │ │ ├──────────────────────────────────────────────────────────────┤
│ │ CVE-2024-12720 │ MEDIUM │ │ │ │ Transformers Regular Expression Denial of Service (ReDoS) │
│ │ │ │ │ │ │ vulnerability │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2024-12720
│ ├────────────────┤ │ │ ├───────────────┼──────────────────────────────────────────────────────────────┤
│ │ CVE-2025-1194 │ │ │ │ 4.50.0 │ Transformers Regular Expression Denial of Service (ReDoS) │
│ │ │ │ │ │ │ vulnerability │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2025-1194
│ ├────────────────┤ │ │ │ ├──────────────────────────────────────────────────────────────┤
│ │ CVE-2025-2099 │ │ │ │ │ transformers: Regular Expression Denial of Service (ReDoS) │
│ │ │ │ │ │ │ in huggingface/transformers │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2025-2099
└──────────────┴────────────────┴──────────┴────────┴───────────────────┴───────────────┴──────────────────────────────────────────────────────────────┘

Copy link
Contributor

github-actions bot commented May 28, 2025

badge

Code Coverage Summary

Filename                                                                                                     Stmts    Miss  Cover    Missing
---------------------------------------------------------------------------------------------------------  -------  ------  -------  -------------------------------------------------------------------------------------------------------------
packages/ragbits-chat/src/ragbits/chat/__init__.py                                                               0       0  100.00%
packages/ragbits-chat/src/ragbits/chat/api.py                                                                   98       8  91.84%   69-70, 93, 119, 152-161
packages/ragbits-chat/src/ragbits/chat/cli.py                                                                    9       2  77.78%   37-42
packages/ragbits-chat/src/ragbits/chat/history/__init__.py                                                       0       0  100.00%
packages/ragbits-chat/src/ragbits/chat/history/compressors/__init__.py                                           3       0  100.00%
packages/ragbits-chat/src/ragbits/chat/history/compressors/base.py                                              10       0  100.00%
packages/ragbits-chat/src/ragbits/chat/history/compressors/llm.py                                               29       1  96.55%   79
packages/ragbits-chat/src/ragbits/chat/interface/__init__.py                                                     2       0  100.00%
packages/ragbits-chat/src/ragbits/chat/interface/_interface.py                                                  76      10  86.84%   37, 46-47, 64, 116-117, 162, 200-201, 217
packages/ragbits-chat/src/ragbits/chat/interface/forms.py                                                       15       0  100.00%
packages/ragbits-chat/src/ragbits/chat/interface/types.py                                                       37       3  91.89%   61, 71, 81
packages/ragbits-chat/src/ragbits/chat/persistence/__init__.py                                                   2       0  100.00%
packages/ragbits-chat/src/ragbits/chat/persistence/base.py                                                       6       1  83.33%   28
packages/ragbits-chat/src/ragbits/chat/persistence/sql.py                                                       91       3  96.70%   292-294
packages/ragbits-chat/tests/unit/test_api.py                                                                   123       1  99.19%   186
packages/ragbits-chat/tests/unit/history/test_llm_compressor.py                                                 64       0  100.00%
packages/ragbits-chat/tests/unit/persistence/test_sql.py                                                        74       0  100.00%
packages/ragbits-cli/src/ragbits/cli/__init__.py                                                                33       4  87.88%   78-79, 86-87
packages/ragbits-cli/src/ragbits/cli/_utils.py                                                                  23       4  82.61%   47, 65-67
packages/ragbits-cli/src/ragbits/cli/state.py                                                                   79       3  96.20%   50-51, 61
packages/ragbits-cli/tests/unit/test_state.py                                                                   72       2  97.22%   103-104
packages/ragbits-core/src/ragbits/core/__init__.py                                                               8       2  75.00%   9-10
packages/ragbits-core/src/ragbits/core/cli.py                                                                    6       0  100.00%
packages/ragbits-core/src/ragbits/core/options.py                                                               17       0  100.00%
packages/ragbits-core/src/ragbits/core/types.py                                                                  9       0  100.00%
packages/ragbits-core/src/ragbits/core/audit/__init__.py                                                         5       0  100.00%
packages/ragbits-core/src/ragbits/core/audit/metrics/__init__.py                                                27       8  70.37%   37-46, 54
packages/ragbits-core/src/ragbits/core/audit/metrics/base.py                                                    36       0  100.00%
packages/ragbits-core/src/ragbits/core/audit/traces/__init__.py                                                 74       5  93.24%   48-51, 58-60
packages/ragbits-core/src/ragbits/core/audit/traces/base.py                                                    183      57  68.85%   156-165, 178-179, 200, 215-216, 220, 230, 233-234, 249, 256, 262-264, 271-274, 334-345, 352-360, 374, 390-409
packages/ragbits-core/src/ragbits/core/audit/traces/cli.py                                                     132      29  78.03%   88-93, 112-139, 156, 163, 172-173, 176-177
packages/ragbits-core/src/ragbits/core/embeddings/__init__.py                                                    4       0  100.00%
packages/ragbits-core/src/ragbits/core/embeddings/base.py                                                       32       5  84.38%   20-21, 24, 77, 92
packages/ragbits-core/src/ragbits/core/embeddings/exceptions.py                                                 17       7  58.82%   7-8, 17, 26-27, 36, 45
packages/ragbits-core/src/ragbits/core/embeddings/dense/__init__.py                                              4       0  100.00%
packages/ragbits-core/src/ragbits/core/embeddings/dense/base.py                                                  9       1  88.89%   44
packages/ragbits-core/src/ragbits/core/embeddings/dense/fastembed.py                                            35       3  91.43%   34, 62-63
packages/ragbits-core/src/ragbits/core/embeddings/dense/litellm.py                                              56      11  80.36%   131-136, 139, 143-145, 166
packages/ragbits-core/src/ragbits/core/embeddings/dense/local.py                                                32       5  84.38%   13-14, 52, 68-69
packages/ragbits-core/src/ragbits/core/embeddings/dense/noop.py                                                 32       1  96.88%   99
packages/ragbits-core/src/ragbits/core/embeddings/dense/vertex_multimodal.py                                    60      24  60.00%   13-14, 57, 62, 102-123, 139-148, 175, 194-198
packages/ragbits-core/src/ragbits/core/embeddings/sparse/__init__.py                                             4       0  100.00%
packages/ragbits-core/src/ragbits/core/embeddings/sparse/bag_of_tokens.py                                       53       5  90.57%   46, 67, 69, 76, 87
packages/ragbits-core/src/ragbits/core/embeddings/sparse/base.py                                                12       1  91.67%   48
packages/ragbits-core/src/ragbits/core/embeddings/sparse/fastembed.py                                           31       2  93.55%   25, 52
packages/ragbits-core/src/ragbits/core/llms/__init__.py                                                          4       0  100.00%
packages/ragbits-core/src/ragbits/core/llms/base.py                                                             85       2  97.65%   67, 79
packages/ragbits-core/src/ragbits/core/llms/exceptions.py                                                       20       5  75.00%   17, 26-27, 36, 45
packages/ragbits-core/src/ragbits/core/llms/factory.py                                                          12       2  83.33%   30, 51
packages/ragbits-core/src/ragbits/core/llms/litellm.py                                                         134      36  73.13%   107, 122-123, 165, 171, 226-277, 301, 305, 309-314, 325, 354
packages/ragbits-core/src/ragbits/core/llms/local.py                                                            73      43  41.10%   10-13, 69-77, 89-90, 111-143, 164-216
packages/ragbits-core/src/ragbits/core/llms/mock.py                                                             30       3  90.00%   70-73
packages/ragbits-core/src/ragbits/core/prompt/__init__.py                                                        2       0  100.00%
packages/ragbits-core/src/ragbits/core/prompt/_cli.py                                                           53      22  58.49%   37-45, 59-61, 69-80, 88-90, 104-112
packages/ragbits-core/src/ragbits/core/prompt/base.py                                                           28       0  100.00%
packages/ragbits-core/src/ragbits/core/prompt/discovery.py                                                      36       2  94.44%   55-56
packages/ragbits-core/src/ragbits/core/prompt/exceptions.py                                                      7       0  100.00%
packages/ragbits-core/src/ragbits/core/prompt/parsers.py                                                        35       0  100.00%
packages/ragbits-core/src/ragbits/core/prompt/prompt.py                                                        164       1  99.39%   208
packages/ragbits-core/src/ragbits/core/sources/__init__.py                                                       9       0  100.00%
packages/ragbits-core/src/ragbits/core/sources/azure.py                                                         95      13  86.32%   65-66, 92-102, 189-190
packages/ragbits-core/src/ragbits/core/sources/base.py                                                          74       3  95.95%   46, 185-186
packages/ragbits-core/src/ragbits/core/sources/exceptions.py                                                    16       0  100.00%
packages/ragbits-core/src/ragbits/core/sources/gcs.py                                                           63       0  100.00%
packages/ragbits-core/src/ragbits/core/sources/git.py                                                           94       3  96.81%   188, 195, 211
packages/ragbits-core/src/ragbits/core/sources/hf.py                                                            73      16  78.08%   57-60, 64-65, 85-88, 108-110, 138, 145-146
packages/ragbits-core/src/ragbits/core/sources/local.py                                                         41       2  95.12%   39, 80
packages/ragbits-core/src/ragbits/core/sources/s3.py                                                           105      17  83.81%   54-57, 75, 88-93, 117, 128-131, 162, 179
packages/ragbits-core/src/ragbits/core/sources/web.py                                                           41       1  97.56%   75
packages/ragbits-core/src/ragbits/core/utils/__init__.py                                                         2       0  100.00%
packages/ragbits-core/src/ragbits/core/utils/_pyproject.py                                                      38       1  97.37%   113
packages/ragbits-core/src/ragbits/core/utils/config_handling.py                                                 72       8  88.89%   16, 54-55, 62-63, 152-154
packages/ragbits-core/src/ragbits/core/utils/decorators.py                                                      29       0  100.00%
packages/ragbits-core/src/ragbits/core/utils/dict_transformations.py                                           143      35  75.52%   24, 27, 80, 90, 110-115, 126-133, 147-151, 166-167, 173, 185-191, 195, 254
packages/ragbits-core/src/ragbits/core/utils/helpers.py                                                         11       0  100.00%
packages/ragbits-core/src/ragbits/core/utils/pydantic.py                                                        13       2  84.62%   13, 16
packages/ragbits-core/src/ragbits/core/utils/secrets.py                                                         18       0  100.00%
packages/ragbits-core/src/ragbits/core/vector_stores/__init__.py                                                 3       0  100.00%
packages/ragbits-core/src/ragbits/core/vector_stores/_cli.py                                                    50       4  92.00%   67, 89, 95, 119
packages/ragbits-core/src/ragbits/core/vector_stores/base.py                                                    96       3  96.88%   39, 200, 272
packages/ragbits-core/src/ragbits/core/vector_stores/chroma.py                                                  91       2  97.80%   74, 112
packages/ragbits-core/src/ragbits/core/vector_stores/hybrid.py                                                  34       0  100.00%
packages/ragbits-core/src/ragbits/core/vector_stores/hybrid_strategies.py                                       62       0  100.00%
packages/ragbits-core/src/ragbits/core/vector_stores/in_memory.py                                               59       0  100.00%
packages/ragbits-core/src/ragbits/core/vector_stores/pgvector.py                                               160       7  95.63%   114, 273-275, 304-306
packages/ragbits-core/src/ragbits/core/vector_stores/qdrant.py                                                  97       5  94.85%   80-95, 160, 181
packages/ragbits-core/src/ragbits/core/vector_stores/weaviate_vector.py                                        108       2  98.15%   98, 192
packages/ragbits-core/tests/conftest.py                                                                         12       0  100.00%
packages/ragbits-core/tests/cli/__init__.py                                                                      0       0  100.00%
packages/ragbits-core/tests/cli/test_cli_trace_handler.py                                                       47       3  93.62%   29, 42, 55
packages/ragbits-core/tests/cli/test_vector_store.py                                                           115       0  100.00%
packages/ragbits-core/tests/integration/sources/test_git.py                                                     68       6  91.18%   147-156
packages/ragbits-core/tests/integration/sources/test_hf.py                                                      19       9  52.63%   16-21, 32-37
packages/ragbits-core/tests/integration/sources/test_s3.py                                                      42       0  100.00%
packages/ragbits-core/tests/integration/vector_stores/__init__.py                                                0       0  100.00%
packages/ragbits-core/tests/integration/vector_stores/test_keyword_search.py                                    67       0  100.00%
packages/ragbits-core/tests/integration/vector_stores/test_vector_store.py                                     140       1  99.29%   51
packages/ragbits-core/tests/integration/vector_stores/test_vector_store_sparse.py                               63       0  100.00%
packages/ragbits-core/tests/unit/__init__.py                                                                     0       0  100.00%
packages/ragbits-core/tests/unit/test_options.py                                                                21       0  100.00%
packages/ragbits-core/tests/unit/audit/test_cli.py                                                             107       0  100.00%
packages/ragbits-core/tests/unit/audit/test_metrics.py                                                          28       1  96.43%   11
packages/ragbits-core/tests/unit/audit/test_trace.py                                                            97       3  96.91%   16, 19, 22
packages/ragbits-core/tests/unit/embeddings/test_bag_of_tokens.py                                               54       0  100.00%
packages/ragbits-core/tests/unit/embeddings/test_fastembed.py                                                   50       0  100.00%
packages/ragbits-core/tests/unit/embeddings/test_from_config.py                                                 34       0  100.00%
packages/ragbits-core/tests/unit/embeddings/test_litellm.py                                                     64       0  100.00%
packages/ragbits-core/tests/unit/embeddings/test_local.py                                                       42       0  100.00%
packages/ragbits-core/tests/unit/embeddings/test_noop.py                                                        26       0  100.00%
packages/ragbits-core/tests/unit/embeddings/test_vector_size.py                                                 33       0  100.00%
packages/ragbits-core/tests/unit/embeddings/test_vertex_multimodal.py                                           39       0  100.00%
packages/ragbits-core/tests/unit/llms/__init__.py                                                                0       0  100.00%
packages/ragbits-core/tests/unit/llms/test_base.py                                                             101       0  100.00%
packages/ragbits-core/tests/unit/llms/test_from_config.py                                                       27       0  100.00%
packages/ragbits-core/tests/unit/llms/test_litellm.py                                                          114       0  100.00%
packages/ragbits-core/tests/unit/llms/factory/__init__.py                                                        0       0  100.00%
packages/ragbits-core/tests/unit/llms/factory/test_get_preferred_llm.py                                         12       0  100.00%
packages/ragbits-core/tests/unit/prompts/__init__.py                                                             0       0  100.00%
packages/ragbits-core/tests/unit/prompts/test_parsers.py                                                        65       0  100.00%
packages/ragbits-core/tests/unit/prompts/test_prompt.py                                                        251       0  100.00%
packages/ragbits-core/tests/unit/prompts/discovery/__init__.py                                                   0       0  100.00%
packages/ragbits-core/tests/unit/prompts/discovery/prompt_classes_for_tests.py                                  30       0  100.00%
packages/ragbits-core/tests/unit/prompts/discovery/test_prompt_discovery.py                                     18       0  100.00%
packages/ragbits-core/tests/unit/prompts/discovery/ragbits_tests_pkg_with_prompts/__init__.py                    2       1  50.00%   3
packages/ragbits-core/tests/unit/prompts/discovery/ragbits_tests_pkg_with_prompts/prompts/__init__.py            3       2  33.33%   2-4
packages/ragbits-core/tests/unit/prompts/discovery/ragbits_tests_pkg_with_prompts/prompts/temp_prompt1.py       14       0  100.00%
packages/ragbits-core/tests/unit/prompts/discovery/ragbits_tests_pkg_with_prompts/prompts/temp_prompt2.py       14       0  100.00%
packages/ragbits-core/tests/unit/sources/test_aws.py                                                            23       0  100.00%
packages/ragbits-core/tests/unit/sources/test_azure.py                                                          70       0  100.00%
packages/ragbits-core/tests/unit/sources/test_exceptions.py                                                     22       0  100.00%
packages/ragbits-core/tests/unit/sources/test_gcs.py                                                            33       6  81.82%   42-47
packages/ragbits-core/tests/unit/sources/test_git.py                                                           110       0  100.00%
packages/ragbits-core/tests/unit/sources/test_hf.py                                                             12       0  100.00%
packages/ragbits-core/tests/unit/sources/test_local.py                                                          13       0  100.00%
packages/ragbits-core/tests/unit/sources/test_source_discriminator.py                                           36       0  100.00%
packages/ragbits-core/tests/unit/sources/test_web.py                                                            43       0  100.00%
packages/ragbits-core/tests/unit/utils/__init__.py                                                               0       0  100.00%
packages/ragbits-core/tests/unit/utils/test_config_handling.py                                                  64       2  96.88%   27-28
packages/ragbits-core/tests/unit/utils/test_decorators.py                                                       26       2  92.31%   17, 39
packages/ragbits-core/tests/unit/utils/test_dict_transformations.py                                             98       0  100.00%
packages/ragbits-core/tests/unit/utils/test_helpers.py                                                           6       0  100.00%
packages/ragbits-core/tests/unit/utils/test_secrets.py                                                          24       0  100.00%
packages/ragbits-core/tests/unit/utils/pyproject/test_find.py                                                   13       0  100.00%
packages/ragbits-core/tests/unit/utils/pyproject/test_get_config.py                                              9       0  100.00%
packages/ragbits-core/tests/unit/utils/pyproject/test_get_instace.py                                            37       0  100.00%
packages/ragbits-core/tests/unit/vector_stores/test_chroma.py                                                   81       0  100.00%
packages/ragbits-core/tests/unit/vector_stores/test_from_config.py                                              55       0  100.00%
packages/ragbits-core/tests/unit/vector_stores/test_hybrid.py                                                   74       0  100.00%
packages/ragbits-core/tests/unit/vector_stores/test_hybrid_strategies.py                                        31       0  100.00%
packages/ragbits-core/tests/unit/vector_stores/test_in_memory.py                                               102       0  100.00%
packages/ragbits-core/tests/unit/vector_stores/test_pgvector.py                                                257       0  100.00%
packages/ragbits-core/tests/unit/vector_stores/test_qdrant.py                                                  100       0  100.00%
packages/ragbits-core/tests/unit/vector_stores/test_weaviate.py                                                129       0  100.00%
packages/ragbits-document-search/src/ragbits/document_search/__init__.py                                         2       0  100.00%
packages/ragbits-document-search/src/ragbits/document_search/_main.py                                           91       0  100.00%
packages/ragbits-document-search/src/ragbits/document_search/cli.py                                             40       2  95.00%   86, 105
packages/ragbits-document-search/src/ragbits/document_search/documents/__init__.py                               0       0  100.00%
packages/ragbits-document-search/src/ragbits/document_search/documents/document.py                              78       2  97.44%   49, 93
packages/ragbits-document-search/src/ragbits/document_search/documents/element.py                               86      14  83.72%   97, 115, 179-187, 197, 206-208
packages/ragbits-document-search/src/ragbits/document_search/ingestion/__init__.py                               0       0  100.00%
packages/ragbits-document-search/src/ragbits/document_search/ingestion/enrichers/__init__.py                     4       0  100.00%
packages/ragbits-document-search/src/ragbits/document_search/ingestion/enrichers/base.py                        21       0  100.00%
packages/ragbits-document-search/src/ragbits/document_search/ingestion/enrichers/exceptions.py                  14       0  100.00%
packages/ragbits-document-search/src/ragbits/document_search/ingestion/enrichers/image.py                       30       0  100.00%
packages/ragbits-document-search/src/ragbits/document_search/ingestion/enrichers/router.py                      26       0  100.00%
packages/ragbits-document-search/src/ragbits/document_search/ingestion/parsers/__init__.py                       3       0  100.00%
packages/ragbits-document-search/src/ragbits/document_search/ingestion/parsers/base.py                          28       0  100.00%
packages/ragbits-document-search/src/ragbits/document_search/ingestion/parsers/docling.py                       39       1  97.44%   129
packages/ragbits-document-search/src/ragbits/document_search/ingestion/parsers/exceptions.py                    14       0  100.00%
packages/ragbits-document-search/src/ragbits/document_search/ingestion/parsers/router.py                        24       0  100.00%
packages/ragbits-document-search/src/ragbits/document_search/ingestion/parsers/unstructured.py                  66      12  81.82%   136-154, 188, 233-248
packages/ragbits-document-search/src/ragbits/document_search/ingestion/strategies/__init__.py                    5       0  100.00%
packages/ragbits-document-search/src/ragbits/document_search/ingestion/strategies/base.py                       86       4  95.35%   153, 212, 215-216
packages/ragbits-document-search/src/ragbits/document_search/ingestion/strategies/batched.py                    68       8  88.24%   162, 202-214, 251-252
packages/ragbits-document-search/src/ragbits/document_search/ingestion/strategies/ray.py                        34       0  100.00%
packages/ragbits-document-search/src/ragbits/document_search/ingestion/strategies/sequential.py                 22       0  100.00%
packages/ragbits-document-search/src/ragbits/document_search/retrieval/__init__.py                               0       0  100.00%
packages/ragbits-document-search/src/ragbits/document_search/retrieval/rephrasers/__init__.py                    4       0  100.00%
packages/ragbits-document-search/src/ragbits/document_search/retrieval/rephrasers/base.py                       14       0  100.00%
packages/ragbits-document-search/src/ragbits/document_search/retrieval/rephrasers/llm.py                        40       5  87.50%   51, 115-118
packages/ragbits-document-search/src/ragbits/document_search/retrieval/rephrasers/noop.py                        8       0  100.00%
packages/ragbits-document-search/src/ragbits/document_search/retrieval/rerankers/__init__.py                     3       0  100.00%
packages/ragbits-document-search/src/ragbits/document_search/retrieval/rerankers/answerai.py                    29       0  100.00%
packages/ragbits-document-search/src/ragbits/document_search/retrieval/rerankers/base.py                        19       0  100.00%
packages/ragbits-document-search/src/ragbits/document_search/retrieval/rerankers/litellm.py                     27       0  100.00%
packages/ragbits-document-search/src/ragbits/document_search/retrieval/rerankers/llm.py                         59       1  98.31%   173
packages/ragbits-document-search/src/ragbits/document_search/retrieval/rerankers/noop.py                        10       0  100.00%
packages/ragbits-document-search/src/ragbits/document_search/retrieval/rerankers/rrf.py                         28       2  92.86%   50, 60
packages/ragbits-document-search/tests/cli/custom_cli_source.py                                                 22       1  95.45%   32
packages/ragbits-document-search/tests/cli/test_ingest.py                                                       56       0  100.00%
packages/ragbits-document-search/tests/cli/test_search.py                                                       71       0  100.00%
packages/ragbits-document-search/tests/integration/__init__.py                                                   0       0  100.00%
packages/ragbits-document-search/tests/integration/test_docling.py                                              10       0  100.00%
packages/ragbits-document-search/tests/integration/test_rerankers.py                                            32       9  71.88%   32-39, 59-64
packages/ragbits-document-search/tests/integration/test_unstructured.py                                         12       4  66.67%   62-67
packages/ragbits-document-search/tests/unit/test_config.py                                                      63       0  100.00%
packages/ragbits-document-search/tests/unit/test_document_parser_router.py                                      24       0  100.00%
packages/ragbits-document-search/tests/unit/test_document_parsers.py                                            47       0  100.00%
packages/ragbits-document-search/tests/unit/test_document_search.py                                            238       1  99.58%   480
packages/ragbits-document-search/tests/unit/test_document_search_ingest_errors.py                               38       0  100.00%
packages/ragbits-document-search/tests/unit/test_documents.py                                                   13       0  100.00%
packages/ragbits-document-search/tests/unit/test_element_enricher_router.py                                     23       0  100.00%
packages/ragbits-document-search/tests/unit/test_element_enrichers.py                                           56       1  98.21%   25
packages/ragbits-document-search/tests/unit/test_elements.py                                                    21       0  100.00%
packages/ragbits-document-search/tests/unit/test_ingest_strategies.py                                           43       0  100.00%
packages/ragbits-document-search/tests/unit/test_llm_reranker.py                                                43       0  100.00%
packages/ragbits-document-search/tests/unit/test_rephrasers.py                                                  26       0  100.00%
packages/ragbits-document-search/tests/unit/test_rerankers.py                                                   80       1  98.75%   25
packages/ragbits-document-search/tests/unit/testprojects/project_with_instance_factory/__init__.py               0       0  100.00%
packages/ragbits-document-search/tests/unit/testprojects/project_with_instance_factory/factories.py             22       0  100.00%
packages/ragbits-evaluate/src/ragbits/evaluate/__init__.py                                                       0       0  100.00%
packages/ragbits-evaluate/src/ragbits/evaluate/cli.py                                                           46       3  93.48%   133, 135, 137
packages/ragbits-evaluate/src/ragbits/evaluate/evaluator.py                                                     77       1  98.70%   201
packages/ragbits-evaluate/src/ragbits/evaluate/optimizer.py                                                     92      18  80.43%   162-168, 187, 190-191, 194, 198-204, 207-210
packages/ragbits-evaluate/src/ragbits/evaluate/utils.py                                                         58      37  36.21%   31-50, 62-69, 98-101, 117-129, 140-149, 159-160
packages/ragbits-evaluate/src/ragbits/evaluate/dataloaders/__init__.py                                           2       0  100.00%
packages/ragbits-evaluate/src/ragbits/evaluate/dataloaders/base.py                                              34       4  88.24%   58-60, 79
packages/ragbits-evaluate/src/ragbits/evaluate/dataloaders/document_search.py                                   13       0  100.00%
packages/ragbits-evaluate/src/ragbits/evaluate/dataloaders/exceptions.py                                        10       5  50.00%   10-12, 21-25
packages/ragbits-evaluate/src/ragbits/evaluate/metrics/__init__.py                                               2       0  100.00%
packages/ragbits-evaluate/src/ragbits/evaluate/metrics/base.py                                                  27       0  100.00%
packages/ragbits-evaluate/src/ragbits/evaluate/metrics/document_search.py                                       23       0  100.00%
packages/ragbits-evaluate/src/ragbits/evaluate/pipelines/__init__.py                                            11       1  90.91%   26
packages/ragbits-evaluate/src/ragbits/evaluate/pipelines/base.py                                                24       0  100.00%
packages/ragbits-evaluate/src/ragbits/evaluate/pipelines/document_search.py                                     38       6  84.21%   68-71, 80-84
packages/ragbits-evaluate/tests/cli/test_run_evaluation.py                                                      25       0  100.00%
packages/ragbits-evaluate/tests/unit/test_evaluator.py                                                          65       0  100.00%
packages/ragbits-evaluate/tests/unit/test_metrics.py                                                            77       0  100.00%
packages/ragbits-evaluate/tests/unit/test_optimizer.py                                                          68       0  100.00%
packages/ragbits-guardrails/src/ragbits/guardrails/__init__.py                                                   0       0  100.00%
packages/ragbits-guardrails/src/ragbits/guardrails/base.py                                                      15       0  100.00%
packages/ragbits-guardrails/src/ragbits/guardrails/openai_moderation.py                                         19       5  73.68%   29-33
packages/ragbits-guardrails/tests/unit/test_openai_moderation.py                                                35       0  100.00%
TOTAL                                                                                                        10114     632  93.75%

Diff against main

Filename                                                                        Stmts    Miss  Cover
----------------------------------------------------------------------------  -------  ------  --------
packages/ragbits-core/src/ragbits/core/llms/litellm.py                             +8      +2  +0.11%
packages/ragbits-core/src/ragbits/core/sources/web.py                               0      -1  +2.44%
packages/ragbits-core/src/ragbits/core/vector_stores/weaviate_vector.py          +108      +2  +98.15%
packages/ragbits-core/tests/integration/vector_stores/test_keyword_search.py      +67       0  +100.00%
packages/ragbits-core/tests/integration/vector_stores/test_vector_store.py        +18       0  +0.11%
packages/ragbits-core/tests/unit/vector_stores/test_from_config.py                +15       0  +100.00%
packages/ragbits-core/tests/unit/vector_stores/test_weaviate.py                  +129       0  +100.00%
TOTAL                                                                            +345      +3  +0.19%

Results for commit: 2962e25

Minimum allowed coverage is 60%

♻️ This comment has been updated with latest results

from weaviate import WeaviateAsyncClient
from weaviate.classes.config import Configure, VectorDistances
from weaviate.classes.query import Filter, MetadataQuery
from weaviate.collections.classes.filters import _Filters
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It seems there is a public alias in weaviate.collections.classes.filters called FilterReturn - maybe we should use it instead?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changed to FilterReturn

wvc.data.DataObject(
uuid=str(entry.id),
properties=self._flatten_metadata(
entry.model_dump(exclude={"id"}, exclude_none=True, mode="json") # type: ignore
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why "type: ignore" here?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I fixed all these mypy issues


outputs_results = []
for object_ in results.objects:
entry_raw = {"uuid": object_.uuid, "properties": self._unflatten_metadata(object_.properties)} # type: ignore
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please remove type ignores

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same as above

@@ -89,6 +89,10 @@ hf = [
s3 = [
"boto3>=1.35.42,<2.0.0",
]
weaviate = [
"weaviate-client>=4.9.6",
"psycopg[binary,pool]>=3.2.6",
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hmmm, why psycopg here?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There was some error with protobuf after I installed weaviate and I had to add this package to make it work

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

also caught my attention, do you remember what the error was?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it was similar to this: ImportError: cannot import name 'runtime_version' from 'google.protobuf' but I don't remember exactly where I found the solution

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i can't reproduce it, i removed this dep and the example works fine

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I had some issues with env so maybe this issue resulted from something being broken in my dependencies

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed it and code works fine

Enables the WeaviateVectorStore to be pickled and unpickled.
"""
# TODO: To be implemented. Required for Ray processing.
raise NotImplementedError
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can we implement this? if there is a way to do it in a similar way to qdrant, i'd do it here

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

feat: integrate Weaviate
4 participants