Skip to content

feat: Add support for vLLMs and custom URL support#10336

Merged
erichare merged 5 commits into
langflow-ai:mainfrom
jpramos123:support-vllm
Dec 2, 2025
Merged

feat: Add support for vLLMs and custom URL support#10336
erichare merged 5 commits into
langflow-ai:mainfrom
jpramos123:support-vllm

Conversation

@jpramos123
Copy link
Copy Markdown
Contributor

@jpramos123 jpramos123 commented Oct 20, 2025

Extend the Language Model component to support language models using vLLM OpenAI compatible server. [1]
The component uses the langchain ChatOpenAI to access the model.

The component has a custom model name, URL and API key.
The user should be responsible to feed abovinformationns correctly in order for the models to work properly

Summary by CodeRabbit

  • New Features
    • Added vLLM as a supported provider for language models
    • Introduced base URL configuration field for vLLM models
    • Updated model selection UI for vLLM with text input
    • Made API key optional for vLLM provider

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Oct 20, 2025

Important

Review skipped

Auto incremental reviews are disabled on this repository.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Walkthrough

This PR adds vLLM as a supported language model provider by introducing frontend icon components and extending the backend configuration to handle vLLM initialization via base URL and optional API key, with model name as a text input rather than a dropdown selection.

Changes

Cohort / File(s) Summary
Frontend vLLM Icon Components
src/frontend/src/icons/vLLM/index.tsx, src/frontend/src/icons/vLLM/vLLM.jsx
Created new VLLMIcon React component wrapping SvgVLLM with forwardRef support, and added SvgVLLM SVG component rendering an inline icon with dark mode color adaptation.
Frontend Icon Registry
src/frontend/src/icons/eagerIconImports.ts
Added VLLMIcon import and registered it in the eagerIconsMapping to enable eager loading.
Backend Language Model Provider
src/lfx/src/lfx/components/models/language_model.py
Extended LanguageModelComponent to support vLLM provider with base_url input, updated model_name from dropdown to text input for vLLM, added ChatOpenAI initialization with base_url validation, and modified UI configuration conditionally for vLLM.

Sequence Diagram

sequenceDiagram
    participant User
    participant UI as Language Model UI
    participant Backend
    participant ChatOpenAI
    
    User->>UI: Select vLLM provider
    UI->>Backend: update_build_config(provider="vLLM")
    Note over Backend: Convert model_name to text input<br/>Set base_url visibility<br/>Mark API key optional
    Backend-->>UI: Updated configuration
    
    User->>UI: Enter base_url & model_name
    User->>UI: (Optional) Enter API key
    User->>UI: Build model
    UI->>Backend: build_model(provider="vLLM", base_url, model_name, api_key?)
    
    alt base_url present
        Backend->>ChatOpenAI: Initialize with base_url & api_key
        ChatOpenAI-->>Backend: ChatOpenAI client
        Backend-->>UI: Model ready
    else base_url missing
        Backend-->>UI: ValueError: base_url required
    end
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

Suggested labels

enhancement, lgtm

Suggested reviewers

  • edwinjosechittilappilly
  • ogabrielluiz
  • erichare

Pre-merge checks and finishing touches

