feat: LLM routing integration via NotDiamond (#4543)

* WIP

* Integrate Notdiamond via API call

* Fix frontend lock

* Update

* Update ND integration to use HandleInput for LLM models

* Move NotDiamond out into bundles and add fallback call

* Update src/backend/base/langflow/components/notdiamond/notdiamond.py

Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>

* Update src/backend/base/langflow/components/notdiamond/notdiamond.py

Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>

* Update src/frontend/src/icons/NotDiamond/NotDiamondIcon.jsx

Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>

---------

Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
This commit is contained in:
Csongor Barabasi 2024-11-23 14:20:53 +02:00 • committed by GitHub
commit ef2199b317
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 572 additions and 316 deletions

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,31 @@
const SvgNotDiamondIcon = (props) => (
<svg
xmlns="http://www.w3.org/2000/svg"
width="32"
height="20"
viewBox="0 0 54 32"
fill="none"
{...props}
>
{" "}
<g clipPath="url(#clip0_14_604)">
{" "}
<path d="M0 15.9961H21V24.9961" stroke="currentColor" strokeWidth="1.5" />
<rect
x="27.7501"
y="15.6562"
width="17.8116"
height="17.8116"
transform="rotate(-45 27.7501 15.6562)"
stroke="currentColor"
strokeWidth="1.5"
/>
</g>
<defs>
<clipPath id="clip0_14_604">
<rect width="54" height="32" fill="white" />
</clipPath>
</defs>
</svg>
);
export default SvgNotDiamondIcon;

View file

@ -0,0 +1,9 @@
import React, { forwardRef } from "react";
import SvgNotDiamondIcon from "./NotDiamondIcon";
export const NotDiamondIcon = forwardRef<
SVGSVGElement,
React.PropsWithChildren<{}>
>((props, ref) => {
return <SvgNotDiamondIcon ref={ref} {...props} />;
});

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="20" viewBox="0 0 54 32" fill="none" > <g clipPath="url(#clip0_14_604)"> <path d="M0 15.9961H21V24.9961" stroke="currentColor" strokeWidth="1.5" /><rect x="27.7501" y="15.6562" width="17.8116" height="17.8116" transform="rotate(-45 27.7501 15.6562)" stroke="currentColor" strokeWidth="1.5" /></g><defs><clipPath id="clip0_14_604"><rect width="54" height="32" fill="white" /></clipPath></defs></svg>

After

Width:  |  Height:  |  Size: 456 B

View file

@ -270,6 +270,7 @@ import { Mem0 } from "../icons/Mem0";
import { MetaIcon } from "../icons/Meta";
import { MidjourneyIcon } from "../icons/Midjorney";
import { MongoDBIcon } from "../icons/MongoDB";
import { NotDiamondIcon } from "../icons/NotDiamond";
import { NotionIcon } from "../icons/Notion";
import { NvidiaIcon } from "../icons/Nvidia";
import { OllamaIcon } from "../icons/Ollama";
@ -507,6 +508,7 @@ export const SIDEBAR_BUNDLES = [
{ display_name: "Vectara", name: "vectara", icon: "Vectara" },
{ display_name: "Google", name: "google", icon: "Google" },
{ display_name: "CrewAI", name: "crewai", icon: "CrewAI" },
{ display_name: "NotDiamond", name: "notdiamond", icon: "NotDiamond" },
{ display_name: "Composio", name: "composio", icon: "Composio" },
{ display_name: "Cohere", name: "cohere", icon: "Cohere" },
{ display_name: "Firecrawl", name: "firecrawl", icon: "FirecrawlCrawlApi" },
@ -633,6 +635,7 @@ export const nodeIconsLucide: iconsType = {
HuggingFaceEmbeddings: HuggingFaceIcon,
IFixitLoader: IFixIcon,
CrewAI: CrewAiIcon,
NotDiamond: NotDiamondIcon,
Composio: ComposioIcon,
Meta: MetaIcon,
Midjorney: MidjourneyIcon,