Skip to content

LCORE-1438: updated docs#1324

Merged
tisnik merged 2 commits into
lightspeed-core:mainfrom
tisnik:lcore-1438-updated-docs
Mar 16, 2026
Merged

LCORE-1438: updated docs#1324
tisnik merged 2 commits into
lightspeed-core:mainfrom
tisnik:lcore-1438-updated-docs

Conversation

@tisnik

@tisnik tisnik commented Mar 16, 2026

Copy link
Copy Markdown
Contributor

Description

LCORE-1438: updated docs

Type of change

  • Refactor
  • New feature
  • Bug fix
  • CVE fix
  • Optimization
  • Documentation Update
  • Configuration Update
  • Bump-up service version
  • Bump-up dependent library
  • Bump-up library or tool used for development (does not change the final image)
  • CI configuration change
  • Konflux configuration change
  • Unit tests improvement
  • Integration tests improvement
  • End to end tests improvement
  • Benchmarks improvement

Tools used to create PR

  • Assisted-by: N/A
  • Generated by: N/A

Related Tickets & Documents

  • Related Issue #LCORE-1438

Summary by CodeRabbit

  • New Features

    • Added RAG and OKP configuration options for flexible retrieval strategies.
    • Added score_multiplier field to weight relevance scores across knowledge sources.
    • Added referenced_documents field to message responses.
  • Documentation

    • Updated configuration documentation to reflect new RAG and OKP provider settings.
    • Replaced Solr-specific configuration references with generalized RAG configuration.

@coderabbitai

coderabbitai Bot commented Mar 16, 2026

Copy link
Copy Markdown
Contributor

Walkthrough

Documentation updates reflecting architectural configuration changes: replacing Solr-specific configuration references with generalized RAG (Retrieval-Augmented Generation) configuration, introducing OKP (Offline Knowledge Portal) provider configuration, adding score_multiplier field to ByokRag, and referenced_documents field to Message model.

Changes

Cohort / File(s) Summary
Configuration Schema Documentation
docs/config.html, docs/config.md, docs/openapi.md
Added new OkpConfiguration and RagConfiguration sections with field definitions and descriptions. Replaced SolrConfiguration references with generalized rag configuration. Added score_multiplier to ByokRag and referenced_documents to Message model. Updated field descriptions for backward compatibility and new RAG strategy usage.
UML Class Diagram
docs/config.puml
Added OkpConfiguration and RagConfiguration as new public classes derived from ConfigurationBase. Updated Configuration class to include okp and rag fields while removing solr field. Updated ByokRag with explicit str type for db_path and new score_multiplier: float field. Added associations between Configuration and new configuration classes.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Title check ❓ Inconclusive The title 'LCORE-1438: updated docs' is vague and generic, using non-descriptive terms that don't convey meaningful information about the specific documentation changes. Replace with a more specific title that highlights the main documentation change, such as 'Replace Solr configuration with generalized RAG and OKP configuration in docs' or 'Update docs to introduce RagConfiguration and OkpConfiguration entities'.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
📝 Coding Plan
  • Generate coding plan for human review comments

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 5

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@docs/config.md`:
- Line 138: Update the docs entry for score_multiplier to explicitly state the
validation boundary is strictly greater than 0 (values must be > 0) and that 0
is invalid; mention that to effectively disable or suppress a store you should
omit the score_multiplier or use a very small positive value rather than setting
it to 0. Ensure the text references the symbol score_multiplier and clarifies
that values >1 boost and values between 0 and 1 reduce relevance, but must not
be zero or negative.
- Around line 410-411: The example filter in the chunk_filter_query description
is being interpreted as emphasis and losing the wildcard characters; update the
chunk_filter_query documentation string so the example is wrapped in inline code
(backticks) — e.g., change product:*openshift* to `product:*openshift*` inside
the chunk_filter_query description to preserve the literal query in generated
HTML.

In `@docs/openapi.md`:
- Line 4791: The docs entry for the parameter "shield_ids" uses Python-specific
"None" in a JSON/YAML-facing description; update the text to use
JSON/YAML-friendly terms such as "null" or "omitted" (e.g., "If null or omitted,
all configured shields are used.") and make the same change for the other
occurrences referenced (around lines 4971-4973) so the public OpenAPI docs do
not leak Python implementation terminology.
- Around line 4640-4641: The Markdown example in the docs for the
chunk_filter_query column renders product:*openshift* as emphasis; update the
docs by wrapping the example query (e.g. product:*openshift*) in inline code
spans so the asterisks are preserved literally—locate the table row describing
chunk_filter_query and change the example text to use backticks around the
query.
- Around line 4528-4535: The table row for referenced_documents is missing a
type; update the docs/openapi.md table so the Type column for
referenced_documents clearly states that it is an array of ReferencedDocument
(e.g., "array[ReferencedDocument]" or "Optional[list[ReferencedDocument]]") and
ensure the Description still notes it is a list of documents referenced in the
response (assistant messages only); reference the symbols referenced_documents
and ReferencedDocument when making the change.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 8a1d7f88-c829-4928-b242-5254b6e45d87

📥 Commits

Reviewing files that changed from the base of the PR and between abe551b and 4ec185c.

⛔ Files ignored due to path filters (1)
  • docs/config.svg is excluded by !**/*.svg
📒 Files selected for processing (4)
  • docs/config.html
  • docs/config.md
  • docs/config.puml
  • docs/openapi.md

Comment thread docs/config.md
| vector_db_id | string | Vector database identification. |
| db_path | string | Path to RAG database. |
| score_multiplier | number | Multiplier applied to relevance scores from this vector store when querying multiple sources. Values > 1 boost results; values < 1 reduce them. Default: 1.0. |
| score_multiplier | number | Multiplier applied to relevance scores from this vector store. Used to weight results when querying multiple knowledge sources. Values > 1 boost this store's results; values < 1 reduce them. |

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Document the score_multiplier validation boundary.

The model only accepts values > 0, but the current description makes 0 look like a valid way to suppress a store. That will fail validation instead of disabling the source.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/config.md` at line 138, Update the docs entry for score_multiplier to
explicitly state the validation boundary is strictly greater than 0 (values must
be > 0) and that 0 is invalid; mention that to effectively disable or suppress a
store you should omit the score_multiplier or use a very small positive value
rather than setting it to 0. Ensure the text references the symbol
score_multiplier and clarifies that values >1 boost and values between 0 and 1
reduce relevance, but must not be zero or negative.