❌ Failed checks (1 error, 4 warnings)
Check name Status Explanation Resolution
Test Coverage For New Implementations ❌ Error The PR adds significant new functionality for vLLM provider support in the LanguageModelComponent, including a new vLLM icon component in the frontend. However, the test file has not been updated to include tests for the new vLLM functionality. The existing test suite contains 13 test methods covering OpenAI, Anthropic, and Google providers with tests for model creation, build configuration updates, missing API key validation, and live API tests. However, there are zero references to vLLM in the tests, and no corresponding tests for the new vLLM provider path in the build_model() method, the vLLM branch in the update_build_config() method, or base_url validation. Additionally, no frontend tests exist for the newly added VLLMIcon component or verification that it is properly included in the eagerIconsMapping. Add comprehensive tests for vLLM functionality to src/backend/tests/unit/components/models/test_language_model_component.py: (1) test_update_build_config_vllm to verify model_name switches to MessageTextInput and base_url becomes visible when vLLM is selected, (2) test_build_vllm_provider to verify ChatOpenAI instantiation with base_url and optional API key, (3) test_build_missing_base_url_vllm to verify ValueError when base_url is missing, and (4) tests confirming UI elements restore correctly when switching back to other providers. Additionally, add frontend tests to verify the VLLMIcon component renders properly and is included in the eagerIconsMapping as documented in the PR summary.
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
Test Quality And Coverage ⚠️ Warning
Test File Naming And Structure ⚠️ Warning The PR introduces significant new backend functionality (vLLM provider support with base_url validation, conditional UI logic for model_name switching across providers) and frontend icon components, but fails to follow the repository's established testing patterns. The existing test file at ./src/backend/tests/unit/components/models/test_language_model_component.py demonstrates clear pytest conventions with descriptive test function names and proper organization covering both positive and error scenarios for other providers, yet it was not updated to include vLLM test cases. Additionally, no new test files were created for the vLLM icon component in the frontend, despite the repository having established Playwright test infrastructure at ./src/frontend/tests/. This lack of test coverage violates the custom check requirements for proper test file naming (test_*.py for backend), structure, and comprehensive scenario coverage. Update the existing ./src/backend/tests/unit/components/models/test_language_model_component.py file to add test methods following the established naming convention (e.g., test_update_build_config_vllm, test_vllm_model_creation, test_build_model_vllm_missing_base_url) that verify vLLM provider behavior including base_url validation errors, ChatOpenAI instantiation with correct kwargs, and UI config switching. Create a new frontend test file at ./src/frontend/src/icons/vLLM/__tests__/VLLMIcon.test.tsx using Playwright to test component rendering, ref forwarding, and dark mode prop handling. Ensure all test functions have descriptive names explaining what is being tested, and cover both positive and negative scenarios as demonstrated in the existing provider tests.
Excessive Mock Usage Warning ⚠️ Warning The existing test file uses appropriate mocking patterns and is not characterized by excessive mock usage. Tests instantiate real component objects, verify real type instances (ChatOpenAI, ChatAnthropic, ChatGoogleGenerativeAI), and rely on real integrations where feasible. However, the PR introduces vLLM provider support but the test file contains zero test cases for vLLM functionality: no vLLM provider configuration tests, no vLLM model creation tests, and no vLLM error handling tests. Additionally, the update_build_config tests do not validate the configuration reset behavior mentioned in review comments, specifically that switching between providers properly restores base_url.advanced flag and API key requirements. This gap represents incomplete test coverage for new feature functionality rather than excessive mocking, but it fails the check's intent to ensure new features are tested appropriately. Add missing test coverage for vLLM functionality, including: (1) test_update_build_config_vllm validating that model_name switches to text input, base_url is exposed, and api_key becomes optional when selecting vLLM; (2) test_vllm_model_creation verifying ChatOpenAI instantiation with correct parameters for vLLM; (3) test_build_model_vllm_missing_base_url ensuring proper error handling; (4) enhanced tests for all provider transitions (OpenAI→vLLM, vLLM→Anthropic, etc.) to verify configuration resets documented in review comments; and (5) optionally add parametrized tests to verify base_url.advanced and api_key.required flags are correctly updated across all provider switches. The existing test patterns are sound and should be followed.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title Check ✅ Passed The pull request title "feat: Add support for vLLMs and custom URL support" directly and accurately reflects the main changes in the changeset. The primary modifications extend the Language Model component to support vLLM providers by introducing vLLM as a new supported provider option and adding a base_url input field for custom URLs, along with supporting icon components for UI presentation. The title is concise, specific, and clearly communicates the key functionality being added without vagueness or misleading information. A teammate reviewing the commit history would understand that this change introduces vLLM provider support with custom URL configuration.

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.

@github-actions github-actions Bot added enhancement New feature or request and removed enhancement New feature or request labels Oct 20, 2025
@github-actions github-actions Bot added enhancement New feature or request and removed enhancement New feature or request labels Oct 20, 2025
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 5

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
src/lfx/src/lfx/components/models/language_model.py (1)

