diff --git a/artifacts/attributes.adoc b/artifacts/attributes.adoc index 37fa9224b2b..8a82a0ea680 100644 --- a/artifacts/attributes.adoc +++ b/artifacts/attributes.adoc @@ -68,7 +68,7 @@ :osd-brand-name: Red Hat OpenShift Dedicated :osd-short: OpenShift Dedicated :lcs-name: Lightspeed Core Service -:lcs-short: LCS +:lcs-short: LCORE :rhacs-brand-name: Red Hat Advanced Cluster Security :rhacs-short: Advanced Cluster Security :rhacs-very-short: ACS diff --git a/artifacts/snip-developer-preview-lightspeed.adoc b/artifacts/snip-developer-preview-lightspeed.adoc deleted file mode 100644 index 108eb5ab9fc..00000000000 --- a/artifacts/snip-developer-preview-lightspeed.adoc +++ /dev/null @@ -1,8 +0,0 @@ -:_mod-docs-content-type: SNIPPET - -[IMPORTANT] -==== -This section describes {developer-preview} features in the {ls-brand-name} plugin. {developer-preview} features are not supported by Red Hat in any way and are not functionally complete or production-ready. Do not use {developer-preview} features for production or business-critical workloads. {developer-preview} features provide early access to functionality in advance of possible inclusion in a Red Hat product offering. Customers can use these features to test functionality and provide feedback during the development process. {developer-preview} features might not have any documentation, are subject to change or removal at any time, and have received limited testing. Red Hat might provide ways to submit feedback on {developer-preview} features without an associated SLA. - -For more information about the support scope of Red Hat {developer-preview} features, see https://access.redhat.com/support/offerings/devpreview/[{developer-preview} Support Scope]. -==== diff --git a/assemblies/shared/assembly-appendix-about-user-data-security.adoc b/assemblies/shared/assembly-appendix-about-user-data-security.adoc deleted file mode 100644 index ea883c25be7..00000000000 --- a/assemblies/shared/assembly-appendix-about-user-data-security.adoc +++ /dev/null @@ -1,21 +0,0 @@ -:_mod-docs-content-type: ASSEMBLY -ifdef::context[:parent-context: {context}] - -[id="appendix-about-user-data-security_{context}"] -= Appendix About user data security - - -:context: appendix-about-user-data-security -[role="_abstract"] -This appendix explains how {ls-short} handles user data, feedback collection, and the Bring Your Own Model approach for LLM providers. - -include::../modules/shared/con-about-data-use.adoc[leveloffset=+1] - -include::../modules/shared/con-about-feedback-collection.adoc[leveloffset=+1] - -include::../modules/shared/con-about-bring-your-own-model.adoc[leveloffset=+1] - -include::../modules/shared/con-your-responsibility.adoc[leveloffset=+1] - -ifdef::parent-context[:context: {parent-context}] -ifndef::parent-context[:!context:] diff --git a/assemblies/shared/assembly-appendix-llm-requirements.adoc b/assemblies/shared/assembly-appendix-llm-requirements.adoc index bef8c067dae..3a628345c76 100644 --- a/assemblies/shared/assembly-appendix-llm-requirements.adoc +++ b/assemblies/shared/assembly-appendix-llm-requirements.adoc @@ -7,15 +7,17 @@ ifdef::context[:parent-context: {context}] :context: appendix-llm-requirements [role="_abstract"] -This appendix provides information about large language model (LLM) providers compatible with {ls-short}, including OpenAI, {rhoai-brand-name}, Ollama, and vLLM. +Review large language model (LLM) provider compatibility and system requirements for OpenAI, {rhoai-brand-name}, Ollama, vLLM, and Vertex AI to plan your {ls-short} infrastructure deployment. include::../modules/shared/con-large-language-model-llm-requirements.adoc[leveloffset=+1] -include::../modules/shared/con-openai.adoc[leveloffset=+1] +include::../modules/shared/con-openai-model-integration-for-your-deployment.adoc[leveloffset=+1] -include::../modules/shared/con-ollama.adoc[leveloffset=+1] +include::../modules/shared/con-ollama-model-integration-requirements.adoc[leveloffset=+1] -include::../modules/shared/con-vllm.adoc[leveloffset=+1] +include::../modules/shared/con-vllm-model-integration-for-high-throughput-inference.adoc[leveloffset=+1] + +include::../modules/shared/con-vertex-ai-integration-for-gemini-models.adoc[leveloffset=+1] ifdef::parent-context[:context: {parent-context}] ifndef::parent-context[:!context:] diff --git a/assemblies/shared/assembly-appendix-manage-user-data-security.adoc b/assemblies/shared/assembly-appendix-manage-user-data-security.adoc new file mode 100644 index 00000000000..b2199228fbb --- /dev/null +++ b/assemblies/shared/assembly-appendix-manage-user-data-security.adoc @@ -0,0 +1,21 @@ +:_mod-docs-content-type: ASSEMBLY +ifdef::context[:parent-context: {context}] + +[id="appendix-manage-user-data-security_{context}"] += Appendix: Manage user data security + +:context: appendix-about-user-data-security + +[role="_abstract"] +Review data handling practices, feedback storage protocols, and model configuration architectures, such as the _Bring Your Own Model_ approach, to evaluate and enforce information security standards for your organization. + +include::../modules/shared/con-data-use-and-privacy-practices.adoc[leveloffset=+1] + +include::../modules/shared/con-user-feedback-collection.adoc[leveloffset=+1] + +include::../modules/shared/con-bring-your-own-model-integration.adoc[leveloffset=+1] + +include::../modules/shared/con-your-compliance-and-data-sharing-responsibility.adoc[leveloffset=+1] + +ifdef::parent-context[:context: {parent-context}] +ifndef::parent-context[:!context:] diff --git a/assemblies/shared/assembly-configure-to-initialize-the-ai-assistant.adoc b/assemblies/shared/assembly-configure-to-initialize-the-ai-assistant.adoc new file mode 100644 index 00000000000..9271143dc8b --- /dev/null +++ b/assemblies/shared/assembly-configure-to-initialize-the-ai-assistant.adoc @@ -0,0 +1,24 @@ +:_mod-docs-content-type: ASSEMBLY +ifdef::context[:parent-context: {context}] + +[id="configure-to-initialize-the-ai-assistant_{context}"] += Configure {ls-short} to initialize the AI assistant + +:context: configure-to-initialize-the-ai-assistant + +[role="_abstract"] +{ls-brand-name} is enabled by default on {product} ({product-very-short}) instances. To provide developers with chat assistance, configure your deployment settings by using either the Operator or the Helm chart. + +[IMPORTANT] +==== +Perform a fresh installation to ensure compatibility with the updated system architecture. Do not update directly from the previous version. Direct updates cause operational errors because the Helm `values.yaml` file structure has changed. +==== + +include::../modules/shared/proc-configure-by-using-the-operator.adoc[leveloffset=+1] + +include::../modules/shared/proc-configure-by-using-the-helm-chart.adoc[leveloffset=+1] + +include::../modules/shared/proc-mirror-images-for-air-gapped-environments.adoc[leveloffset=+1] + +ifdef::parent-context[:context: {parent-context}] +ifndef::parent-context[:!context:] diff --git a/assemblies/shared/assembly-customize-ai-responses.adoc b/assemblies/shared/assembly-customize-ai-responses.adoc new file mode 100644 index 00000000000..0f1bc099cad --- /dev/null +++ b/assemblies/shared/assembly-customize-ai-responses.adoc @@ -0,0 +1,25 @@ +:_mod-docs-content-type: ASSEMBLY +ifdef::context[:parent-context: {context}] + +[id="customize-ai-responses_{context}"] += Customize {ls-short} AI responses + +:context: customize + +[role="_abstract"] +You can customize {ls-short} to align model behavior with your operational goals, enhance developer productivity, and ensure secure data retention. + +Customize {ls-short} by enabling user feedback, persisting chat history, and {model-context-protocol-book-link}#proc-configure-mcp-tools-for-developer-lightspeed_assembly-model-context-protocol-tools[configuring Model Context Protocol (MCP) tools]. + +include::../modules/shared/proc-enable-user-feedback-to-improve-model-performance.adoc[leveloffset=+1] + +include::../modules/shared/proc-customize-ai-responses-by-using-system-prompts.adoc[leveloffset=+1] + +include::../modules/shared/proc-customize-chat-history-storage.adoc[leveloffset=+1] + +include::../modules/shared/proc-enable-secure-ai-research-with-developer-lightspeed-notebooks.adoc[leveloffset=+1] + +// include::../modules/shared/proc-changing-your-llm-provider.adoc[leveloffset=+1] +ifdef::parent-context[:context: {parent-context}] +ifndef::parent-context[:!context:] + diff --git a/assemblies/shared/assembly-customize.adoc b/assemblies/shared/assembly-customize.adoc deleted file mode 100644 index 309a40eda0a..00000000000 --- a/assemblies/shared/assembly-customize.adoc +++ /dev/null @@ -1,23 +0,0 @@ -:_mod-docs-content-type: ASSEMBLY -ifdef::context[:parent-context: {context}] - -[id="customize_{context}"] -= Customize {ls-short} - - -:context: customize -[role="_abstract"] -You can customize {ls-short} functionalities such as gathering feedback, storing chat history in PostgreSQL, and {model-context-protocol-book-link}#proc-configure-mcp-tools-for-developer-lightspeed_assembly-model-context-protocol-tools[configuring Model Context Protocol (MCP) tools]. - -include::../modules/shared/proc-gather-feedback-in.adoc[leveloffset=+1] - -include::../modules/shared/proc-update-the-system-prompt-in.adoc[leveloffset=+1] - -include::../modules/shared/proc-customize-the-chat-history-storage-in.adoc[leveloffset=+1] - -include::../modules/shared/proc-enable-secure-ai-research-with-developer-lightspeed-notebooks.adoc[leveloffset=+2] - -// include::../modules/shared/proc-changing-your-llm-provider.adoc[leveloffset=+1] -ifdef::parent-context[:context: {parent-context}] -ifndef::parent-context[:!context:] - diff --git a/assemblies/shared/assembly-get-ai-assisted-help-for-your-development-tasks.adoc b/assemblies/shared/assembly-get-ai-assisted-help-for-your-development-tasks.adoc index 3ac1de7f434..44788bfab29 100644 --- a/assemblies/shared/assembly-get-ai-assisted-help-for-your-development-tasks.adoc +++ b/assemblies/shared/assembly-get-ai-assisted-help-for-your-development-tasks.adoc @@ -7,11 +7,11 @@ ifdef::context[:parent-context: {context}] :context: get-ai-assisted-help-for-your-development-tasks [role="_abstract"] -Use {ls-brand-name}, a generative AI assistant in {product} ({product-very-short}), to ask platform questions, analyze logs, generate code, and create test plans from a conversational interface. +Use {ls-brand-name}, a generative AI assistant in {product} ({product-very-short}), to ask platform questions, analyze logs, generate code, and create test plans from a chat interface. == Prerequisites -* Your platform engineer has installed and configured the {ls-short} plugin in your {product-very-short} instance. +* Your platform engineer has configured the {ls-short} service in your {product-very-short} instance. include::../modules/shared/proc-configure-safety-guards-in-rhdh.adoc[leveloffset=+1] diff --git a/modules/shared/con-about-and-llama-stack.adoc b/modules/shared/con-about-and-llama-stack.adoc deleted file mode 100644 index c72d9815d03..00000000000 --- a/modules/shared/con-about-and-llama-stack.adoc +++ /dev/null @@ -1,44 +0,0 @@ -:_mod-docs-content-type: CONCEPT - -[id="about-and-llama-stack_{context}"] -= About {lcs-name} and Llama Stack - -[role="_abstract"] -The {lcs-name} and Llama Stack deploy together as sidecar containers to augment {product-very-short} functionality. - -include::{docdir}/artifacts/snip-developer-preview-lightspeed.adoc[] - -The Llama Stack delivers the augmented functionality by integrating and managing core components, which include: - -* Large language model (LLM) inference providers - -* Model Context Protocol (MCP) or Retrieval Augmented Generation (RAG) tool runtime providers -+ -[IMPORTANT] -==== -You must verify that your model supports tool calling before you enable Model Context Protocol (MCP) features. Using an incompatible model results in error messages. -==== - -* Safety providers - -* Vector database settings - -The {lcs-name} serves as the Llama Stack service intermediary. It manages the operational configuration and key data, specifically: - -* User feedback collection - -* MCP server configuration - -* Conversation history - -Llama Stack provides the inference functionality that {lcs-short} uses to process requests. - -The {ls-brand-name} plugin in {product-very-short} sends prompts and receives LLM responses through the {lcs-short} sidecar. {lcs-short} then uses the Llama Stack sidecar service to perform inference and MCP or RAG tool calling. - -[NOTE] -==== -{ls-brand-name} is a {developer-preview} release. You must manually deploy the {lcs-name} and Llama Stack sidecar containers, and install the {ls-brand-name} plugin on your {product-very-short} instance. -==== - -.Additional resources -* link:https://ogx-ai.github.io/docs/concepts[OGX (formerly Llama Stack) concepts] diff --git a/modules/shared/con-about-bring-your-own-model.adoc b/modules/shared/con-about-bring-your-own-model.adoc deleted file mode 100644 index 55bd2847ce4..00000000000 --- a/modules/shared/con-about-bring-your-own-model.adoc +++ /dev/null @@ -1,17 +0,0 @@ -:_mod-docs-content-type: CONCEPT - -[id="about-bring-your-own-model_{context}"] -= About Bring Your Own Model - -[role="_abstract"] -{ls-short} uses a _Bring Your Own Model_ approach, letting you connect {lcs-name} to any OpenAI API-compatible inference service. -//Add the cross reference to "Bring your own model" -The only technical requirements for inference services are: - -* The service must conform to the OpenAI API specification. -* The service must be configured correctly following the installation and configuration instructions. -// Add the cross-reference to "Installation and configuraiton" after the docs are published -There are many commercial and open source inference services that support the OpenAI API specification for chat completions. The cost, performance, and security of these services can differ and it is up to you to choose, through evaluation and testing, the inference service that best meets your company's needs. - -.Additional resources -* link:https://github.com/openai/openai-openapi/tree/manual_spec[OpenAI API specification] diff --git a/modules/shared/con-about-data-use.adoc b/modules/shared/con-about-data-use.adoc deleted file mode 100644 index 26937b1fbee..00000000000 --- a/modules/shared/con-about-data-use.adoc +++ /dev/null @@ -1,9 +0,0 @@ -:_mod-docs-content-type: CONCEPT - -[id="about-data-use_{context}"] -= About data use - -[role="_abstract"] -{ls-short} sends your chat messages to the large language model (LLM) provider configured for your environment. These messages could potentially contain information about your users, cluster, or business environment. - -{ls-short} has limited capabilities to filter or redact the information you provide to the LLM. Do not enter information into {ls-short} that you do not want to send to the LLM provider. To remind end users not to share private or confidential information, {ls-short} begins each new chat with an 'Important' message asking them not to “include personal or sensitive information” in their chat messages. diff --git a/modules/shared/con-about-feedback-collection.adoc b/modules/shared/con-about-feedback-collection.adoc deleted file mode 100644 index db150a18fef..00000000000 --- a/modules/shared/con-about-feedback-collection.adoc +++ /dev/null @@ -1,7 +0,0 @@ -:_mod-docs-content-type: CONCEPT - -[id="about-feedback-collection_{context}"] -= About feedback collection - -[role="_abstract"] -{ls-short} stores user feedback submissions, including scores and text, locally in the Pod file system. {company-name} does not have access to the collected feedback data. diff --git a/modules/shared/con-ai-reference-and-tool-calling-capabilities-through.adoc b/modules/shared/con-ai-reference-and-tool-calling-capabilities-through.adoc new file mode 100644 index 00000000000..255566fc20e --- /dev/null +++ b/modules/shared/con-ai-reference-and-tool-calling-capabilities-through.adoc @@ -0,0 +1,32 @@ +:_mod-docs-content-type: CONCEPT + +[id="ai-reference-and-tool-calling-capabilities-through_{context}"] += AI reference and tool-calling capabilities through {lcs-name} + +[role="_abstract"] +Review the core components managed by the {lcs-name}({lcs-short}) sidecar container to plan integrations with large language models (LLM) and tool runtime providers. + +The {lcs-short} container deploys as a sidecar to extend {product-very-short} functionality. The container integrates and manages the following core architectural components: + +* Large language model (LLM) inference providers + +* Model Context Protocol (MCP) or Retrieval Augmented Generation (RAG) tool runtime providers ++ +[IMPORTANT] +==== +You must verify that your model supports tool calling before you enable MCP features. Using an incompatible model results in error messages. +==== + +* Safety providers + +* Vector database settings + +{lcs-short} also manages critical operational configuration and key data, specifically: + +* User feedback collection + +* MCP server configuration + +* Chat history + +{ls-short} sends prompts and receives LLM responses through the {lcs-short} sidecar. diff --git a/modules/shared/con-architecture-for-your-ai-backend-deployment.adoc b/modules/shared/con-architecture-for-your-ai-backend-deployment.adoc new file mode 100644 index 00000000000..829f4fe583b --- /dev/null +++ b/modules/shared/con-architecture-for-your-ai-backend-deployment.adoc @@ -0,0 +1,15 @@ +:_mod-docs-content-type: CONCEPT + +[id="architecture-for-your-ai-backend-deployment_{context}"] += {ls-brand-name} architecture for your AI backend deployment + +[role="_abstract"] +Review the {ls-short} component architecture to plan your system layout and coordinate connections with your artificial intelligence (AI) backend deployment. + +The architecture relies on the {lcs-name} ({lcs-short}) container, which operates as the primary intermediary layer to manage {ls-short} functionality and console user interactions. By default, the interface appears as a floating action button (FAB) on all platforms that host {product-very-short}. + +//Need to replace this screenshot +// image::integrate_interacting-with-developer-lightspeed-for-rhdh/developer-lightspeed-architecture-1-8-0.png["Lightspeed supported architecture diagram"] + +.Additional resources +* link:https://access.redhat.com/support/policy/updates/developerhub[{product} Life Cycle and supported platforms] \ No newline at end of file diff --git a/modules/shared/con-bring-your-own-model-integration.adoc b/modules/shared/con-bring-your-own-model-integration.adoc new file mode 100644 index 00000000000..a3947caf5fb --- /dev/null +++ b/modules/shared/con-bring-your-own-model-integration.adoc @@ -0,0 +1,17 @@ +:_mod-docs-content-type: CONCEPT + +[id="bring-your-own-model-integration_{context}"] += Bring Your Own Model integration + +[role="_abstract"] +Review _Bring Your Own Model (BYOM)_ requirements to select and integrate an OpenAI API-compatible inference service with {lcs-name}. + +{ls-short} relies on a BYOM architecture that let you connect the {lcs-name} ({lcs-short}) layer to any OpenAI API-compatible inference platforms. To establish connection compatibility, your chosen inference service must satisfy the following technical criteria: + +* The service must conform to the OpenAI API specification for chat completions. +* The host environment must match the specified infrastructure configuration and installation instructions. + +Various commercial and open-source inference services support the OpenAI API specification. Because operational costs, performance metrics, and data security controls vary by provider, you must evaluate and test prospective platforms locally to select the service that best meets your organizational requirements. + +.Additional resources +* link:https://github.com/openai/openai-openapi/tree/manual_spec[OpenAI API specification] diff --git a/modules/shared/con-about.adoc b/modules/shared/con-chat-assistance-with.adoc similarity index 61% rename from modules/shared/con-about.adoc rename to modules/shared/con-chat-assistance-with.adoc index c462f470a96..9754f519b52 100644 --- a/modules/shared/con-about.adoc +++ b/modules/shared/con-chat-assistance-with.adoc @@ -1,17 +1,10 @@ :_mod-docs-content-type: CONCEPT -[id="about_{context}"] -= About {ls-short} +[id="chat-assistance-with_{context}"] += Chat assistance with {ls-short} [role="_abstract"] -This early access program enables customers to share feedback on the user experience, features, capabilities, and any issues encountered. Your input helps ensure that {ls-short} better meets your needs when it is officially released and made generally available. - -include::{docdir}/artifacts/snip-developer-preview-lightspeed.adoc[] - -{ls-short} provides a natural language interface within the {product-very-short} console, helping you easily find information about the product, understand its features, and get answers to your questions. - -You can experience {ls-short} {developer-preview} by installing the {ls-short} plugin within an existing {product-very-short} instance. -Alternatively, if you prefer to test it locally first, you can try {ls-short} using {product-local-very-short}. +Use {ls-short} to find product information, discover features, and resolve technical questions using natural language prompts directly within the {product-very-short} console. [IMPORTANT] ==== @@ -52,5 +45,3 @@ Alternatively, if you prefer to test it locally first, you can try {ls-short} us image::shared/homepage-lightspeed-fab.png["Lightspeed chatbot on the home page"] -.Additional resources -* https://github.com/redhat-developer/rhdh-local/blob/main/README.md[{product-local-very-short}] diff --git a/modules/shared/con-data-use-and-privacy-practices.adoc b/modules/shared/con-data-use-and-privacy-practices.adoc new file mode 100644 index 00000000000..bbb07c464bb --- /dev/null +++ b/modules/shared/con-data-use-and-privacy-practices.adoc @@ -0,0 +1,11 @@ +:_mod-docs-content-type: CONCEPT + +[id="data-use-and-privacy-practices_{context}"] += Data use and privacy practices + +[role="_abstract"] +Review data routing and privacy practices to evaluate how {ls-short} handles chat messages and operational information transmitted to large language model (LLM) providers. + +{ls-short} sends your chat messages directly to your configured large language model (LLM) provider. Because these messages can contain sensitive operational data regarding your cluster, users, or business environment, ensure that your provider compliance policies align with your organizational security standards. + +{ls-short} has limited capabilities to filter or redact the information you submit during user interactions. To mitigate data exposure risks, do not enter proprietary or confidential information into {ls-short}. To encourage user compliance, {ls-short} displays a mandatory warning at the start of each sessions, reminding users to omit personal or sensitive details. diff --git a/modules/shared/con-large-language-model-llm-requirements.adoc b/modules/shared/con-large-language-model-llm-requirements.adoc index 726ddfbe65e..a9d0c8edd41 100644 --- a/modules/shared/con-large-language-model-llm-requirements.adoc +++ b/modules/shared/con-large-language-model-llm-requirements.adoc @@ -4,13 +4,17 @@ = Large language model (LLM) requirements [role="_abstract"] -{ls-short} follows a _Bring Your Own Model_ approach, requiring you to provide access to a large language model (LLM). You must configure your preferred LLM provider during installation. +To plan your {ls-short} deployment, you must determine which compatible large language model (LLM) inference provider fits your infrastructure. -LLMs are usually provided by a service or server. Because {ls-short} does not provide an LLM for you, you must configure your preferred LLM provider during installation. You can configure the underlying Llama Stack server to integrate with several LLM `providers` that offer compatibility with the OpenAI API including the following inference providers: +{ls-short} operates on a _Bring Your Own Model (BYOM)_ architecture. Because the service does not include a native model, you must connect a compatible inference provider during installation. -* OpenAI (cloud-based inference service) -* {rhoai-brand-name} (enterprise model builder and inference server) -* {rhel} AI (enterprise inference server) -* Ollama (popular desktop inference server) -* vLLM (popular enterprise inference server) -* Gemini (available through Vertex AI) +The underlying {lcs-short} service integrates with platforms that support the OpenAI API specification or utilize the vLLM inference engine. Because there is no explicit {rhoai-brand-name} provider option in the configuration, you must route those deployments through the vLLM or OpenAI-compatible provider settings. + +The `vllm` provider type communicates with endpoints that conform to the OpenAI API schema by automatically appending `/v1` to the configured provider URL. This mechanism allows you to use the `vllm` configuration for other hosted, OpenAI-compliant inference providers. + +{ls-short} supports the following inference provider configurations: + +* OpenAI cloud-based inference services +* vLLM enterprise inference servers, which includes models hosted on {rhoai-brand-name} and {rhel} AI +* Ollama desktop inference servers +* Gemini services through Vertex AI diff --git a/modules/shared/con-ollama-model-integration-requirements.adoc b/modules/shared/con-ollama-model-integration-requirements.adoc new file mode 100644 index 00000000000..992fc331b0b --- /dev/null +++ b/modules/shared/con-ollama-model-integration-requirements.adoc @@ -0,0 +1,22 @@ +:_mod-docs-content-type: CONCEPT + +[id="ollama-model-integration-requirements_{context}"] += Ollama model integration requirements + +[role="_abstract"] +To integrate the open-source Ollama framework with {ls-short}, you must ensure that your network topology allows the {ls-short} service to route traffic to the Ollama server endpoint. + +The Ollama server operates as a containerized layer, providing a command-line interface (CLI) to download, manage, and execute open-source models such as Llama 3 and Mistral. You can deploy Ollama on both local workstations and cluster environments. + +However, a cluster-deployed {ls-short} instance cannot access an Ollama server that runs exclusively on a workstation `localhost` interface. For cluster deployments, the Ollama server must reside on an externally accessible network perimeter or run directly inside the cluster. + +The following integration configurations are supported: +* Both {ls-short} and Ollama deploy on a local workstation. +* {ls-short} deploys locally and connects to an externally accessible cluster Ollama server. +* Both {ls-short} and Ollama deploy inside the cluster infrastructure. + + +.Additional resources +* link:https://ollama.com[Ollama project website] +* link:https://hub.docker.com/r/ollama/ollama[Ollama server container image] + diff --git a/modules/shared/con-ollama.adoc b/modules/shared/con-ollama.adoc deleted file mode 100644 index 42d8f982838..00000000000 --- a/modules/shared/con-ollama.adoc +++ /dev/null @@ -1,13 +0,0 @@ -:_mod-docs-content-type: CONCEPT - -[id="ollama_{context}"] -= Ollama - -[role="_abstract"] -Ollama is an open-source tool that simplifies running large language models (LLMs) locally. It provides a command-line interface for downloading, managing, and running open-source models such as Llama 3 and Mistral. - -The open source Ollama server in container form provides a convenient local testbed for LLM models that is very accessible and easily controlled. - -.Additional resources -* link:https://ollama.com[Ollama] -* link:https://hub.docker.com/r/ollama/ollama[Ollama server container] diff --git a/modules/shared/con-openai-model-integration-for-your-deployment.adoc b/modules/shared/con-openai-model-integration-for-your-deployment.adoc new file mode 100644 index 00000000000..27db7f5504e --- /dev/null +++ b/modules/shared/con-openai-model-integration-for-your-deployment.adoc @@ -0,0 +1,13 @@ +:_mod-docs-content-type: CONCEPT + +[id="openai-model-integration-for-your-deployment_{context}"] += OpenAI model integration for your deployment + +[role="_abstract"] +Use OpenAI models to provide generative artificial intelligence (AI) inference services, such as GPT 5, for your {ls-short} deployment. + +The system connects directly to the OpenAI API platform to route user prompts and return model insights. To configure this large language model (LLM) provider, you must have an active API key generated from your OpenAI developer account. + +.Additional resources +* link:https://openai.com/api/[OpenAI API platform] +* link:https://platform.openai.com/docs/overview[OpenAI developer platform documentation] diff --git a/modules/shared/con-openai.adoc b/modules/shared/con-openai.adoc deleted file mode 100644 index 949ea7c9bd5..00000000000 --- a/modules/shared/con-openai.adoc +++ /dev/null @@ -1,13 +0,0 @@ -:_mod-docs-content-type: CONCEPT - -[id="openai_{context}"] -= OpenAI - -[role="_abstract"] -OpenAI offers a range of generative AI models, such as GPT 5, which can be used to provide inference services for applications like {ls-short}. - -To use OpenAI with {ls-short}, you need access to the OpenAI API platform. - -.Additional resources -* link:https://openai.com/api/[OpenAI API platform] -* link:https://platform.openai.com/docs/overview[OpenAI developer platform documentation] diff --git a/modules/shared/con-retrieval-augmented-generation-rag-embeddings-for-grounded-ai-responses.adoc b/modules/shared/con-retrieval-augmented-generation-rag-embeddings-for-grounded-ai-responses.adoc new file mode 100644 index 00000000000..ed82dcbeafd --- /dev/null +++ b/modules/shared/con-retrieval-augmented-generation-rag-embeddings-for-grounded-ai-responses.adoc @@ -0,0 +1,15 @@ +:_mod-docs-content-type: CONCEPT + +[id="retrieval-augmented-generation-rag-embeddings-for-grounded-ai-responses_{context}"] += Retrieval augmented generation (RAG) embeddings for grounded AI responses + +[role="_abstract"] +Use retrieval-augmented generation (RAG) embeddings to ground artificial intelligence (AI) responses in your internal documentation and provide verified citations during user interactions. + +The {product-very-short} documentation serves as the primary data source for RAG operations. To provide accurate citations to production documentation during inference, the system uses RAG embeddings stored within a vector database. + +The system processes RAG data through the following sequence: + +* An initialization container copies the RAG data to a shared volume. +* The {lcs-name} ({lcs-short}) sidecar container mounts the shared volume to access the data. +* The sidecar layer uses the embeddings to attach precise documentation references to the chat responses. diff --git a/modules/shared/con-retrieval-augmented-generation-rag-embeddings.adoc b/modules/shared/con-retrieval-augmented-generation-rag-embeddings.adoc deleted file mode 100644 index 2fe44ce9829..00000000000 --- a/modules/shared/con-retrieval-augmented-generation-rag-embeddings.adoc +++ /dev/null @@ -1,9 +0,0 @@ -:_mod-docs-content-type: CONCEPT - -[id="retrieval-augmented-generation-rag-embeddings_{context}"] -= Retrieval augmented generation (RAG) embeddings - -[role="_abstract"] -The {product} documentation serves as the Retrieval-Augmented Generation (RAG) data source. - -RAG initialization occurs through an initialization container, which copies the RAG data to a shared volume. The Llama Stack sidecar then mounts this shared volume to access the RAG data. The Llama Stack service uses the resulting RAG embeddings in the vector database as a reference. This allows the service to provide citations to production documentation during the inference process. \ No newline at end of file diff --git a/modules/shared/con-supported-architecture-for.adoc b/modules/shared/con-supported-architecture-for.adoc deleted file mode 100644 index 391a467361f..00000000000 --- a/modules/shared/con-supported-architecture-for.adoc +++ /dev/null @@ -1,14 +0,0 @@ -:_mod-docs-content-type: CONCEPT - -[id="supported-architecture-for_{context}"] -= Supported architecture for {ls-brand-name} - -[role="_abstract"] -{ls-short} is available as a plugin on all platforms that host {product-very-short}. It requires two sidecar containers: the {lcs-name} ({lcs-short}) and the Llama Stack service. - -The {lcs-short} container acts as the intermediary layer, which interfaces with and manages the Llama Stack service. - -image::integrate_interacting-with-developer-lightspeed-for-rhdh/developer-lightspeed-architecture-1-8-0.png["Lightspeed supported architecture diagram"] - -.Additional resources -* link:https://access.redhat.com/support/policy/updates/developerhub[{product} Life Cycle and supported platforms] \ No newline at end of file diff --git a/modules/shared/con-user-feedback-collection.adoc b/modules/shared/con-user-feedback-collection.adoc new file mode 100644 index 00000000000..c1764138b66 --- /dev/null +++ b/modules/shared/con-user-feedback-collection.adoc @@ -0,0 +1,9 @@ +:_mod-docs-content-type: CONCEPT + +[id="user-feedback-collection_{context}"] += User feedback collection + +[role="_abstract"] +Review how {ls-short} collects and isolates user feedback data within your cluster to manage local storage requirements and data privacy standards. + +{ls-short} saves user feedback submissions, including numerical ratings and text commentary, locally within the pod filesystem. Because {company-name} does not collect, access, or transmit this data, local platform administrators must manage and monitor these storage directories. diff --git a/modules/shared/con-vertex-ai-integration-for-gemini-models.adoc b/modules/shared/con-vertex-ai-integration-for-gemini-models.adoc new file mode 100644 index 00000000000..faa41db2b65 --- /dev/null +++ b/modules/shared/con-vertex-ai-integration-for-gemini-models.adoc @@ -0,0 +1,13 @@ +:_mod-docs-content-type: CONCEPT + +[id="vertex-ai-integration-for-gemini-models_{context}"] += Vertex AI integration for Gemini models + +[role="_abstract"] +To use Gemini models with {ls-short}, you can configure Google Cloud Vertex AI to act as your managed large language model (LLM) inference provider. + +The underlying {lcs-short} service connects to Vertex AI to access hosted Gemini models. This integration provides {ls-short} with enterprise-grade language processing and chat assistance capabilities without requiring you to maintain a local inference server. + +.Additional resources +* link:https://cloud.google.com/vertex-ai/docs[Vertex AI documentation] + diff --git a/modules/shared/con-vllm-model-integration-for-high-throughput-inference.adoc b/modules/shared/con-vllm-model-integration-for-high-throughput-inference.adoc new file mode 100644 index 00000000000..8b009ff3dd0 --- /dev/null +++ b/modules/shared/con-vllm-model-integration-for-high-throughput-inference.adoc @@ -0,0 +1,12 @@ +:_mod-docs-content-type: CONCEPT + +[id="vllm-model-integration-for-high-throughput-inference_{context}"] += vLLM model integration for high-throughput inference + +[role="_abstract"] +Use the open-source vLLM high-throughput serving framework to optimize memory utilization and manage high volumes of concurrent requests for your {ls-short} deployment. + +The vLLM framework operates as an enterprise inference server that optimizes memory allocation to maximize the processing efficiency of large language models (LLMs). Integrating vLLM ensures that your environment maintains high performance and responsiveness under heavy concurrent user traffic. + +.Additional resources +* link:https://docs.vllm.ai/en/stable/[vLLM documentation] diff --git a/modules/shared/con-vllm.adoc b/modules/shared/con-vllm.adoc deleted file mode 100644 index 8576f514702..00000000000 --- a/modules/shared/con-vllm.adoc +++ /dev/null @@ -1,10 +0,0 @@ -:_mod-docs-content-type: CONCEPT - -[id="vllm_{context}"] -= vLLM - -[role="_abstract"] -vLLM is an open-source, high-throughput serving engine for large language models (LLMs). It optimizes memory usage and increases the number of concurrent requests an LLM can handle. - -.Additional resources -* link:https://docs.vllm.ai/en/stable/[vLLM documentation] diff --git a/modules/shared/con-your-compliance-and-data-sharing-responsibility.adoc b/modules/shared/con-your-compliance-and-data-sharing-responsibility.adoc new file mode 100644 index 00000000000..ad69adf5d8a --- /dev/null +++ b/modules/shared/con-your-compliance-and-data-sharing-responsibility.adoc @@ -0,0 +1,9 @@ +:_mod-docs-content-type: CONCEPT + +[id="your-compliance-and-data-sharing-responsibility_{context}"] += Your compliance and data-sharing responsibility + +[role="_abstract"] +Review compliance requirements and data-sharing responsibilities to ensure that user interactions with {ls-short} align with your organization's data privacy policies. + +All data that users submit through prompts and responses within {ls-short} is transmitted directly to your configured large language model (LLM) inference service. Platform administrators must ensure that these external data transfers comply with corporate security standards, governance frameworks, and local data protection policies. diff --git a/modules/shared/con-your-responsibility.adoc b/modules/shared/con-your-responsibility.adoc deleted file mode 100644 index bdf0d7a11e5..00000000000 --- a/modules/shared/con-your-responsibility.adoc +++ /dev/null @@ -1,7 +0,0 @@ -:_mod-docs-content-type: CONCEPT - -[id="your-responsibility_{context}"] -= Your responsibility - -[role="_abstract"] -All of the information your users share in their questions and responses with {ls-short} are shared with the LLM inference service you configured. You are responsible for ensuring compliance with your company's policies regarding the sharing of data with your chosen inference service. diff --git a/modules/shared/proc-configure-by-using-the-helm-chart.adoc b/modules/shared/proc-configure-by-using-the-helm-chart.adoc new file mode 100644 index 00000000000..89f3ac1fa6a --- /dev/null +++ b/modules/shared/proc-configure-by-using-the-helm-chart.adoc @@ -0,0 +1,86 @@ +:_mod-docs-content-type: PROCEDURE + +[id="configure-by-using-the-helm-chart_{context}"] += Configure {ls-short} by using the Helm chart + +[role="_abstract"] +Configure {ls-short} by using the Helm chart to manage large language model (LLM) providers, enable validation guardrails, and authorize custom role-based access control (RBAC) policies. + +.Prerequisites +* You have access to a running {product-very-short} instance deployed with Helm. +* You have operational credentials for your chosen LLM provider. + +.Procedure + +. Optional: To disable the chat interface, update the `global.lightspeed.enabled` parameter to `false` in your Helm `values.yaml` file: ++ +[source,yaml] +---- +global: + lightspeed: + enabled: false +---- + +. Create a manual Kubernetes Secret to store your provider credentials. ++ +[NOTE] +==== +By default, the Helm installation creates a temporary Kubernetes Secret containing keys for various LLM providers. On subsequent `helm upgrade` cycles, the system overwrites this default Secret. You must create a manual Kubernetes Secret to persist your credentials. +==== ++ +Add the required keys to your secret based on your provider requirements: ++ +include::snip-lightspeed-secret-keys.adoc[] ++ +[NOTE] +==== +Vertex AI requires custom architecture mapping and has received limited testing. +==== + +. Optional: To filter and reject off-topic user queries, add validation guardrails to your manual Secret: +* Set `ENABLE_VALIDATION` to `"true"`. +* Set `VALIDATION_PROVIDER` to your enabled validation provider (for example, `openai`). +* Set `VALIDATION_MODEL_NAME` to your specific verification model (for example, `gpt-4o-mini`). + +. Reference your manual secret inside the `values.yaml` file: ++ +[source,yaml] +---- +global: + lightspeed: + secret: + create: false + name: "my-custom-secret" +---- + +. Optional: To protect configuration files like `lightspeed-stack.yaml`, `config.yaml`, or `rhdh-profile.py` from being overwritten during updates, you must use a custom ConfigMap: ++ +[IMPORTANT] +==== +You must only modify the `create` and `nameOverride` fields. Keep the default mount paths and file configurations unchanged. +==== ++ +[source,yaml] +---- +global: + lightspeed: + configMaps: + - name: stack + create: false + nameOverride: "my-custom-stack" + mountPath: /app-root/lightspeed-stack.yaml + subPath: lightspeed-stack.yaml + sourceFile: lightspeed-stack.yaml + optional: false +---- + +. Configure access rights by updating your RBAC definitions: ++ +include::snip-rbac-policies.adoc[] + +. Run the `helm upgrade` command to apply your configurations to the cluster. + +.Verification +. Log in to your console instance. +. Verify that the *Open Lightspeed* floating action button (FAB) appears on the home page. +. Select the FAB and confirm that the chat window initializes successfully. diff --git a/modules/shared/proc-configure-by-using-the-operator.adoc b/modules/shared/proc-configure-by-using-the-operator.adoc new file mode 100644 index 00000000000..4e4444ff4cd --- /dev/null +++ b/modules/shared/proc-configure-by-using-the-operator.adoc @@ -0,0 +1,90 @@ +:_mod-docs-content-type: PROCEDURE + +[id="configure-by-using-the-operator_{context}"] += Configure {ls-short} by using the Operator + +[role="_abstract"] +Configure {ls-short} by updating your {backstage} custom resource (CR) to map environment variables, manage configurations, and set access rights. + +.Prerequisites +* The {product-very-short} Operator is installed on your cluster. +* You have cluster administrator privileges. + +.Procedure + +. Optional: To disable the chat interface and prevent the Operator from injecting unconfigured sidecar containers, set the `lightspeed.enabled` flag to `false` in the `spec` section of your {backstage} CR YAML file: ++ +[source,yaml] +---- +spec: + application: + lightspeed: + enabled: false +---- + +. Create an opaque Kubernetes Secret containing your operational credentials and query safety guardrails before applying the {backstage} CR. Refer to the following key definitions for required environment variables: ++ +include::snip-lightspeed-secret-keys.adoc[] ++ +The following code shows an example configuration Secret for vLLM with validation: +[source,yaml] +---- +apiVersion: v1 +kind: Secret +metadata: + name: lightspeed-auth-secrets +type: Opaque +stringData: + ENABLE_VLLM: "true" + VLLM_URL: "https:///v1" + VLLM_API_KEY: "" + ENABLE_VALIDATION: "true" + VALIDATION_PROVIDER: "vllm" + VALIDATION_MODEL_NAME: "llama3.1" +---- + +. Map your secret inside the `extraEnvs` section of the {backstage} CR to complete container provisioning: ++ +[source,yaml] +---- +apiVersion: rhdh.redhat.com/v1alpha5 +kind: Backstage +metadata: + name: lightspeed-rhdh +spec: + application: + extraEnvs: + secrets: + - name: lightspeed-auth-secrets + containers: + - lightspeed-core +---- + +. Optional: To protect settings such as Model Context Protocol (MCP) server additions from being overwritten during reconciliation loops, define a custom ConfigMap mapping in the `extraFiles` section of the CR: ++ +[source,yaml] +---- + extraFiles: + configMaps: + - name: "my-custom-config" + mountPath: /app-root + key: lightspeed-stack.yaml + containers: + - lightspeed-core +---- + +. Configure access rights by updating the RBAC policy inside your {backstage} CR: ++ +include::snip-rbac-policies.adoc[] + +. Apply the updated custom resource manifest to your cluster: ++ +[source,bash] +---- +oc apply -f .yaml +---- + +.Verification +. Log in to your console instance. +. Verify that the *Open Lightspeed* floating action button (FAB) appears on the home page. +. Select the FAB and confirm that the chat window initializes successfully. diff --git a/modules/shared/proc-customize-ai-responses-by-using-system-prompts.adoc b/modules/shared/proc-customize-ai-responses-by-using-system-prompts.adoc new file mode 100644 index 00000000000..0c12a44037f --- /dev/null +++ b/modules/shared/proc-customize-ai-responses-by-using-system-prompts.adoc @@ -0,0 +1,23 @@ +:_mod-docs-content-type: PROCEDURE + +[id="customize-ai-responses-by-using-system-prompts_{context}"] += Customize AI responses by using system prompts + +[role="_abstract"] +Configure a custom system prompt to provide environmental context to the large language model (LLM). This custom instruction prefixes user queries, guiding the assistant to generate artificial intelligence (AI) responses tailored to your {product-very-short} instance. + +.Prerequisites +* You have administrative access to the {product-very-short} host platform filesystem. + +.Procedure +. Open your {product-very-short} configuration file, typically named `{my-app-config-file}`. +. Add or modify the `systemPrompt` parameter under the `lightspeed` section, specifying your custom instruction string: ++ +[source,yaml,subs=+attributes] +---- +lightspeed: + # ... other lightspeed configurations + systemPrompt: "You are a helpful assistant focused on {product} development." +---- +. Save the file. +. Restart the {product-very-short} service to apply the updated system prompt configuration. diff --git a/modules/shared/proc-customize-chat-history-storage.adoc b/modules/shared/proc-customize-chat-history-storage.adoc new file mode 100644 index 00000000000..44bd452deb4 --- /dev/null +++ b/modules/shared/proc-customize-chat-history-storage.adoc @@ -0,0 +1,46 @@ +:_mod-docs-content-type: PROCEDURE + +[id="customize-chat-history-storage_{context}"] += Customize chat history storage + +[role="_abstract"] +Configure chat history storage to choose between non-persistent local logs and a persistent external database for user conversations. + +By default, the system stores chat history in a non-persistent local database within the {lcs-name} ({lcs-short}) container. To retain data across system restarts, you must configure a PostgreSQL database connection. + +[WARNING] +==== +Storing chat history records user prompts and responses. You must assess data privacy and security implications if your user chat history contains private, sensitive, or confidential information. For users that want to have their chat data removed, they must request their platform administrator to perform this action. {company-name} does not collect or access this chat history data. +==== + +.Prerequisites + +* You created and referenced a custom config map in your deployment to ensure configuration changes persist during system upgrades or Operator reconciliation loops. For more information, see link:{configuring-book-link}#provision-your-custom-rhdh-configuration_provision-and-use-your-custom-rhdh-configuration[Provision your custom {product} configuration]. + +.Procedure +. Open your custom configuration file, typically named `lightspeed-stack.yaml`. +. Modify the `conversation_cache` block to specify your storage configuration: +** To enable persistent storage, add your PostgreSQL database credentials and endpoint properties: ++ +[source,yaml] +---- +conversation_cache: + type: "postgres" + postgres: + host: __ + port: __ + db: __ + user: _"_ + password: __ +---- +* To retain the default non-persistent SQLite setup, verify that the parameters match the following paths: ++ +[source,yaml] +---- +conversation_cache: + type: "sqlite" + sqlite: + db_path: '/tmp/cache.db' +---- + +. Restart the {lcs-short} service to apply your new database configuration. diff --git a/modules/shared/proc-customize-the-chat-history-storage-in.adoc b/modules/shared/proc-customize-the-chat-history-storage-in.adoc deleted file mode 100644 index 3d155608896..00000000000 --- a/modules/shared/proc-customize-the-chat-history-storage-in.adoc +++ /dev/null @@ -1,42 +0,0 @@ -:_mod-docs-content-type: PROCEDURE - -[id="customize-the-chat-history-storage-in_{context}"] -= Customize the chat history storage in {ls-short} - -[role="_abstract"] -By default, {ls-short} stores chat history in a non-persistent local database within the {lcs-short} container. You can configure {ls-short} to use PostgreSQL for persistent chat history storage. - -[WARNING] -==== -Configuring {ls-short} to use PostgreSQL records prompts and responses, which platform administrators can review. -You must assess any data privacy and security implications if user chat history contains private, sensitive, or confidential information. -For users that want to have their chat data removed, they must request their platform administrator to perform this action. -{company-name} does not collect or access this chat history data. -==== - -.Procedure -. Configure the chat history storage type in the {lcs-short} configuration file (`lightspeed-stack.yaml`) using any of the relevant options: -** To enable persistent storage with PostgreSQL, add the following configuration: -+ -[source,yaml] ----- - conversation_cache: - type: postgres - postgres: - host: __ - port: __ - db: __ - user: __ - password: __ ----- -* To retain the default, non-persistent SQLite storage, make sure the configuration is set as shown in the following example: -+ -[source,yaml] ----- -conversation_cache: - type: "sqlite" - sqlite: - db_path: "/tmp/data/conversations/lcs_cache.db" ----- - -. Restart your {lcs-short} service to apply the new configuration. \ No newline at end of file diff --git a/modules/shared/proc-enable-user-feedback-to-improve-model-performance.adoc b/modules/shared/proc-enable-user-feedback-to-improve-model-performance.adoc new file mode 100644 index 00000000000..13579aa7e13 --- /dev/null +++ b/modules/shared/proc-enable-user-feedback-to-improve-model-performance.adoc @@ -0,0 +1,46 @@ +:_mod-docs-content-type: PROCEDURE + +[id="enable-user-feedback-to-improve-model-performance_{context}"] += Enable user feedback to improve model performance + +[role="_abstract"] +Enable user feedback collection to allow users to rate chat responses and submit text comments directly within the console interface. + +The {lcs-name} ({lcs-short}) stores this data as JSON files inside your cluster. Because {company-name} does not collect or access this data, platform administrators must manage, analyze, and delete these files locally. + +.Prerequisites +* You have platform administrator privileges. +* You created and referenced a custom config map in your deployment to ensure configuration changes persist during system upgrades or Operator reconciliation loops. For more information, see link:{configuring-book-link}#provision-your-custom-rhdh-configuration_provision-and-use-your-custom-rhdh-configuration[Provision your custom {product} configuration]. + +.Procedure + +. Open your custom configuration file, such as `lightspeed-stack.yaml`. +. Modify the `user_data_collection` block to configure your data preferences: + +** To enable feedback collection, set the `feedback_enabled` parameter to `true`: ++ +[source,yaml] +---- +user_data_collection: + feedback_enabled: true + feedback_storage: "/tmp/data/feedback" + transcripts_enabled: true + transcripts_storage: "/tmp/data/transcripts" +---- +** To disable feedback collection, set the `feedback_enabled` parameter to `false`: ++ +[source,yaml] +---- +user_data_collection: + feedback_enabled: false + feedback_storage: "/tmp/data/feedback" + transcripts_enabled: true + transcripts_storage: "/tmp/data/transcripts" +---- + +[NOTE] +==== +Do not modify the `feedback_storage` or `transcripts_storage` data paths when disabling feedback. Altering these path strings prevents the service from locating existing historical logs. +==== + +. Apply the updated configuration file changes to your cluster by running your platform's standard deployment or upgrade sequence. diff --git a/modules/shared/proc-gather-feedback-in.adoc b/modules/shared/proc-gather-feedback-in.adoc deleted file mode 100644 index ffd0dd14d96..00000000000 --- a/modules/shared/proc-gather-feedback-in.adoc +++ /dev/null @@ -1,35 +0,0 @@ -:_mod-docs-content-type: PROCEDURE - -[id="gather-feedback-in_{context}"] -= Gather feedback in {ls-short} - -[role="_abstract"] -Feedback collection is an optional feature configured on the {lcs-short}. This feature gathers user feedback by providing thumbs-up/down ratings and text comments directly from the chat window. - -{lcs-short} collects the feedback, the user's query, and the response of the model, storing the data as a JSON file on the local file system of the Pod. A platform administrator must later collect and analyze this data to assess model performance and improve the user experience. - -The collected data resides in the cluster where {product-very-short} and {lcs-short} are deployed, making it accessible only to platform administrators for that cluster. For data removal, users must request this action from their platform administrator, as {company-name} neither collects nor accesses this data. - -.Procedure - -. To enable feedback collection, in the {lcs-short} configuration file (`lightspeed-stack.yaml`), add the following settings: -+ -[source,yaml] ----- - user_data_collection: - feedback_enabled: true - feedback_storage: "/tmp/data/feedback" - transcripts_enabled: true - transcripts_storage: "/tmp/data/transcripts" ----- - -. To disable feedback collection, in the {lcs-short} configuration file (`lightspeed-stack.yaml`), add the following settings: -+ -[source,yaml] ----- - user_data_collection: - feedback_enabled: false - feedback_storage: "/tmp/data/feedback" - transcripts_enabled: true - transcripts_storage: "/tmp/data/transcripts" ----- diff --git a/modules/shared/proc-install-and-configure.adoc b/modules/shared/proc-install-and-configure.adoc deleted file mode 100644 index bfaa040dd93..00000000000 --- a/modules/shared/proc-install-and-configure.adoc +++ /dev/null @@ -1,517 +0,0 @@ -:_mod-docs-content-type: PROCEDURE - -[id="install-and-configure_{context}"] -= Install and configure {ls-brand-name} - -[role="_abstract"] -{ls-short} includes several components that work together to provide virtual assistant (chat) functionality: Llama Stack server, {lcs-name} ({lcs-short}), and {ls-brand-name} dynamic plugins. To provide {ls-short} to your users, you must configure these components to communicate with each other. - -include::{docdir}/artifacts/snip-developer-preview-lightspeed.adoc[] - -Llama stack server (container sidecar):: Based on open source https://github.com/llamastack/llama-stack[Llama Stack], this service is the gateway to your LLM inferencing provider for chat services. Its modular architecture supports integrating other services, such as Model Context Protocol (MCP). To enable chat functionality, you must integrate your LLM provider with the Llama Stack server using _Bring Your Own Model_ or BYOM. - -{lcs-name} ({lcs-short}) (container sidecar):: Based on the open source https://github.com/lightspeed-core[Lightspeed Core], this service extends the Llama Stack server by maintaining chat history and gathering user feedback. - -{ls-brand-name} (dynamic plugins):: These plugins enable the {ls-short} user interface within your {product-very-short} instance. - -[NOTE] -==== -* If you are upgrading from the previous {ls-short} {developer-preview} with Road-Core Service, you must remove all existing {ls-short} configurations before reinstalling. - -* To prevent or resolve upgrade inconsistencies, drop and recreate the dynamic plugins volume. - -This reinstallation is required due to the following fundamental architectural changes: - -* The previous release used Road-Core Service as a sidecar container for interfacing with LLM providers. - -* The updated architecture replaces {rcs-short} with the new {lcs-name} and Llama Stack server, which requires new configurations for the plugins, volumes, containers, and secrets. -==== - -.Prerequisites - -* You are logged in to your {ocp-short} account. -* You have an {product-very-short} instance installed using either the Operator or the Helm chart. -* You have created a {installing-and-viewing-plugins-book-link}#install-dynamic-plugins-in-rhdh_installing-and-viewing-plugins-in-rhdh[custom dynamic plugins ConfigMap]. -* You have administrative access to the {product-very-short} configuration files. - -.Procedure - -. Create the {lcs-name} ({lcs-short}) ConfigMap to store the service configuration: -.. In the {ocp-short} web console, navigate to your {product-very-short} instance and select the *ConfigMaps* tab. -.. Click *Create ConfigMaps*, select *YAML view*, and edit the file using the following structure. This example demonstrates the configuration for the {lcs-short} ConfigMap, typically named `lightspeed-stack`, which connects to the Llama Stack service locally on port `8321`: -+ -[source,yaml,subs="+attributes,+quotes"] ----- -kind: ConfigMap -apiVersion: v1 -metadata: - name: lightspeed-stack -data: - lightspeed-stack.yaml: | - name: {lcs-name} ({lcs-short}) - service: - host: 0.0.0.0 - # If the service does not run on port 8080, you must use ${env.LIGHTSPEED_SERVICE_PORT}. This value must match the port defined in lightspeed-app-config.yaml - # port: ${env.LIGHTSPEED_SERVICE_PORT} - auth_enabled: false - workers: 1 - color_log: true - access_log: true - llama_stack: - use_as_library_client: false - url: http://localhost:8321 - user_data_collection: - feedback_enabled: true - feedback_storage: "/tmp/data/feedback" - transcripts_enabled: true - transcripts_storage: "/tmp/data/transcripts" - authentication: - module: "noop" - conversation_cache: - type: "sqlite" - sqlite: - db_path: "/tmp/data/conversations/lcs_cache.db" ----- -+ -[IMPORTANT] -==== -{lcs-short} requires Llama Stack expansion syntax for environment variables in the `lightspeed-stack.yaml` file. You must use the `${env.VAR}` format with uppercase variable names. The service does not support lowercase names or omitting the `env.` prefix, such as `${env.var}`. -==== -.. Click *Create*. - -. Create the {ls-short} ConfigMap (`lightspeed-app-config`) for plugin configurations: -.. In the {ocp-short} web console, navigate to your {product-very-short} instance and select the *ConfigMaps* tab. -.. Click *Create ConfigMap*, select *YAML view*, and add the following configuration: -+ -[source,yaml,subs=+attributes] ----- -kind: ConfigMap -apiVersion: v1 -metadata: - name: lightspeed-app-config - namespace: <__namespace__> # Enter your {product-very-short} instance namespace -data: - app-config.yaml: |- - backend: - csp: - upgrade-insecure-requests: false - img-src: - - "'self'" - - "data:" - - https://img.freepik.com - - https://cdn.dribbble.com - - https://avatars.githubusercontent.com # To load GitHub avatars - - https://secure.gravatar.com # To load Gravatar icons - - https:// # To load GitLab icons - script-src: - - "'self'" - - "'unsafe-eval'" - - https://cdn.jsdelivr.net - - lightspeed: - # OPTIONAL: Custom users prompts displayed to users - # If not provided, the plugin uses built-in default prompts - prompts: - - title: Getting Started with {product} - message: Can you guide me through the first steps to start using {product-very-short} as a developer, like exploring the Software Catalog and adding my service? - - # OPTIONAL: Port for lightspeed service (default: 8080) - # servicePort: ${LIGHTSPEED_SERVICE_PORT} - - # OPTIONAL: Override default {product-very-short} system prompt - # systemPrompt: "You are a helpful assistant focused on {product} development." ----- -+ -[NOTE] -==== -To display user icons from external providers such as Gravatar or GitLab, include the provider URLs in the `img-src` directive of your Content Security Policy (CSP). -==== -.. Click *Create*. - -. Create Llama Stack Secret file (`llama-stack-secrets`) for LLM provider credentials: -+ -[IMPORTANT] -==== -* {product} {product-version} supports vLLM, native OpenAI, Vertex AI, and Ollama providers. The vLLM provider uses the OpenAI API schema but it does not support the official OpenAI service (api.openai.com). To use official OpenAI credentials, you must use the native OpenAI provider instead of vLLM. Using OpenAI credentials with the vLLM provider causes errors or improper responses. -==== - -.. In the {ocp-short} web console, navigate to *Secrets*. -.. Click *Create* -> *Key/value secret*, select *YAML view*, and add the following structure: -+ -[source,yaml] ----- -apiVersion: v1 -kind: Secret -metadata: - name: llama-stack-secrets -type: Opaque -stringData: - ENABLE_VLLM: "true" - ENABLE_VERTEX_AI: "" - ENABLE_OPENAI: "" - ENABLE_OLLAMA: "" - VLLM_URL: "__" - VLLM_API_KEY: "__" - VLLM_MAX_TOKENS: "" - VLLM_TLS_VERIFY: "" - OPENAI_API_KEY: "" - VERTEX_AI_PROJECT: "" - VERTEX_AI_LOCATION: "" - GOOGLE_APPLICATION_CREDENTIALS: "" - OLLAMA_URL: "" - SAFETY_MODEL: "llama-guard3:8b" - SAFETY_URL: "http://localhost:#####/v1" - SAFETY_API_KEY: "" ----- -+ -where: - -`ENABLE_VLLM`:: Enables the vLLM provider. Set to `true` to activate. -`ENABLE_OPENAI`:: Enables the OpenAI provider. Set to `true` to activate. -`ENABLE_VERTEX_AI`:: Enables the Vertex AI provider. Set to `true` to activate. -`ENABLE_OLLAMA`:: Enables the Ollama provider. Set to `true` to activate. -+ -[NOTE] -==== -To disable a provider, leave the value blank. (for example: ENABLE_VLLM="") -==== -`VLLM_URL`:: The API endpoint URL for the LLM provider. The provider must comply with the OpenAI API specification. Examples include OpenAI, {rhoai-brand-name}, and vLLM. -`VLLM_API_KEY`:: Required for remote services: Set this to the API key or token required for authentication with your remote LLM provider, if it is compatible with the OpenAI API specification. -`VLLM_MAX_TOKENS`:: Optional. The maximum number of tokens the model generates. -`VLLM_TLS_VERIFY`:: Optional. Specifies whether the system verifies the TLS certificate for the vLLM endpoint. -`OPENAI_API_KEY`:: The API key required to access OpenAI models through the OpenAI API. -`VERTEX_AI_PROJECT`:: The {gcp-brand-name} project ID required to access Gemini through Vertex AI. -`VERTEX_AI_LOCATION`:: The {gcp-brand-name} region required to access Gemini through Vertex AI. -`GOOGLE_APPLICATION_CREDENTIALS`:: The credentials required to authenticate with {gcp-brand-name} to access Vertex AI. -`OLLAMA_URL`:: The URL for the Ollama service. -`SAFETY_MODEL`:: The identifier for the safety model. The default model is `llama-guard3:8b`, which is optimized by Llama Stack for safety classification. -`SAFETY_URL`:: The URL hosting the safety model. You must append `/v1` to the host address (for example: `localhost:#####/v1`) so the Llama Stack can correctly route moderation requests to the API. -`SAFETY_API_KEY`:: The authentication token from your safety model required to secure the moderation channel and prevent unauthorized access to your safety infrastructure. -+ -[TIP] -==== -To integrate {ls-short} effectively with Model Context Protocol (MCP), you must provide the correct authorization headers. For details instructions, see {model-context-protocol-link}#proc-configuring-mpc-clients-to-access-the-rhdh-server_assembly-model-context-protocol-tools[Configuring MCP clients to access the {product-very-short} server]. -==== -.. Click *Create*. - -. Update the dynamic plugins ConfigMap: Add the {ls-short} plugin image to your existing dynamic plugins ConfigMap (`dynamic-plugins-rhdh`). -+ -[source,yaml] ----- -includes: -- dynamic-plugins.default.yaml -plugins: -- disabled: false - package: oci://ghcr.io/redhat-developer/rhdh-plugin-export-overlays/red-hat-developer-hub-backstage-plugin-lightspeed:bs_1.45.3__1.2.3 - pluginConfig: - dynamicPlugins: - frontend: - red-hat-developer-hub.backstage-plugin-lightspeed: - translationResources: - - importName: lightspeedTranslations - module: Alpha - ref: lightspeedTranslationRef - dynamicRoutes: - - path: /lightspeed - importName: LightspeedPage - mountPoints: - - mountPoint: application/listener - importName: LightspeedFAB - - mountPoint: application/provider - importName: LightspeedDrawerProvider - - mountPoint: application/internal/drawer-state - importName: LightspeedDrawerStateExposer - config: - id: lightspeed - - mountPoint: application/internal/drawer-content - importName: LightspeedChatContainer - config: - id: lightspeed - priority: 100 -- disabled: false - package: oci://ghcr.io/redhat-developer/rhdh-plugin-export-overlays/red-hat-developer-hub-backstage-plugin-lightspeed-backend:bs_1.45.3__1.2.3 ----- - -. Required only if your environment uses another global floating action button (FAB): You must move the existing FAB or disable it to prevent interface elements from overlapping by updating your dynamic plugin configuration file with the following changes: -+ -[source,yaml] ----- -- package: ./dynamic-plugins/dist/red-hat-developer-hub-backstage-plugin-bulk-import - disabled: true - pluginConfig: - dynamicPlugins: - frontend: - red-hat-developer-hub.backstage-plugin-bulk-import: - mountPoints: - # START: If the user has an existing BulkImportPage FAB, move the FAB to the left - - mountPoint: global.floatingactionbutton/config - importName: BulkImportPage - config: - slot: 'bottom-left' - # END - icon: BulkImportIcon - label: 'Bulk import' - toolTip: 'Register multiple repositories in bulk' - to: /bulk-import - translationResources: - - importName: bulkImportTranslations - module: Alpha - ref: bulkImportTranslationRef - appIcons: - - name: bulkImportIcon - importName: BulkImportIcon - dynamicRoutes: - - path: /bulk-import - importName: BulkImportPage - menuItem: - icon: bulkImportIcon - text: Bulk import - textKey: menuItem.bulkImport ----- - -. Update your deployment configuration: Update the deployment configuration based on how your {product-very-short} instance was installed. You must add two sidecar containers: `llama-stack` and `lightspeed-core`. - -** For an Operator-installed {product-very-short} instance (Update {backstage} custom resource (CR)): - -... In the `spec.application.appConfig.configMaps` section of your {backstage} CR, add the {ls-short} custom app configuration: -+ -[source,yaml] ----- -appConfig: - configMaps: - - name: lightspeed-app-config ----- -... Update the `spec.deployment.patch.spec.template.spec.volumes` specification to include volumes for {lcs-short} configuration (`lightspeed-stack`), shared storage for feedback (`shared-storage`), and RAG data (`rag-data-volume`): -+ -[source,yaml] ----- -volumes: - - configMap: - name: lightspeed-stack - name: lightspeed-stack - - emptyDir: {} - name: shared-storage - - emptyDir: {} - name: rag-data-volume ----- -... Update the `spec.deployment.patch.spec.template.spec.initContainers` specification section to initialize RAG data: -[source,yaml] -+ ----- -initContainers: - - name: init-rag-data - image: 'quay.io/redhat-ai-dev/rag-content:release-1.9-lcs' - command: ["sh", "-c", "cp -r /rag/vector_db/rhdh_product_docs /rag-content/ && cp -r /rag/embeddings_model /rag-content/"] - volumeMounts: - - mountPath: /rag-content - name: rag-data-volume ----- -... Add the Llama Stack (`llama-stack`) and the {lcs-short} (`lightspeed-core`) containers to the `spec.deployment.patch.spec.template.spec.containers` section: -+ -[source,yaml,subs="+attributes,+quotes"] ----- -containers: - # ... Your existing {product-very-short} container definition ... - - envFrom: - - secretRef: - name: llama-stack-secrets - image: 'quay.io/redhat-ai-dev/llama-stack:0.1.4' # Llama Stack image - name: llama-stack - volumeMounts: - - mountPath: /app-root/.llama - name: shared-storage - - mountPath: /rag-content - name: rag-data-volume - - image: 'quay.io/lightspeed-core/lightspeed-stack:0.4.0' # {lcs-name} image - name: lightspeed-core - volumeMounts: - - mountPath: /app-root/lightspeed-stack.yaml - name: lightspeed-stack - subPath: lightspeed-stack.yaml - - mountPath: /tmp/data/feedback - name: shared-storage - - mountPath: /tmp/data/transcripts - name: shared-storage - - mountPath: /tmp/data/conversations - name: shared-storage ----- -... Click *Save*. The Pods are automatically restarted. - -** For a Helm-installed {product-very-short} instance (Update the Helm chart): - -... Add your dynamic plugins configuration in the `global.dynamic` property. -+ -[source,yaml] ----- -global: - dynamic: - plugins: - - package: oci://ghcr.io/redhat-developer/rhdh-plugin-export-overlays/red-hat-developer-hub-backstage-plugin-lightspeed:bs_1.45.3__1.2.3 - pluginConfig: - dynamicPlugins: - frontend: - red-hat-developer-hub.backstage-plugin-lightspeed: - translationResources: - - importName: lightspeedTranslations - module: Alpha - ref: lightspeedTranslationRef - dynamicRoutes: - - path: /lightspeed - importName: LightspeedPage - mountPoints: - - mountPoint: application/listener - importName: LightspeedFAB - - mountPoint: application/provider - importName: LightspeedDrawerProvider - - mountPoint: application/internal/drawer-state - importName: LightspeedDrawerStateExposer - config: - id: lightspeed - - mountPoint: application/internal/drawer-content - importName: LightspeedChatContainer - config: - id: lightspeed - priority: 100 - - package: oci://ghcr.io/redhat-developer/rhdh-plugin-export-overlays/red-hat-developer-hub-backstage-plugin-lightspeed-backend:bs_1.45.3__1.2.3 ----- -... Add your {ls-short} custom app config file to `extraAppConfig`: -+ -[source,yaml] ----- - extraAppConfig: - - configMapRef: lightspeed-app-config - filename: app-config.yaml ----- -... Add the Llama Stack Secret file to `extraEnvVarsSecrets`: -+ -[source,yaml] ----- - extraEnvVarsSecrets: - - llama-stack-secrets ----- -... Update the `extraVolumes` section to include the {lcs-short} ConfigMap (`lightspeed-stack`), shared storage, and RAG data volume: -+ -[source,yaml] ----- - extraVolumes: - - configMap: - name: lightspeed-stack - name: lightspeed-stack - - emptyDir: {} - name: shared-storage - - emptyDir: {} - name: rag-data-volume ----- -... Update the `upstream.backstage.initContainers` section (if supported by your Helm chart structure) to initialize RAG data. -+ -[source,yaml] ----- - initContainers: - - name: init-rag-data - image: 'quay.io/redhat-ai-dev/rag-content:release-1.9-lcs' - command: - - "sh" - - "-c" - - "echo 'Copying RAG data...'; cp -r /rag/vector_db/rhdh_product_docs /data/ && cp -r /rag/embeddings_model /data/ && echo 'Copy complete.'" - volumeMounts: - - mountPath: /data - name: rag-data-volume ----- -... Add the Llama Stack and {lcs-short} container definitions to `extraContainers`. -+ -[NOTE] -==== -If you have Road-Core Service installed from the previous {ls-brand-name} configuration, you must replace the older single container configuration found in source with the two sidecars. -==== -+ -[source, yaml,subs="+attributes,+quotes"] ----- - extraContainers: - # Llama Stack Container - - envFrom: - - secretRef: - name: llama-stack-secrets - image: 'quay.io/redhat-ai-dev/llama-stack:0.1.4' - name: llama-stack - volumeMounts: - - mountPath: /app-root/.llama - name: shared-storage - - mountPath: /rag-content/embeddings_model - name: rag-data-volume - subPath: embeddings_model - - mountPath: /rag-content/vector_db/rhdh_product_docs - name: rag-data-volume - subPath: rhdh_product_docs - # {lcs-name} Container - - image: 'quay.io/lightspeed-core/lightspeed-stack:0.4.0' - name: lightspeed-core - volumeMounts: - - mountPath: /app-root/lightspeed-stack.yaml - name: lightspeed-stack - subPath: lightspeed-stack.yaml - - mountPath: /tmp/data/feedback - name: shared-storage - - mountPath: /tmp/data/transcripts - name: shared-storage - - mountPath: /tmp/data/conversations - name: shared-storage ----- -... Click *Save* and then Helm upgrade. - -. Optional: Manage authorization (RBAC): If you have users who are not administrators, you must {authorization-book-link}#enabling-and-giving-access-to-rbac_title-authorization[define permissions and roles] for them to use {ls-short}. The Lightspeed Backend plugin uses {backstage} RBAC for authorization. - -** For an Operator-installed {product-very-short} instance: - -... Configure the required RBAC permission by defining an `rbac-policies.csv` file, including `lightspeed.chat.read`, `lightspeed.chat.create`, and `lightspeed.chat.delete` permissions: -+ -[source,csv] ----- -p, role:default/__, lightspeed.chat.read, read, allow -p, role:default/__, lightspeed.chat.create, create, allow -p, role:default/__, lightspeed.chat.delete, delete, allow -g, user:default/__, role:default/__ ----- -... Upload your `rbac-policies.csv` file to an `rbac-policies` ConfigMap in your {ocp-short} project containing {product-very-short} and update your {backstage} CR: -+ -[source,yaml,subs="+attributes,+quotes"] ----- -apiVersion: rhdh.redhat.com/v1alpha5 -kind: {product-custom-resource-type} -spec: - application: - extraFiles: - mountPath: /opt/app-root/src - configMaps: - - name: rbac-policies ----- - -** For a Helm-installed {product-very-short} instance: - -... Configure the required RBAC permission by defining an `rbac-policies.csv` file: -+ -[source,csv] ----- -p, role:default/__, lightspeed.chat.read, read, allow -p, role:default/__, lightspeed.chat.create, create, allow -p, role:default/__, lightspeed.chat.delete, delete, allow -g, user:default/__, role:default/__ ----- -... Optional: Declare policy administrators by editing your custom {product-very-short} ConfigMap (`app-config.yaml`) and adding the following code to enable selected authenticated users to configure RBAC policies through the REST API or Web UI: -+ -[source,yaml] ----- - permission: - enabled: true - rbac: - policies-csv-file: /opt/app-root/src/rbac-policies.csv - policyFileReload: true - admin: - users: - - name: user:default/ ----- - -.Verification - -. Log in to your {product-very-short} instance. -. Verify that you can see and access the *Lightspeed* FAB in the home page. -. Select the *Lightspeed* FAB and verify the chat screen loads. diff --git a/modules/shared/proc-manage-chats.adoc b/modules/shared/proc-manage-chats.adoc index eb195c6c634..02fbd0e1549 100644 --- a/modules/shared/proc-manage-chats.adoc +++ b/modules/shared/proc-manage-chats.adoc @@ -14,7 +14,7 @@ image::shared/chat-options.png["Chat options menu"] .Procedure -. Click the *Lightspeed* floating action button (FAB) at the lower right of the screen to open the chat overlay. +. Click the *Open Lightspeed* floating action button (FAB) at the lower right of the screen to open the chat overlay. . Optional: Configure the interface display and server settings: * Click the *Chatbot options* icon (⋮) to view chat history or start a new chat. @@ -41,7 +41,7 @@ image::shared/lightspeed-fullscreen.png["Lightspeed full-screen mode"] . Start a chat or load an earlier session: ** *Enter a prompt*: Type a query in the *Enter a prompt for Lightspeed* chat field and press *Enter*. -** *Use a sample*: Click a prompt tile, such as *Deploy with Tekton*. +** *Use a sample*: Click a prompt tile. ** *Attach a file*: Click *Attach* to upload a `.yaml`, `.json`, or `.txt` file. ... Click the file name to open the preview model. ... View or edit the content of the file: diff --git a/modules/shared/proc-mirror-images-for-air-gapped-environments.adoc b/modules/shared/proc-mirror-images-for-air-gapped-environments.adoc new file mode 100644 index 00000000000..9033a0253bb --- /dev/null +++ b/modules/shared/proc-mirror-images-for-air-gapped-environments.adoc @@ -0,0 +1,29 @@ +:_mod-docs-content-type: PROCEDURE +[id="mirror-images-for-air-gapped-environments_{context}"] += Mirror {ls-short} images for air-gapped environments + +[role="_abstract"] +To provide chat assistance in a network environment without internet access, you must mirror the required {ls-short} container images to your local registry in addition to the standard {product-short} images. + +This action ensures your secure environment can pull the necessary images inside your network perimeter. + +You must mirror the following {ls-short} images: +* The {lcs-name}({lcs-short}) sidecar container +* The initialization container for retrieval-augmented generation (RAG) data + +.Prerequisites +* You have a target mirror registry accessible to your disconnected cluster. +* You authenticated to the {rhcr} and your target mirror registry. +* You updated the cluster install secret (the 'pull-secret' in the 'openshift-config' namespace) to include the authentication credentials to your mirror registry. The `kubelet` requires these credentials to pull the sidecar images when starting up the {product-very-short} pod. + +.Procedure +. Extract or identify the image digests for the {ls-short} sidecar and initialization container images. +. Mirror the images directly to your internal mirror registry by running the `skopeo copy` command: ++ +[source,terminal] +---- + +---- + +.Additional resources +* {installing-in-air-gap-book-link}[{installing-in-air-gap-book-title}] diff --git a/modules/shared/proc-update-the-system-prompt-in.adoc b/modules/shared/proc-update-the-system-prompt-in.adoc deleted file mode 100644 index ea285eb0512..00000000000 --- a/modules/shared/proc-update-the-system-prompt-in.adoc +++ /dev/null @@ -1,20 +0,0 @@ -:_mod-docs-content-type: PROCEDURE - -[id="update-the-system-prompt-in_{context}"] -= Update the system prompt in {ls-short} - -[role="_abstract"] -You can customize the system prompt that {ls-short} uses to frame queries to your LLM, refining the context and instructions that the LLM receives to improve response relevance for your environment. - -.Procedure - -* To set a custom system prompt, in your {ls-short} app config file, add or modify the `lightspeed.systemPrompt` key and set its value to your preferred prompt string as shown in the following example: -+ -[source,yaml,subs="+attributes,+quotes"] ----- -lightspeed: - # ... other lightspeed configurations - systemPrompt: "You are a helpful assistant focused on {product} development." ----- -+ -Set `systemPrompt` to prefix all queries sent by {ls-short} to the LLM with this instruction, guiding the model to generate more tailored responses. diff --git a/modules/shared/snip-lightspeed-secret-keys.adoc b/modules/shared/snip-lightspeed-secret-keys.adoc new file mode 100644 index 00000000000..de644471d80 --- /dev/null +++ b/modules/shared/snip-lightspeed-secret-keys.adoc @@ -0,0 +1,52 @@ +:_mod-docs-content-type: SNIPPET + +[IMPORTANT] +==== +To disable an inference provider or configuration feature, you must leave the corresponding `ENABLE_*` variable completely unset. Setting an `ENABLE_*` variable to `false` does not disable the component because the underlying system checks only whether the variable is defined. +==== + +|=== +| Key | Description + +| `ENABLE_VLLM` +| Enables the vLLM platform when set to `"true"`. + +| `VLLM_URL` +| Specifies the target API endpoint URL for vLLM (for example, `https:///v1`). + +| `VLLM_API_KEY` +| Stores the authorization token for your vLLM platform. + +| `ENABLE_OPENAI` +| Enables the OpenAI platform when set to `"true"`. + +| `OPENAI_API_KEY` +| Stores the authorization secret key for OpenAI. + +| `ENABLE_OLLAMA` +| Enables the Ollama platform when set to `"true"`. + +| `OLLAMA_URL` +| Specifies the target endpoint URL for Ollama. + +| `ENABLE_VERTEX_AI` +| Enables the Vertex AI platform when set to `"true"`. + +| `VERTEX_AI_PROJECT` +| Specifies your Google Cloud project ID. + +| `VERTEX_AI_LOCATION` +| Specifies your target Google Cloud region. + +| `GOOGLE_APPLICATION_CREDENTIALS` +| Specifies the file path of your mounted Google Cloud service account credentials JSON file. + +| `ENABLE_VALIDATION` +| Activates query safety validation guardrails when set to `"true"`. + +| `VALIDATION_PROVIDER` +| Defines the active provider managing the verification routines (for example, `openai` or `vllm`). + +| `VALIDATION_MODEL_NAME` +| Specifies the exact verification model to use (for example, `gpt-4o-mini`). +|=== diff --git a/modules/shared/snip-rbac-policies.adoc b/modules/shared/snip-rbac-policies.adoc new file mode 100644 index 00000000000..988f2192afb --- /dev/null +++ b/modules/shared/snip-rbac-policies.adoc @@ -0,0 +1,9 @@ +:_mod-docs-content-type: SNIPPET + +To grant non-administrator teams access to the virtual assistant, append permission lines to the `rbac-policies.csv` section, replacing `` with your target team name: + +[source,text] +---- +p, role:default/, lightspeed.chat.read, read, allow +p, role:default/, lightspeed.chat.create, create, allow +---- diff --git a/titles/integrate_interacting-with-developer-lightspeed-for-rhdh/master.adoc b/titles/integrate_interacting-with-developer-lightspeed-for-rhdh/master.adoc index 148b6afb6b0..c0de6c943eb 100644 --- a/titles/integrate_interacting-with-developer-lightspeed-for-rhdh/master.adoc +++ b/titles/integrate_interacting-with-developer-lightspeed-for-rhdh/master.adoc @@ -14,17 +14,17 @@ include::artifacts/attributes.adoc[] [role="_abstract"] {abstract} -include::modules/shared/con-about.adoc[leveloffset=+1] +include::modules/shared/con-chat-assistance-with.adoc[leveloffset=+1] -include::modules/shared/con-supported-architecture-for.adoc[leveloffset=+1] +include::modules/shared/con-architecture-for-your-ai-backend-deployment.adoc[leveloffset=+1] -include::modules/shared/con-about-and-llama-stack.adoc[leveloffset=+2] +include::modules/shared/con-ai-reference-and-tool-calling-capabilities-through.adoc[leveloffset=+2] -include::modules/shared/con-retrieval-augmented-generation-rag-embeddings.adoc[leveloffset=+1] +include::modules/shared/con-retrieval-augmented-generation-rag-embeddings-for-grounded-ai-responses.adoc[leveloffset=+1] -include::modules/shared/proc-install-and-configure.adoc[leveloffset=+1] +include::assemblies/shared/assembly-configure-to-initialize-the-ai-assistant.adoc[leveloffset=+1] -include::assemblies/shared/assembly-customize.adoc[leveloffset=+1] +include::assemblies/shared/assembly-customize-ai-responses.adoc[leveloffset=+1] include::assemblies/shared/assembly-solve-project-specific-challenges-with-notebooks.adoc[leveloffset=+1] @@ -34,4 +34,5 @@ include::assemblies/shared/assembly-ai-model-evaluation-data-to-select-the-right include::assemblies/shared/assembly-appendix-llm-requirements.adoc[leveloffset=+1] -include::assemblies/shared/assembly-appendix-about-user-data-security.adoc[leveloffset=+1] +include::assemblies/shared/assembly-appendix-manage-user-data-security.adoc[leveloffset=+1] +