Comment thread docs/config.md
Comment on lines +410 to +411
| offline | boolean | When True, use parent_id for OKP chunk source URLs. When False, use reference_url for chunk source URLs. |
| chunk_filter_query | string | OKP filter query applied to every OKP search request. Defaults to 'is_chunk:true' to restrict results to chunk documents. To add extra constraints, extend the expression using boolean syntax, e.g. 'is_chunk:true AND product:*openshift*'. |

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Preserve the literal OKP query example.

product:*openshift* is being parsed as emphasis, so the generated HTML no longer shows the wildcard characters. Wrap the example in backticks so readers can copy the actual filter.

📝 Suggested doc tweak
-| chunk_filter_query | string | OKP filter query applied to every OKP search request. Defaults to 'is_chunk:true' to restrict results to chunk documents. To add extra constraints, extend the expression using boolean syntax, e.g. 'is_chunk:true AND product:*openshift*'. |
+| chunk_filter_query | string | OKP filter query applied to every OKP search request. Defaults to `is_chunk:true` to restrict results to chunk documents. To add extra constraints, extend the expression using boolean syntax, e.g. `is_chunk:true AND product:*openshift*`. |
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
| offline | boolean | When True, use parent_id for OKP chunk source URLs. When False, use reference_url for chunk source URLs. |
| chunk_filter_query | string | OKP filter query applied to every OKP search request. Defaults to 'is_chunk:true' to restrict results to chunk documents. To add extra constraints, extend the expression using boolean syntax, e.g. 'is_chunk:true AND product:*openshift*'. |
| offline | boolean | When True, use parent_id for OKP chunk source URLs. When False, use reference_url for chunk source URLs. |
| chunk_filter_query | string | OKP filter query applied to every OKP search request. Defaults to `is_chunk:true` to restrict results to chunk documents. To add extra constraints, extend the expression using boolean syntax, e.g. `is_chunk:true AND product:*openshift*`. |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/config.md` around lines 410 - 411, The example filter in the
chunk_filter_query description is being interpreted as emphasis and losing the
wildcard characters; update the chunk_filter_query documentation string so the
example is wrapped in inline code (backticks) — e.g., change product:*openshift*
to `product:*openshift*` inside the chunk_filter_query description to preserve
the literal query in generated HTML.

Comment thread docs/openapi.md
Comment on lines +4528 to +4535
referenced_documents: Optional list of documents referenced in an assistant response.


| Field | Type | Description |
|-------|------|-------------|
| content | string | The message content |
| type | string | The type of message |
| referenced_documents | | List of documents referenced in the response (assistant messages only) |

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Add the referenced_documents type to the table.

The new field is shown without a type even though the model is Optional[list[ReferencedDocument]], so clients cannot tell that this is an array of ReferencedDocument objects.

📝 Suggested doc tweak
-| referenced_documents |  | List of documents referenced in the response (assistant messages only) |
+| referenced_documents | array | List of ReferencedDocument objects referenced in the response (assistant messages only) |
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
referenced_documents: Optional list of documents referenced in an assistant response.
| Field | Type | Description |
|-------|------|-------------|
| content | string | The message content |
| type | string | The type of message |
| referenced_documents | | List of documents referenced in the response (assistant messages only) |
referenced_documents: Optional list of documents referenced in an assistant response.
| Field | Type | Description |
|-------|------|-------------|
| content | string | The message content |
| type | string | The type of message |
| referenced_documents | array | List of ReferencedDocument objects referenced in the response (assistant messages only) |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/openapi.md` around lines 4528 - 4535, The table row for
referenced_documents is missing a type; update the docs/openapi.md table so the
Type column for referenced_documents clearly states that it is an array of
ReferencedDocument (e.g., "array[ReferencedDocument]" or
"Optional[list[ReferencedDocument]]") and ensure the Description still notes it
is a list of documents referenced in the response (assistant messages only);
reference the symbols referenced_documents and ReferencedDocument when making
the change.