107-113: The web search confirms the review comment's assertion. The langchain_openai ChatOpenAI uses model parameter, not model_name, and the API key parameter is api_key (with alias to openai_api_key from older versions). Looking at the code at lines 107–113 of src/lfx/src/lfx/components/models/language_model.py and line 139-143 (vLLM branch), both use the incorrect kwargs model_name and openai_api_key instead of the correct model and api_key.

Fix ChatOpenAI kwargs for OpenAI and vLLM paths.

The langchain_openai package expects model and api_key parameters (not model_name and openai_api_key). Both the OpenAI path (lines 107–113) and vLLM path (lines 139–143) use incorrect kwargs:

             return ChatOpenAI(
-                model_name=model_name,
+                model=model_name,
                 temperature=temperature,
                 streaming=stream,
-                openai_api_key=self.api_key,
+                api_key=self.api_key,
                 base_url=self.base_url,
             )

Apply the same fix to both occurrences (lines ~107–113 and ~139–143).

src/frontend/src/icons/eagerIconImports.ts (1)

109-115: Add vLLM to lazy icon mapping.

vLLM was added to eagerIconImports.ts but is missing from the lazyIconsMapping in lazyIconImports.ts. Add the entry between VertexAI and WatsonxAI to ensure consistent lazy-loading support, using the key vLLM to match the eager import exactly.

🧹 Nitpick comments (2)
src/lfx/src/lfx/components/models/language_model.py (2)

49-55: Consider StrInput for base_url or validate URL format.

MessageTextInput accepts Message/iterators; base_url is a plain string. Either switch to a simple string input or add a light URL validator/normalizer (e.g., ensure it includes /v1 and no trailing slash quirks).

If you prefer to keep MessageTextInput, confirm other components also use it for plain strings for consistency.


187-193: Null-safety for o1 detection.

Defensive check avoids attribute errors if model_name is ever None or not str.

-        elif field_name == "model_name" and field_value.startswith("o1") and self.provider == "OpenAI":
+        elif field_name == "model_name" and isinstance(field_value, str) and field_value.startswith("o1") and self.provider == "OpenAI":
...
-        elif field_name == "model_name" and not field_value.startswith("o1") and "system_message" in build_config:
+        elif field_name == "model_name" and isinstance(field_value, str) and not field_value.startswith("o1") and "system_message" in build_config:
📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 621c103 and bceca8a.

⛔ Files ignored due to path filters (1)
  • src/frontend/src/icons/vLLM/vLLM.svg is excluded by !**/*.svg
📒 Files selected for processing (4)
  • src/frontend/src/icons/eagerIconImports.ts (3 hunks)
  • src/frontend/src/icons/vLLM/index.tsx (1 hunks)
  • src/frontend/src/icons/vLLM/vLLM.jsx (1 hunks)
  • src/lfx/src/lfx/components/models/language_model.py (5 hunks)
🧰 Additional context used
📓 Path-based instructions (4)
src/frontend/src/**/*.{ts,tsx,js,jsx}

📄 CodeRabbit inference engine (.cursor/rules/frontend_development.mdc)

src/frontend/src/**/*.{ts,tsx,js,jsx}: All frontend TypeScript and JavaScript code should be located under src/frontend/src/ and organized into components, pages, icons, stores, types, utils, hooks, services, and assets directories as per the specified directory layout.
Use React 18 with TypeScript for all UI components in the frontend.
Format all TypeScript and JavaScript code using the make format_frontend command.
Lint all TypeScript and JavaScript code using the make lint command.

Files:

  • src/frontend/src/icons/vLLM/vLLM.jsx
  • src/frontend/src/icons/eagerIconImports.ts
  • src/frontend/src/icons/vLLM/index.tsx
src/frontend/src/icons/**/*.{ts,tsx,js,jsx}

📄 CodeRabbit inference engine (.cursor/rules/frontend_development.mdc)

Use Lucide React for icons in the frontend.

Files:

  • src/frontend/src/icons/vLLM/vLLM.jsx
  • src/frontend/src/icons/eagerIconImports.ts
  • src/frontend/src/icons/vLLM/index.tsx