Comment thread docs/openapi.md
Comment on lines +4640 to +4641
| offline | boolean | When True, use parent_id for OKP chunk source URLs. When False, use reference_url for chunk source URLs. |
| chunk_filter_query | string | OKP filter query applied to every OKP search request. Defaults to 'is_chunk:true' to restrict results to chunk documents. To add extra constraints, extend the expression using boolean syntax, e.g. 'is_chunk:true AND product:*openshift*'. |

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Wrap the OKP filter example in code spans.

product:*openshift* is Markdown emphasis here, so the rendered docs drop the literal * wildcards. That turns the example into the wrong query syntax.

📝 Suggested doc tweak
-| chunk_filter_query | string | OKP filter query applied to every OKP search request. Defaults to 'is_chunk:true' to restrict results to chunk documents. To add extra constraints, extend the expression using boolean syntax, e.g. 'is_chunk:true AND product:*openshift*'. |
+| chunk_filter_query | string | OKP filter query applied to every OKP search request. Defaults to `is_chunk:true` to restrict results to chunk documents. To add extra constraints, extend the expression using boolean syntax, e.g. `is_chunk:true AND product:*openshift*`. |
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
| offline | boolean | When True, use parent_id for OKP chunk source URLs. When False, use reference_url for chunk source URLs. |
| chunk_filter_query | string | OKP filter query applied to every OKP search request. Defaults to 'is_chunk:true' to restrict results to chunk documents. To add extra constraints, extend the expression using boolean syntax, e.g. 'is_chunk:true AND product:*openshift*'. |
| offline | boolean | When True, use parent_id for OKP chunk source URLs. When False, use reference_url for chunk source URLs. |
| chunk_filter_query | string | OKP filter query applied to every OKP search request. Defaults to `is_chunk:true` to restrict results to chunk documents. To add extra constraints, extend the expression using boolean syntax, e.g. `is_chunk:true AND product:*openshift*`. |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/openapi.md` around lines 4640 - 4641, The Markdown example in the docs
for the chunk_filter_query column renders product:*openshift* as emphasis;
update the docs by wrapping the example query (e.g. product:*openshift*) in
inline code spans so the asterisks are preserved literally—locate the table row
describing chunk_filter_query and change the example text to use backticks
around the query.

Comment thread docs/openapi.md
| media_type | | Media type for the response format |
| vector_store_ids | | Optional list of specific vector store IDs to query for RAG. If not provided, all available vector stores will be queried. |
| shield_ids | | Optional list of safety shield IDs to apply. If None, all configured shields are used. If provided, must contain at least one valid shield ID (empty list raises 422 error). |
| shield_ids | | Optional list of safety shield IDs to apply. If None, all configured shields are used. |

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Prefer null or “omitted” over Python None in public docs.

These sections describe JSON/YAML-facing data, so None leaks implementation terminology and can mislead non-Python consumers.

📝 Suggested doc tweak
-| shield_ids |  | Optional list of safety shield IDs to apply. If None, all configured shields are used.  |
+| shield_ids |  | Optional list of safety shield IDs to apply. If omitted or `null`, all configured shields are used. |
-    - ``tool`` defaults to ``None`` which means all registered vector stores
-      are used (identical to the previous ``tool.byok.enabled = True`` default).
+    - When ``tool`` is omitted or set to ``null``, all registered vector
+      stores are used (identical to the previous ``tool.byok.enabled = True``
+      default).

Also applies to: 4971-4973

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/openapi.md` at line 4791, The docs entry for the parameter "shield_ids"
uses Python-specific "None" in a JSON/YAML-facing description; update the text
to use JSON/YAML-friendly terms such as "null" or "omitted" (e.g., "If null or
omitted, all configured shields are used.") and make the same change for the
other occurrences referenced (around lines 4971-4973) so the public OpenAPI docs
do not leak Python implementation terminology.

@tisnik tisnik merged commit 620837e into lightspeed-core:main Mar 16, 2026
21 of 24 checks passed
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.

1 participant