src/frontend/src/icons/*/*.@(js|jsx|ts|tsx)

📄 CodeRabbit inference engine (.cursor/rules/icons.mdc)

Create a new directory for your icon in src/frontend/src/icons/YourIconName/ and add your SVG as a React component (e.g., YourIconName.jsx). The SVG component must use the isDark prop to support both light and dark mode.

Files:

  • src/frontend/src/icons/vLLM/vLLM.jsx
  • src/frontend/src/icons/vLLM/index.tsx
src/frontend/src/icons/*/index.tsx

📄 CodeRabbit inference engine (.cursor/rules/icons.mdc)

Create an index.tsx in your icon directory that exports your icon using forwardRef and passes the isDark prop.

Files:

  • src/frontend/src/icons/vLLM/index.tsx
🧠 Learnings (5)
📚 Learning: 2025-07-28T15:56:47.865Z
Learnt from: CR
PR: langflow-ai/langflow#0
File: .cursor/rules/icons.mdc:0-0
Timestamp: 2025-07-28T15:56:47.865Z
Learning: Applies to src/frontend/src/icons/*/*.@(js|jsx|ts|tsx) : Create a new directory for your icon in `src/frontend/src/icons/YourIconName/` and add your SVG as a React component (e.g., `YourIconName.jsx`). The SVG component must use the `isDark` prop to support both light and dark mode.

Applied to files:

  • src/frontend/src/icons/vLLM/vLLM.jsx
📚 Learning: 2025-07-28T15:56:47.865Z
Learnt from: CR
PR: langflow-ai/langflow#0
File: .cursor/rules/icons.mdc:0-0
Timestamp: 2025-07-28T15:56:47.865Z
Learning: Applies to src/frontend/src/icons/lazyIconImports.ts : Add your icon to the `lazyIconsMapping` object in `src/frontend/src/icons/lazyIconImports.ts` with a key that matches the backend icon string exactly.

Applied to files:

  • src/frontend/src/icons/eagerIconImports.ts
📚 Learning: 2025-07-28T15:56:47.865Z
Learnt from: CR
PR: langflow-ai/langflow#0
File: .cursor/rules/icons.mdc:0-0
Timestamp: 2025-07-28T15:56:47.865Z
Learning: Applies to src/frontend/src/icons/*/index.tsx : Create an `index.tsx` in your icon directory that exports your icon using `forwardRef` and passes the `isDark` prop.

Applied to files:

  • src/frontend/src/icons/vLLM/index.tsx
📚 Learning: 2025-06-23T12:46:52.420Z
Learnt from: CR
PR: langflow-ai/langflow#0
File: .cursor/rules/icons.mdc:0-0
Timestamp: 2025-06-23T12:46:52.420Z
Learning: Export custom icon components in React using React.forwardRef to ensure proper ref forwarding and compatibility with parent components.

Applied to files:

  • src/frontend/src/icons/vLLM/index.tsx
📚 Learning: 2025-06-16T11:14:04.200Z
Learnt from: dolfim-ibm
PR: langflow-ai/langflow#8394
File: src/frontend/src/icons/Docling/index.tsx:4-6
Timestamp: 2025-06-16T11:14:04.200Z
Learning: The Langflow codebase consistently uses `React.PropsWithChildren<{}>` as the prop type for all icon components using forwardRef, rather than `React.SVGProps<SVGSVGElement>`. This is an established pattern across hundreds of icon files in src/frontend/src/icons/.

Applied to files:

  • src/frontend/src/icons/vLLM/index.tsx
🧬 Code graph analysis (3)
src/frontend/src/icons/eagerIconImports.ts (1)
src/frontend/src/icons/vLLM/index.tsx (1)
  • VLLMIcon (5-9)
src/frontend/src/icons/vLLM/index.tsx (1)
src/frontend/src/icons/vLLM/vLLM.jsx (1)
  • SvgVLLM (1-148)
src/lfx/src/lfx/components/models/language_model.py (1)
src/lfx/src/lfx/inputs/inputs.py (6)
  • DropdownInput (474-499)
  • MessageInput (185-212)
  • MessageTextInput (215-266)
  • MultilineInput (269-279)
  • SecretStrInput (295-350)
  • SliderInput (651-652)
🔇 Additional comments (2)
src/frontend/src/icons/vLLM/index.tsx (1)

1-9: LGTM — forwardRef wrapper matches icon conventions.

src/lfx/src/lfx/components/models/language_model.py (1)

173-187: Update vLLM model name and endpoint examples for clarity.

The /v1 path is a standard part of vLLM's OpenAI-compatible API endpoint, and typical model names follow conventions like "Qwen/Qwen2.5-1.5B-Instruct". The example "gemini-2.5-pro" is a Google model and does not reflect common vLLM deployments. The suggested changes align with best practices:

-                build_config["model_name"]["info"] = "Enter the model name (e.g., gemini-2.5-pro)"
+                build_config["model_name"]["info"] = "Enter the model name (e.g., meta-llama/Meta-Llama-3.1-8B-Instruct, mistralai/Mixtral-8x7B-Instruct)"
-                build_config["base_url"]["info"] = "vLLM server endpoint URL (e.g., http://localhost:8000/v1)"
+                build_config["base_url"]["info"] = "vLLM server endpoint URL (must include /v1, e.g., http://localhost:8000/v1)"

Comment thread src/frontend/src/icons/vLLM/vLLM.jsx Outdated
Comment on lines +139 to +145
return ChatOpenAI(
model_name=model_name,
temperature=temperature,
streaming=stream,
openai_api_key=self.api_key or "EMPTY", # vLLM may not require API key
base_url=self.base_url,
)
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 | 🔴 Critical

Fix ChatOpenAI kwargs for vLLM path (model/api_key).

Same issue as OpenAI path; use model and api_key. Keep base_url.

-            return ChatOpenAI(
-                model_name=model_name,
-                temperature=temperature,
-                streaming=stream,
-                openai_api_key=self.api_key or "EMPTY",  # vLLM may not require API key
-                base_url=self.base_url,
-            )
+            return ChatOpenAI(
+                model=model_name,
+                temperature=temperature,
+                streaming=stream,
+                api_key=self.api_key or "EMPTY",  # vLLM may not require API key
+                base_url=self.base_url,
+            )
📝 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
return ChatOpenAI(
model_name=model_name,
temperature=temperature,
streaming=stream,
openai_api_key=self.api_key or "EMPTY", # vLLM may not require API key
base_url=self.base_url,
)
return ChatOpenAI(
model=model_name,
temperature=temperature,
streaming=stream,
api_key=self.api_key or "EMPTY", # vLLM may not require API key
base_url=self.base_url,
)
🤖 Prompt for AI Agents
In src/lfx/src/lfx/components/models/language_model.py around lines 139 to 145,
the ChatOpenAI instantiation for the vLLM path is using the OpenAI-style kwargs
(model_name and openai_api_key); change these to use the vLLM-style kwargs by
passing model=self.model or model=model (matching surrounding variable) and
api_key=self.api_key or "EMPTY" (or empty string as before), while keeping
base_url and the other existing args (temperature, streaming/stream) unchanged.

Comment thread src/lfx/src/lfx/components/models/language_model.py Outdated
Comment thread src/lfx/src/lfx/components/models/language_model.py Outdated
Comment thread src/lfx/src/lfx/components/models/language_model.py Outdated
@github-actions github-actions Bot added enhancement New feature or request and removed enhancement New feature or request labels Oct 20, 2025
Comment thread src/frontend/src/icons/eagerIconImports.ts Outdated
@jpramos123 jpramos123 requested a review from schuellerf October 20, 2025 18:18
@github-actions github-actions Bot added enhancement New feature or request and removed enhancement New feature or request labels Oct 20, 2025
@github-actions
Copy link
Copy Markdown
Contributor

⚠️ Component index needs to be updated

Please run the following command locally and commit the changes:

make build_component_index

Or alternatively:

LFX_DEV=1 uv run python scripts/build_component_index.py

Then commit and push the updated src/lfx/src/lfx/_assets/component_index.json file.

@github-actions github-actions Bot added enhancement New feature or request and removed enhancement New feature or request labels Oct 20, 2025
@sonarqubecloud
Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
13.2% Duplication on New Code (required ≤ 3%)

See analysis details on SonarQube Cloud

@jpramos123 jpramos123 force-pushed the support-vllm branch 2 times, most recently from 7cefccd to 0c2b19c Compare October 21, 2025 14:26
@github-actions github-actions Bot added enhancement New feature or request and removed enhancement New feature or request labels Oct 21, 2025
@github-actions github-actions Bot removed the enhancement New feature or request label Oct 21, 2025
@github-actions github-actions Bot added enhancement New feature or request and removed enhancement New feature or request labels Oct 22, 2025
@github-actions github-actions Bot added enhancement New feature or request and removed enhancement New feature or request labels Oct 22, 2025
@jpramos123
Copy link
Copy Markdown
Contributor Author

@erichare @rodrigosnader Can you help us understand why is the pipeline failing?

I already ran the make build_component_index script, but no changes are applied to my local branch...

@erichare
Copy link
Copy Markdown
Collaborator

@jpramos123 the failing pipeline shouldnt block the merging of this - I think we just need an approving review.

There are enough frontend changes that it would be good to have multiple eyes on this: @ogabrielluiz @Cristhianzl @lucaseduoli and @edwinjosechittilappilly might be good candidates!

@jpramos123
Copy link
Copy Markdown
Contributor Author

@ogabrielluiz @Cristhianzl @lucaseduoli and @edwinjosechittilappilly Hey guys, are you able to review this PR?

Thank you!


if hasattr(self, "system_prompt"):
input_dict: dict[str, str | list[BaseMessage]] = {}
if hasattr(self, "system_prompt") and self.system_prompt and self.system_prompt.strip():
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Is this strictly required for this PR, or a more general fix?

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.

Sorry, removed my last message
I think this is needed for models like granite, which don't use their internal system_prompt template when anything is set (even "")
But this is crucial to get e.g. tool calling right.

So we need to send the perfectly formatted system prompt for this model or don't send any system_prompt - like really skipping the value…

async def send_message_noop(
message: Message,
text: str | None = None, # noqa: ARG001
background_color: str | None = None, # noqa: ARG001
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Similar question here - are these changes necessary for the PR?

Copy link
Copy Markdown
Contributor

@schuellerf schuellerf Nov 13, 2025

Choose a reason for hiding this comment

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

but this looks like a CI-fix artefact - @jpramos123 what do you think?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

@schuellerf Correct! This was needed to get the CI up and running. These values are not being used at all here

Copy link
Copy Markdown
Collaborator

@erichare erichare left a comment

Choose a reason for hiding this comment

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

This is a fantastic PR, but i do have two questions that i'd like addressed first if possible - a couple changes that may be necessary for the vLLMs, but just want to be careful about backwards compat

]
messages = []

# Only include system message if system_prompt is provided and not empty
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.

@erichare like here - this is really needed for models like granite which behave strangely when you want tool calling and don't provide the recommended system prompt (or skip the parameter to force loading the deployed one)

@schuellerf
Copy link
Copy Markdown
Contributor

@jpramos123 I think the CI wants you to update the component index with
make build_component_index
Did you update with this?
This results in a different component_index.json as it uses LFX_DEV=1 I think.
The other CI failures seem to be timeouts/aborts due to runtime :-/
(subject to increase timeouts in CI or just retry :-( )

@jpramos123
Copy link
Copy Markdown
Contributor Author

@jpramos123 I think the CI wants you to update the component index with make build_component_index Did you update with this? This results in a different component_index.json as it uses LFX_DEV=1 I think. The other CI failures seem to be timeouts/aborts due to runtime :-/ (subject to increase timeouts in CI or just retry :-( )

Hey @schuellerf, yes always use this make command to refresh the component_index.json.

Looks like the conflict happens because it always changes after a new commit is merged into master

@schuellerf
Copy link
Copy Markdown
Contributor

@jpramos123 I think the CI wants you to update the component index with make build_component_index Did you update with this? This results in a different component_index.json as it uses LFX_DEV=1 I think. The other CI failures seem to be timeouts/aborts due to runtime :-/ (subject to increase timeouts in CI or just retry :-( )

Hey @schuellerf, yes always use this make command to refresh the component_index.json.

Looks like the conflict happens because it always changes after a new commit is merged into master

Thanks! That's a good explanation, so we don't need to update this always, I guess!

@jpramos123
Copy link
Copy Markdown
Contributor Author

/retest

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request lgtm This PR has been approved by a maintainer

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants