feat: add cassandra components (#2056)
* Add cassandra store component * Add cassandra search component * revert poetry changes * fix type * Add cassandra icon * Add Cassandra Message Writer * Add cassandra message reader * poetry * Fix init of cass reader * move cassio import to base project and inline imports in backend * running make format * remove file * remove cassio import * update lockfile * Actually update lockfile: * merge fixes
This commit is contained in:
parent
395c2d7372
commit
11ef216c0a
14 changed files with 620 additions and 63 deletions
|
|
@ -1,9 +1,7 @@
|
|||
from typing import Optional, cast
|
||||
|
||||
from langchain_astradb.chat_message_histories import AstraDBChatMessageHistory
|
||||
|
||||
from langflow.base.memory.memory import BaseMemoryComponent
|
||||
from langflow.field_typing import Text
|
||||
from langflow.schema.schema import Record
|
||||
|
||||
|
||||
|
|
@ -51,6 +49,14 @@ class AstraDBMessageReaderComponent(BaseMemoryComponent):
|
|||
Returns:
|
||||
list[Record]: A list of Record objects representing the search results.
|
||||
"""
|
||||
try:
|
||||
from langchain_astradb.chat_message_histories import AstraDBChatMessageHistory
|
||||
except ImportError:
|
||||
raise ImportError(
|
||||
"Could not import langchain Astra DB integration package. "
|
||||
"Please install it with `pip install langchain-astradb`."
|
||||
)
|
||||
|
||||
memory: AstraDBChatMessageHistory = cast(AstraDBChatMessageHistory, kwargs.get("memory"))
|
||||
if not memory:
|
||||
raise ValueError("AstraDBChatMessageHistory instance is required.")
|
||||
|
|
@ -63,14 +69,14 @@ class AstraDBMessageReaderComponent(BaseMemoryComponent):
|
|||
|
||||
def build(
|
||||
self,
|
||||
session_id: Text,
|
||||
session_id: str,
|
||||
collection_name: str,
|
||||
token: str,
|
||||
api_endpoint: str,
|
||||
namespace: Optional[str] = None,
|
||||
) -> list[Record]:
|
||||
try:
|
||||
pass
|
||||
from langchain_astradb.chat_message_histories import AstraDBChatMessageHistory
|
||||
except ImportError:
|
||||
raise ImportError(
|
||||
"Could not import langchain Astra DB integration package. "
|
||||
|
|
|
|||
|
|
@ -1,11 +1,9 @@
|
|||
from typing import Optional
|
||||
|
||||
from langflow.base.memory.memory import BaseMemoryComponent
|
||||
from langflow.field_typing import Text
|
||||
from langflow.schema.schema import Record
|
||||
|
||||
from langchain_core.messages import BaseMessage
|
||||
from langchain_astradb import AstraDBChatMessageHistory
|
||||
|
||||
|
||||
class AstraDBMessageWriterComponent(BaseMemoryComponent):
|
||||
|
|
@ -50,7 +48,7 @@ class AstraDBMessageWriterComponent(BaseMemoryComponent):
|
|||
self,
|
||||
sender: str,
|
||||
sender_name: str,
|
||||
text: Text,
|
||||
text: str,
|
||||
session_id: str,
|
||||
metadata: Optional[dict] = None,
|
||||
**kwargs,
|
||||
|
|
@ -59,17 +57,27 @@ class AstraDBMessageWriterComponent(BaseMemoryComponent):
|
|||
Adds a message to the AstraDBChatMessageHistory memory.
|
||||
|
||||
Args:
|
||||
sender (Text): The type of the message sender. Valid values are "Machine" or "User".
|
||||
sender_name (Text): The name of the message sender.
|
||||
text (Text): The content of the message.
|
||||
session_id (Text): The session ID associated with the message.
|
||||
sender (str): The type of the message sender. Typically "ai" or "human".
|
||||
sender_name (str): The name of the message sender.
|
||||
text (str): The content of the message.
|
||||
session_id (str): The session ID associated with the message.
|
||||
metadata (dict | None, optional): Additional metadata for the message. Defaults to None.
|
||||
**kwargs: Additional keyword arguments.
|
||||
**kwargs: Additional keyword arguments, including:
|
||||
memory (AstraDBChatMessageHistory | None): The memory instance to add the message to.
|
||||
|
||||
|
||||
Raises:
|
||||
ValueError: If the AstraDBChatMessageHistory instance is not provided.
|
||||
|
||||
"""
|
||||
try:
|
||||
from langchain_astradb.chat_message_histories import AstraDBChatMessageHistory
|
||||
except ImportError:
|
||||
raise ImportError(
|
||||
"Could not import langchain Astra DB integration package. "
|
||||
"Please install it with `pip install langchain-astradb`."
|
||||
)
|
||||
|
||||
memory: AstraDBChatMessageHistory | None = kwargs.pop("memory", None)
|
||||
if memory is None:
|
||||
raise ValueError("AstraDBChatMessageHistory instance is required.")
|
||||
|
|
@ -89,14 +97,14 @@ class AstraDBMessageWriterComponent(BaseMemoryComponent):
|
|||
def build(
|
||||
self,
|
||||
input_value: Record,
|
||||
session_id: Text,
|
||||
session_id: str,
|
||||
collection_name: str,
|
||||
token: str,
|
||||
api_endpoint: str,
|
||||
namespace: Optional[str] = None,
|
||||
) -> Record:
|
||||
try:
|
||||
pass
|
||||
from langchain_astradb.chat_message_histories import AstraDBChatMessageHistory
|
||||
except ImportError:
|
||||
raise ImportError(
|
||||
"Could not import langchain Astra DB integration package. "
|
||||
|
|
|
|||
|
|
@ -0,0 +1,86 @@
|
|||
from typing import Optional, cast
|
||||
|
||||
from langchain_community.chat_message_histories import CassandraChatMessageHistory
|
||||
|
||||
from langflow.base.memory.memory import BaseMemoryComponent
|
||||
from langflow.schema.schema import Record
|
||||
|
||||
|
||||
class CassandraMessageReaderComponent(BaseMemoryComponent):
|
||||
display_name = "Cassandra Message Reader"
|
||||
description = "Retrieves stored chat messages from a Cassandra table on Astra DB."
|
||||
|
||||
def build_config(self):
|
||||
return {
|
||||
"session_id": {
|
||||
"display_name": "Session ID",
|
||||
"info": "Session ID of the chat history.",
|
||||
"input_types": ["Text"],
|
||||
},
|
||||
"database_id": {
|
||||
"display_name": "Database ID",
|
||||
"info": "The Astra database ID.",
|
||||
},
|
||||
"table_name": {
|
||||
"display_name": "Table Name",
|
||||
"info": "The name of the table where messages are stored.",
|
||||
},
|
||||
"token": {
|
||||
"display_name": "Token",
|
||||
"info": "Authentication token for accessing Cassandra on Astra DB.",
|
||||
"password": True,
|
||||
},
|
||||
"keyspace": {
|
||||
"display_name": "Keyspace",
|
||||
"info": "Optional key space within Astra DB. The keyspace should already be created.",
|
||||
"input_types": ["Text"],
|
||||
"advanced": True,
|
||||
},
|
||||
}
|
||||
|
||||
def get_messages(self, **kwargs) -> list[Record]:
|
||||
"""
|
||||
Retrieves messages from the CassandraChatMessageHistory memory.
|
||||
|
||||
Args:
|
||||
memory (CassandraChatMessageHistory): The CassandraChatMessageHistory instance to retrieve messages from.
|
||||
|
||||
Returns:
|
||||
list[Record]: A list of Record objects representing the search results.
|
||||
"""
|
||||
memory: CassandraChatMessageHistory = cast(CassandraChatMessageHistory, kwargs.get("memory"))
|
||||
if not memory:
|
||||
raise ValueError("CassandraChatMessageHistory instance is required.")
|
||||
|
||||
# Get messages from the memory
|
||||
messages = memory.messages
|
||||
results = [Record.from_lc_message(message) for message in messages]
|
||||
|
||||
return list(results)
|
||||
|
||||
def build(
|
||||
self,
|
||||
session_id: str,
|
||||
table_name: str,
|
||||
token: str,
|
||||
database_id: str,
|
||||
keyspace: Optional[str] = None,
|
||||
) -> list[Record]:
|
||||
try:
|
||||
import cassio
|
||||
except ImportError:
|
||||
raise ImportError(
|
||||
"Could not import cassio integration package. " "Please install it with `pip install cassio`."
|
||||
)
|
||||
|
||||
cassio.init(token=token, database_id=database_id)
|
||||
memory = CassandraChatMessageHistory(
|
||||
session_id=session_id,
|
||||
table_name=table_name,
|
||||
keyspace=keyspace,
|
||||
)
|
||||
|
||||
records = self.get_messages(memory=memory)
|
||||
self.status = records
|
||||
|
||||
return records
|
||||
|
|
@ -0,0 +1,122 @@
|
|||
from typing import Optional
|
||||
|
||||
from langflow.base.memory.memory import BaseMemoryComponent
|
||||
from langflow.schema.schema import Record
|
||||
|
||||
from langchain_core.messages import BaseMessage
|
||||
from langchain_community.chat_message_histories import CassandraChatMessageHistory
|
||||
|
||||
|
||||
class CassandraMessageWriterComponent(BaseMemoryComponent):
|
||||
display_name = "Cassandra Message Writer"
|
||||
description = "Writes a message to a Cassandra table on Astra DB."
|
||||
|
||||
def build_config(self):
|
||||
return {
|
||||
"input_value": {
|
||||
"display_name": "Input Record",
|
||||
"info": "Record to write to Cassandra.",
|
||||
},
|
||||
"session_id": {
|
||||
"display_name": "Session ID",
|
||||
"info": "Session ID of the chat history.",
|
||||
"input_types": ["Text"],
|
||||
},
|
||||
"database_id": {
|
||||
"display_name": "Database ID",
|
||||
"info": "The Astra database ID.",
|
||||
},
|
||||
"table_name": {
|
||||
"display_name": "Table Name",
|
||||
"info": "The name of the table where messages will be stored.",
|
||||
},
|
||||
"token": {
|
||||
"display_name": "Token",
|
||||
"info": "Authentication token for accessing Cassandra on Astra DB.",
|
||||
"password": True,
|
||||
},
|
||||
"keyspace": {
|
||||
"display_name": "Keyspace",
|
||||
"info": "Optional key space within Astra DB. The keyspace should already be created.",
|
||||
"input_types": ["Text"],
|
||||
"advanced": True,
|
||||
},
|
||||
"ttl_seconds": {
|
||||
"display_name": "TTL Seconds",
|
||||
"info": "Optional time-to-live for the messages.",
|
||||
"input_types": ["Number"],
|
||||
"advanced": True,
|
||||
},
|
||||
}
|
||||
|
||||
def add_message(
|
||||
self,
|
||||
sender: str,
|
||||
sender_name: str,
|
||||
text: str,
|
||||
session_id: str,
|
||||
metadata: Optional[dict] = None,
|
||||
**kwargs,
|
||||
):
|
||||
"""
|
||||
Adds a message to the CassandraChatMessageHistory memory.
|
||||
|
||||
Args:
|
||||
sender (str): The type of the message sender. Typically "ai" or "human".
|
||||
sender_name (str): The name of the message sender.
|
||||
text (str): The content of the message.
|
||||
session_id (str): The session ID associated with the message.
|
||||
metadata (dict | None, optional): Additional metadata for the message. Defaults to None.
|
||||
**kwargs: Additional keyword arguments, including:
|
||||
memory (CassandraChatMessageHistory | None): The memory instance to add the message to.
|
||||
|
||||
|
||||
Raises:
|
||||
ValueError: If the CassandraChatMessageHistory instance is not provided.
|
||||
|
||||
"""
|
||||
memory: CassandraChatMessageHistory | None = kwargs.pop("memory", None)
|
||||
if memory is None:
|
||||
raise ValueError("CassandraChatMessageHistory instance is required.")
|
||||
|
||||
text_list = [
|
||||
BaseMessage(
|
||||
content=text,
|
||||
sender=sender,
|
||||
sender_name=sender_name,
|
||||
metadata=metadata,
|
||||
session_id=session_id,
|
||||
)
|
||||
]
|
||||
|
||||
memory.add_messages(text_list)
|
||||
|
||||
def build(
|
||||
self,
|
||||
input_value: Record,
|
||||
session_id: str,
|
||||
table_name: str,
|
||||
token: str,
|
||||
database_id: str,
|
||||
keyspace: Optional[str] = None,
|
||||
ttl_seconds: Optional[int] = None,
|
||||
) -> Record:
|
||||
try:
|
||||
import cassio
|
||||
except ImportError:
|
||||
raise ImportError(
|
||||
"Could not import cassio integration package. " "Please install it with `pip install cassio`."
|
||||
)
|
||||
|
||||
cassio.init(token=token, database_id=database_id)
|
||||
memory = CassandraChatMessageHistory(
|
||||
session_id=session_id,
|
||||
table_name=table_name,
|
||||
keyspace=keyspace,
|
||||
ttl_seconds=ttl_seconds,
|
||||
)
|
||||
|
||||
self.add_message(**input_value.data, memory=memory)
|
||||
self.status = f"Added message to Cassandra memory for session {session_id}"
|
||||
|
||||
return input_value
|
||||
|
|
@ -0,0 +1,94 @@
|
|||
from typing import Any, List, Optional, Tuple
|
||||
|
||||
from langflow.components.vectorstores.Cassandra import CassandraVectorStoreComponent
|
||||
from langflow.components.vectorstores.base.model import LCVectorStoreComponent
|
||||
from langflow.field_typing import Embeddings, Text
|
||||
from langflow.schema import Record
|
||||
from langchain_community.utilities.cassandra import SetupMode
|
||||
|
||||
|
||||
class CassandraSearchComponent(LCVectorStoreComponent):
|
||||
display_name = "Cassandra Search"
|
||||
description = "Searches an existing Cassandra Vector Store."
|
||||
icon = "Cassandra"
|
||||
field_order = ["token", "database_id", "table_name", "input_value", "embedding"]
|
||||
|
||||
def build_config(self):
|
||||
return {
|
||||
"search_type": {
|
||||
"display_name": "Search Type",
|
||||
"options": ["Similarity", "MMR"],
|
||||
},
|
||||
"input_value": {
|
||||
"display_name": "Input Value",
|
||||
"info": "Input value to search",
|
||||
},
|
||||
"embedding": {"display_name": "Embedding", "info": "Embedding to use"},
|
||||
"token": {
|
||||
"display_name": "Token",
|
||||
"info": "Authentication token for accessing Cassandra on Astra DB.",
|
||||
"password": True,
|
||||
},
|
||||
"database_id": {
|
||||
"display_name": "Database ID",
|
||||
"info": "The Astra database ID.",
|
||||
},
|
||||
"table_name": {
|
||||
"display_name": "Table Name",
|
||||
"info": "The name of the table where vectors will be stored.",
|
||||
},
|
||||
"keyspace": {
|
||||
"display_name": "Keyspace",
|
||||
"info": "Optional key space within Astra DB. The keyspace should already be created.",
|
||||
"advanced": True,
|
||||
},
|
||||
"body_index_options": {
|
||||
"display_name": "Body Index Options",
|
||||
"info": "Optional options used to create the body index.",
|
||||
"advanced": True,
|
||||
},
|
||||
"setup_mode": {
|
||||
"display_name": "Setup Mode",
|
||||
"info": "Configuration mode for setting up the Cassandra table, with options like 'Sync', 'Async', or 'Off'.",
|
||||
"options": ["Sync", "Async", "Off"],
|
||||
"advanced": True,
|
||||
},
|
||||
"number_of_results": {
|
||||
"display_name": "Number of Results",
|
||||
"info": "Number of results to return.",
|
||||
"advanced": True,
|
||||
},
|
||||
}
|
||||
|
||||
def build(
|
||||
self,
|
||||
embedding: Embeddings,
|
||||
table_name: str,
|
||||
input_value: Text,
|
||||
token: str,
|
||||
database_id: str,
|
||||
search_type: str = "similarity",
|
||||
number_of_results: int = 4,
|
||||
keyspace: Optional[str] = None,
|
||||
body_index_options: Optional[List[Tuple[str, Any]]] = None,
|
||||
setup_mode: SetupMode = SetupMode.SYNC,
|
||||
) -> List[Record]:
|
||||
vector_store = CassandraVectorStoreComponent().build(
|
||||
embedding=embedding,
|
||||
table_name=table_name,
|
||||
token=token,
|
||||
database_id=database_id,
|
||||
keyspace=keyspace,
|
||||
body_index_options=body_index_options,
|
||||
setup_mode=setup_mode,
|
||||
)
|
||||
|
||||
try:
|
||||
return self.search_with_vector_store(input_value, search_type, vector_store, k=number_of_results)
|
||||
except KeyError as e:
|
||||
if "content" in str(e):
|
||||
raise ValueError(
|
||||
"You should ingest data through Langflow (or LangChain) to query it in Langflow. Your collection does not contain a field name 'content'."
|
||||
)
|
||||
else:
|
||||
raise e
|
||||
|
|
@ -1,6 +1,4 @@
|
|||
from typing import List, Optional, Union
|
||||
from langchain_astradb import AstraDBVectorStore
|
||||
from langchain_astradb.utils.astradb import SetupMode
|
||||
|
||||
from langflow.custom import CustomComponent
|
||||
from langflow.field_typing import Embeddings, VectorStore
|
||||
|
|
@ -111,6 +109,15 @@ class AstraDBVectorStoreComponent(CustomComponent):
|
|||
metadata_indexing_exclude: Optional[List[str]] = None,
|
||||
collection_indexing_policy: Optional[dict] = None,
|
||||
) -> Union[VectorStore, BaseRetriever]:
|
||||
try:
|
||||
from langchain_astradb import AstraDBVectorStore
|
||||
from langchain_astradb.utils.astradb import SetupMode
|
||||
except ImportError:
|
||||
raise ImportError(
|
||||
"Could not import langchain Astra DB integration package. "
|
||||
"Please install it with `pip install langchain-astradb`."
|
||||
)
|
||||
|
||||
try:
|
||||
setup_mode_value = SetupMode[setup_mode.upper()]
|
||||
except KeyError:
|
||||
|
|
|
|||
110
src/backend/base/langflow/components/vectorstores/Cassandra.py
Normal file
110
src/backend/base/langflow/components/vectorstores/Cassandra.py
Normal file
|
|
@ -0,0 +1,110 @@
|
|||
from typing import Any, List, Optional, Tuple
|
||||
from langchain_community.vectorstores import Cassandra
|
||||
from langchain_community.utilities.cassandra import SetupMode
|
||||
|
||||
from langflow.custom import CustomComponent
|
||||
from langflow.field_typing import Embeddings, VectorStore
|
||||
from langflow.schema import Record
|
||||
|
||||
|
||||
class CassandraVectorStoreComponent(CustomComponent):
|
||||
display_name = "Cassandra"
|
||||
description = "Builds or loads a Cassandra Vector Store."
|
||||
icon = "Cassandra"
|
||||
field_order = ["token", "database_id", "table_name", "inputs", "embedding"]
|
||||
|
||||
def build_config(self):
|
||||
return {
|
||||
"inputs": {
|
||||
"display_name": "Inputs",
|
||||
"info": "Optional list of records to be processed and stored in the vector store.",
|
||||
},
|
||||
"embedding": {"display_name": "Embedding", "info": "Embedding to use"},
|
||||
"token": {
|
||||
"display_name": "Token",
|
||||
"info": "Authentication token for accessing Cassandra on Astra DB.",
|
||||
"password": True,
|
||||
},
|
||||
"database_id": {
|
||||
"display_name": "Database ID",
|
||||
"info": "The Astra database ID.",
|
||||
},
|
||||
"table_name": {
|
||||
"display_name": "Table Name",
|
||||
"info": "The name of the table where vectors will be stored.",
|
||||
},
|
||||
"keyspace": {
|
||||
"display_name": "Keyspace",
|
||||
"info": "Optional key space within Astra DB. The keyspace should already be created.",
|
||||
"advanced": True,
|
||||
},
|
||||
"ttl_seconds": {
|
||||
"display_name": "TTL Seconds",
|
||||
"info": "Optional time-to-live for the added texts.",
|
||||
"advanced": True,
|
||||
},
|
||||
"batch_size": {
|
||||
"display_name": "Batch Size",
|
||||
"info": "Optional number of records to process in a single batch.",
|
||||
"advanced": True,
|
||||
},
|
||||
"body_index_options": {
|
||||
"display_name": "Body Index Options",
|
||||
"info": "Optional options used to create the body index.",
|
||||
"advanced": True,
|
||||
},
|
||||
"setup_mode": {
|
||||
"display_name": "Setup Mode",
|
||||
"info": "Configuration mode for setting up the Cassandra table, with options like 'Sync', 'Async', or 'Off'.",
|
||||
"options": ["Sync", "Async", "Off"],
|
||||
"advanced": True,
|
||||
},
|
||||
}
|
||||
|
||||
def build(
|
||||
self,
|
||||
embedding: Embeddings,
|
||||
token: str,
|
||||
database_id: str,
|
||||
inputs: Optional[List[Record]] = None,
|
||||
keyspace: Optional[str] = None,
|
||||
table_name: str = "",
|
||||
ttl_seconds: Optional[int] = None,
|
||||
batch_size: int = 16,
|
||||
body_index_options: Optional[List[Tuple[str, Any]]] = None,
|
||||
setup_mode: SetupMode = SetupMode.SYNC,
|
||||
) -> VectorStore:
|
||||
try:
|
||||
import cassio
|
||||
except ImportError:
|
||||
raise ImportError(
|
||||
"Could not import cassio integration package. " "Please install it with `pip install cassio`."
|
||||
)
|
||||
|
||||
cassio.init(
|
||||
database_id=database_id,
|
||||
token=token,
|
||||
)
|
||||
|
||||
if inputs:
|
||||
documents = [_input.to_lc_document() for _input in inputs]
|
||||
table = Cassandra.from_documents(
|
||||
documents=documents,
|
||||
embedding=embedding,
|
||||
table_name=table_name,
|
||||
keyspace=keyspace,
|
||||
ttl_seconds=ttl_seconds,
|
||||
batch_size=batch_size,
|
||||
body_index_options=body_index_options,
|
||||
)
|
||||
else:
|
||||
table = Cassandra(
|
||||
embedding=embedding,
|
||||
table_name=table_name,
|
||||
keyspace=keyspace,
|
||||
ttl_seconds=ttl_seconds,
|
||||
body_index_options=body_index_options,
|
||||
setup_mode=setup_mode,
|
||||
)
|
||||
|
||||
return table
|
||||
1
src/frontend/package-lock.json
generated
1
src/frontend/package-lock.json
generated
|
|
@ -480,6 +480,7 @@
|
|||
},
|
||||
"node_modules/@clack/prompts/node_modules/is-unicode-supported": {
|
||||
"version": "1.3.0",
|
||||
"extraneous": true,
|
||||
"inBundle": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
|
|
|
|||
73
src/frontend/src/icons/Cassandra/Cassandra.jsx
Normal file
73
src/frontend/src/icons/Cassandra/Cassandra.jsx
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
const CassandraSVG = (props) => (
|
||||
<svg
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 -43.5 256 256"
|
||||
fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
{...props}
|
||||
>
|
||||
<g fill="#373535">
|
||||
<path d="M30.9 142.2c2.2 0 4.2.5 5.3 1.5.2 1.6-1.3 4.2-2.2 4.2-1.1-.4-2.1-.6-3.4-.6-5.2 0-7.8 5.4-7.8 10.7 0 3.3 1.1 5.3 3.8 5.3 2.8 0 5.6-1.9 7.2-3.3.4.3.9 1.2.9 2.2 0 1.1-.3 2.2-1.4 3.3-1.8 1.8-4.9 3.4-9.4 3.4-5.1 0-8.7-2.9-8.7-9.7.2-9 6-17 15.7-17ZM47.7 163c2.8 0 7.9-4.9 9.3-14.3.1-.6.1-.7.2-1.3-.6-.2-1.5-.4-2.3-.4-2.1 0-4.3.6-6.2 3.3-2 2.8-2.9 6.3-2.9 9.1 0 2.3.7 3.6 1.9 3.6Zm-9.2-2.6c0-3.4 1.1-9.2 5.4-13.5 3.7-3.8 8.1-4.7 12.2-4.7 2.7 0 6.3.9 8.6 1.3-.6 2.5-1.9 12-2.6 17.5-.3 2.3-.4 5.6-.3 6.8-1.9.8-5.4 1-6.4 1-.5 0-.6-2.3-.5-4.6.1-.7.2-1.8.2-2.3-2.2 3.7-6.6 6.8-11.2 6.8-3.3.1-5.4-2.7-5.4-8.3ZM78.9 142.2c2.3 0 4.6.9 5.6 1.9-.1 1.6-1.3 4.3-3.3 3.5-.9-.3-1.7-.5-2.9-.5-1.5 0-2.9.7-2.9 2.1 0 1.1.8 1.9 4.6 4.6 2.7 2 3.8 3.8 3.8 6.3 0 4.2-3.9 8.7-10.8 8.7-2.8 0-5.3-1.1-6-2.2-1-1.7-.2-5.1.9-4.5 1.5.7 3.9 1.5 5.9 1.5 1.9 0 3.1-.9 3.1-2 0-1-.9-1.8-4.3-4.3-2.9-2.2-3.8-4.2-3.8-6.4 0-4.8 4.1-8.7 10.1-8.7ZM98.6 142.2c2.3 0 4.6.9 5.6 1.9-.1 1.6-1.3 4.3-3.3 3.5-.9-.3-1.7-.5-2.9-.5-1.5 0-2.9.7-2.9 2.1 0 1.1.8 1.9 4.6 4.6 2.7 2 3.8 3.8 3.8 6.3 0 4.2-3.9 8.7-10.8 8.7-2.8 0-5.2-1.1-6-2.2-1-1.7-.2-5.1.9-4.5 1.5.7 3.9 1.5 5.9 1.5 1.9 0 3.1-.9 3.1-2 0-1-.9-1.8-4.3-4.3-2.9-2.2-3.8-4.2-3.8-6.4 0-4.8 4.1-8.7 10.1-8.7ZM116.5 163c2.8 0 7.9-4.9 9.3-14.3.1-.6.1-.7.2-1.3-.6-.2-1.5-.4-2.3-.4-2.1 0-4.3.6-6.2 3.3-2 2.8-2.9 6.3-2.9 9.1.1 2.3.7 3.6 1.9 3.6Zm-9.2-2.6c0-3.4 1.1-9.2 5.4-13.5 3.7-3.8 8.1-4.7 12.2-4.7 2.7 0 6.3.9 8.6 1.3-.6 2.5-1.9 12-2.6 17.5-.3 2.3-.4 5.6-.3 6.8-1.9.8-5.4 1-6.4 1-.5 0-.6-2.3-.5-4.6.1-.7.2-1.8.2-2.3-2.2 3.7-6.6 6.8-11.2 6.8-3.2.1-5.4-2.7-5.4-8.3ZM146.4 149.6c2.6-4.2 6-7.4 10.8-7.4 4.1 0 5.4 3.8 4.6 9.1-.4 2.5-1.1 6.1-1.5 9.4-.4 2.8-.7 5.3-.6 7-1.5.7-5.8 1-6.8 1-.4 0-.5-3.1.1-6.4.5-2.7 1.4-7.7 1.9-10.6.3-1.7.2-3.7-1.4-3.7-2.1 0-7.1 3.4-9.6 17.2-.2 1.1-.6 1.8-1.3 2.2-.9.5-2.7 1-6.4 1 .7-3.5 1.8-10.6 2.6-15.9.7-4.8 1-7.9.9-9.1 1-.3 6.1-1.4 6.6-1.4.6 0 .7 1.8.2 6-.1.4-.1 1-.2 1.4h.1v.2ZM175.4 162.9c2.5 0 7.6-4.7 9-13 .1-.5.2-1.3.3-1.8-.7-.7-1.7-1.1-3.3-1.1-5.8 0-8.3 6.9-8.3 11.9.1 2.6 1 4 2.3 4Zm-3.7 5.9c-3.7 0-5.9-3.3-5.9-8.8 0-9.2 5.8-17.7 15.5-17.7 1.7 0 3.3.5 4.2 1 .5-2.6 1.7-10.7 1.8-13.1 1.6-.3 5-.8 6.6-.8.6 0 .8.6.6 2.1-1.4 8.6-3.8 25-4.3 28.6-.3 3.1-.4 6.1-.3 7.8-1.8.8-5.5 1-6.5 1-.4 0-.6-2.6-.5-5 .1-.7.2-1.8.2-2-3.1 4.6-7 6.9-11.4 6.9ZM205.1 150.4c3-6.7 6.6-8.2 9-8.2.7 0 1.9.5 2.4 1 .2 1.9-1.3 5.6-2.6 7.1-.7-.3-1.5-.7-2.5-.7-1.9 0-5.8 3-8.2 16-.2 1.1-.5 1.5-1.1 1.8-1 .6-4.8 1-6.6 1.1.9-4.7 2.3-14.2 2.9-19.8.2-1.4.2-4.1.1-5.1 1.1-.5 5.4-1.5 6.3-1.5.5 0 .9 3.1.1 8.2h.2v.1ZM225.2 163c2.8 0 7.9-4.9 9.3-14.3.1-.6.1-.7.2-1.3-.6-.2-1.5-.4-2.3-.4-2.1 0-4.3.6-6.2 3.3-2 2.8-2.9 6.3-2.9 9.1.1 2.3.7 3.6 1.9 3.6Zm-9.2-2.6c0-3.4 1.1-9.2 5.4-13.5 3.7-3.8 8.1-4.7 12.2-4.7 2.7 0 6.3.9 8.6 1.3-.6 2.5-1.9 12-2.6 17.5-.3 2.3-.4 5.6-.3 6.8-1.9.8-5.4 1-6.4 1-.5 0-.6-2.3-.5-4.6.1-.7.2-1.8.2-2.3-2.2 3.7-6.6 6.8-11.2 6.8-3.2.1-5.4-2.7-5.4-8.3Z" />
|
||||
</g>
|
||||
<path
|
||||
fill="#BBE6FB"
|
||||
d="M205.5 45.5c1.9 21.9-32.6 42.8-77.1 46.6-44.5 3.8-82-10.9-83.9-32.8-1.9-21.9 32.6-42.8 77.1-46.6 44.4-3.8 82 10.8 83.9 32.8"
|
||||
/>
|
||||
<path
|
||||
fill="#FFF"
|
||||
d="M122.8 15.2c-17-.3-36.8 6.5-51.6 12.8-1.5 4.4-2.4 9.1-2.4 14 0 26 23.5 47.1 52.5 47.1s52.6-21 52.6-47.1c0-8.2-2.4-16-6.5-22.7-11.8-1.8-28.1-3.8-44.6-4.1"
|
||||
/>
|
||||
<path
|
||||
fill="#FFF"
|
||||
d="M121.4 15.2c-9.4-.6-25.6 4.3-39.1 9.2-2.1 4.8-3.2 10.1-3.2 15.7 0 22.8 20.7 41.3 42.5 41.3 21.7 0 40.9-18.5 42.5-41.3.5-7.4-2-14.4-5.6-20.4-13.9-2.4-28.7-3.9-37.1-4.5"
|
||||
/>
|
||||
<path
|
||||
fill="#373535"
|
||||
d="M97.3 37.2c1.2-2.6 2.9-3.8 4.6-5.9-.2-.5-.6-2.2-.6-2.7 0-2.6 2.1-4.6 4.6-4.6.6 0 1.2.1 1.7.3 7.7-5.9 17.8-8.4 28-6.1.9.2 1.8.5 2.7.7-10-1.4-21.4 2.2-29.1 8.4.2.6.9 2.1.9 2.8 0 2.6-1.7 3.2-4.2 3.2-.6 0-1.1-.1-1.7-.3-1.7 2.3-3.9 6.8-4.9 9.6 4.3 3.8 8.1 5.2 13.1 7.1 0-.2.2-.5.2-.7 0-7.7 6.8-14 14.5-14 6.9 0 12.7 5 13.8 11.6 3.5-2.2 6.8-3.9 9.3-7.1-.6-.7-1.2-2.8-1.2-3.8 0-2.3 1.9-4.2 4.2-4.2.3 0 .6 0 1 .1 1.3-2.7 2.3-5.5 2.9-8.4-12.1-9-35.5-7.7-35.5-7.7s-18.6-1-31.2 5.2c.9 5.8 3.3 11.6 6.9 16.5"
|
||||
/>
|
||||
<path
|
||||
fill="#373535"
|
||||
d="M155.1 33.7c.9.8 1.3 1.4 1.7 2.1 1.1 2-1.1 3.9-3.5 3.9-.2 0-.5 0-.7-.1-2.6 4.1-7.2 9.3-11.3 12 6.3 1 12.2 3.5 16.8 7.4 3.4-6.1 6-15 6-22.5 0-5.7-2.5-9.9-6.3-13-.1 3.1-1.8 7.4-2.7 10.2M104.3 72.5c2.1-5.8 7.2-10.2 12.1-14.1-.7-1-1.8-3.4-2.2-4.5-5.9-1.8-11.1-5.2-15.2-9.6 0 .1-.1.3-.1.4-.8 3.4-.9 6.9-.5 10.2 2.8.5 5 3 5 6 0 1.8-1.6 4.3-2.8 5.5 1.2 2.6 2.1 4 3.7 6.1"
|
||||
/>
|
||||
<path
|
||||
fill="#373535"
|
||||
d="M103.9 77.3c-2.5-2.5-4.2-7.4-5.8-10.5-.3 0-.6.1-.9.1-3.4 0-6.9-2.8-6.1-6.1.4-1.8 1.7-3 3.7-4-.5-3.8-.6-9.1.3-13 .2-1.1.8-1.6 1.1-2.7-3.7-5.4-6.1-12.6-6.1-19.7v-.8c-6.3 3.2-11 8.1-11 15.9 0 17.3 10 34.3 24.8 40.9v-.1M140.4 53.4c-1.9 5.4-7.1 9.4-13.2 9.4-3.3 0-6.3-1.1-8.6-3-4.9 3.8-9.4 10.5-11.6 16.4 1 1.1 1.7 2 2.9 3 3.4.9 8.2 0 11.9 0 14.9 0 28.2-6.6 35.8-18.3-5.2-3.6-11.2-7-17.2-7.5"
|
||||
/>
|
||||
<path
|
||||
fill="#1287B1"
|
||||
d="M96.9 39.2c1.2-2.6 2.6-4.9 4.3-7.1-.2-.5-.3-1.1-.3-1.6 0-2.6 2.1-4.6 4.6-4.6.6 0 1.2.1 1.7.3 7.7-5.9 17.8-8.4 28-6.1.9.2 1.8.5 2.7.7-10-1.4-20.4 1.7-28.1 7.9.2.6.4 1.2.4 1.8 0 2.6-2.1 4.6-4.6 4.6-.6 0-1.1-.1-1.7-.3-1.7 2.3-3.2 4.9-4.2 7.7 3.7 3.9 8.2 7.1 13.2 8.9v-.7c0-7.7 6.3-14 14-14 6.9 0 12.7 5 13.8 11.6 3.5-2.2 6.5-5 9.1-8.3-.6-.7-1-1.6-1-2.6 0-2.3 1.9-4.2 4.2-4.2.3 0 .6 0 1 .1 1.3-2.7 2.3-5.5 2.9-8.4-12.1-9-35.5-7.7-35.5-7.7s-18.6-1-31.2 5.2c.7 6.1 3.1 11.9 6.7 16.8"
|
||||
/>
|
||||
<path
|
||||
fill="#1287B1"
|
||||
d="M155.7 34.4c.9.8 1.4 1.9 1.4 3.1 0 2.3-1.9 4.2-4.2 4.2-.2 0-.5 0-.7-.1-2.6 4.1-6.1 7.6-10.2 10.2 6 .9 11.7 3.5 16.4 7.4 3.4-6.1 5.4-13.2 5.4-20.7 0-5.7-2.5-9.9-6.3-13-.2 3.1-.8 6.1-1.8 8.9M104.9 73.8c2.1-5.8 5.7-10.9 10.6-14.8-.7-1-1.3-2-1.7-3.2-5.9-1.8-11.1-5.2-15.2-9.6 0 .1-.1.3-.1.4-.8 3.4-.9 6.9-.5 10.2 2.8.5 5 3 5 6 0 1.8-.8 3.4-2 4.5 1 2.3 2.4 4.5 3.9 6.5"
|
||||
/>
|
||||
<path
|
||||
fill="#1287B1"
|
||||
d="M103.9 77.2c-2.5-2.5-4.6-5.3-6.2-8.4-.3 0-.6.1-.9.1-3.4 0-6.1-2.7-6.1-6.1 0-2.4 1.4-4.5 3.4-5.5-.5-3.8-.3-7.6.6-11.5.2-1.1.6-2.2.9-3.3-3.7-5.4-5.9-12-5.9-19.1v-.8c-6.3 3.2-11 8.1-11 15.9 0 17.3 10.3 32.2 25.1 38.8.1 0 .1 0 .1-.1M140 55.4c-1.9 5.4-7.1 9.4-13.2 9.4-3.3 0-6.3-1.1-8.6-3-4.9 3.8-8.6 9-10.9 14.9 1 1.1 2.1 2.1 3.2 3.1 3.4.9 7 1.4 10.7 1.4 14.9 0 28.1-7.7 35.7-19.4-5-3.6-10.9-5.9-16.9-6.4"
|
||||
/>
|
||||
<path
|
||||
fill="#FFF"
|
||||
d="m140.5 51.8 12.9-3.1-13-.7 10.6-8-12 4.3 8.1-11.3-11.3 7.5 3.9-13.2-7.7 10.9-.2-13.8-5.1 12.3-4.2-12.4.2 14.6-7.3-13.1 4 13.9-11.9-8.6 9.3 11.7-14.8-5.4 11.6 8.6-14.9.5 15.3 3.9-15.3 3.3 15.1 1.1-12.7 8.1 13.1-4.7-9.1 11.5 11.5-9.3-4.1 15.4 8.9-12.6-1.2 14.8 5-13.5 4.3 14.1 1-14.2 6.4 12.1-3.8-13.8 11.6 9-7.5-11.5 12.8 5-9.8-9.6 13.1 1-12.8-4.8Z"
|
||||
/>
|
||||
<path
|
||||
fill="#373535"
|
||||
fill-opacity=".35"
|
||||
d="M2.8 76.5C42.9 36.4 74.9 24 104 18.4c3.8-.7 4.6-9.2 4.6-9.2s.5 6.2 3.2 7c2.7.8 6.2-9.7 6.2-9.7s-3.2 9.4 0 10c3.2.5 9.2-9.2 9.2-9.2s-2.4 8.3-.8 8.9c1.6.5 9.7-12.1 9.7-12.1s-4.8 8.3-.3 9.2c4.6.8 11.3-5.7 11.3-5.7s-5.2 5.9-2.9 6.8c10 3.5 18-9.4 18-9.4s-1.9 5.7-6.7 11.9c10.5 2.7 18.3-13.1 18.3-13.1L166 19.6c4 2 20.1-16.6 20.1-16.6s-8.3 14.5-13.2 17.5c2.7 2.2 12.4-6.5 12.4-6.5s-7.8 9.7-4.8 10.2c4.3 3.5 20.2-18 20.2-18s-6.2 12.7-15.3 22.6C193 32.7 212 8.2 212 8.2s-.5 7.8-14.3 20.2c10.2-1.3 23.4-20.7 23.4-20.7s-4.8 14.5-16.4 24.8c10-1 26.1-25.8 26.1-25.8s-6.2 17.2-18.8 27.2c14 3.1 34.2-17.8 34.2-17.8s-7.9 14.8-18.3 20.9c11.6 4.4 27.5-13.9 27.5-13.9s-15.9 24.5-41.2 23.4c-8.3-.4-33.4-25.2-87.2-23.2C55.8 25.9 40.8 56.1 2.8 76.5"
|
||||
/>
|
||||
<path
|
||||
fill="#373535"
|
||||
d="M4.4 73.5C44.5 33.4 76.5 21 105.6 15.4c3.8-.7 4.6-9.2 4.6-9.2s.5 6.2 3.2 7c2.7.8 6.2-9.7 6.2-9.7s-3.2 9.4 0 10c3.2.5 9.2-9.2 9.2-9.2s-2.4 8.3-.8 8.9c1.6.5 9.7-12.1 9.7-12.1s-4.8 8.3-.3 9.2c4.6.8 11.3-5.7 11.3-5.7s-5.2 5.9-2.9 6.8c10 3.5 18-9.4 18-9.4s-1.9 5.7-6.7 11.9C167.6 16.6 175.4.8 175.4.8l-7.8 15.8c4 2.2 20.2-16.4 20.2-16.4s-8.3 14.5-13.2 17.5C177.3 19.6 187 11 187 11s-7.8 9.7-4.8 10.2c4.3 3.5 20.2-18 20.2-18s-6.3 12.7-15.4 22.6c7.6 3.8 26.7-20.7 26.7-20.7s-.5 7.8-14.3 20.2c10.2-1.3 23.4-20.7 23.4-20.7s-4.8 14.5-16.4 24.8c10-1 26.1-25.8 26.1-25.8s-6.2 17.2-18.8 27.2c14 3.1 34.2-17.8 34.2-17.8s-7.9 14.8-18.3 20.9c11.6 4.4 27.5-13.9 27.5-13.9s-15.9 24.5-41.2 23.4c-8.3-.4-33.4-25.2-87.2-23.2C57.5 22.9 42.4 53 4.4 73.5"
|
||||
/>
|
||||
<path
|
||||
fill="#373535"
|
||||
fill-opacity=".35"
|
||||
d="M1.8 80.9c21.2 10.6 40.6-1.6 65 5.3 18.6 5.2 41.2 11.7 71.9 7.2 30.7-4.4 56.9-17.8 69.5-41.6 3.9-10.6 19.8 2.4 19.8 2.4s-11.6-4.8-11.3-2.6c.3 2.3 17.4 10.2 17.4 10.2s-15.5-4.8-14.5-1.2c.9 3.6 19.4 18.2 19.4 18.2S217.9 63 216.2 65.2c-1.8 2.2 8.9 10.9 8.9 10.9s-17.6-10.9-23.8-7.7c-4.5 2.3 18.3 17.2 18.3 17.2s-14.8-11.3-18.3-8.3 16.7 27.2 16.7 27.2-23-24.8-25.3-23.6C190.4 82.1 199 94 199 94s-11.2-12.4-14.3-10.3c-3.1 2.2 16.2 34.3 16.2 34.3S180 85.1 171.3 90.6c13.5 29.7 8.5 33.9 8.5 33.9s-1.7-30.3-18.6-29.5c-8.5.4 4 22.6 4 22.6S153.7 97.3 146 97.7c14.1 26.8 9.1 37.6 9.1 37.6s2.3-22.9-16.8-35.6c7.3 6.5-4.6 35.6-4.6 35.6s10.4-42.9-7.7-34.7c-2.9 1.3-.2 21.4-.2 21.4s-3.6-23-9.1-21.8c-3.2.7-20.2 31.9-20.2 31.9s13.9-33.7 9.7-32.3c-3.1 1-8.9 14.9-8.9 14.9s2.8-13.7 0-14.5c-2.8-.8-18.6 14.5-18.6 14.5s11.7-13.7 9.7-16.6c-3.1-4.3-6.6-4.5-10.9-2.8C71.3 97.7 63 109 63 109s8.3-11.5 6.9-15.7c-2.3-6.9-26.2 13.3-26.2 13.3s14.1-13.3 10.9-16.2c-3.2-2.8-20.8-2-26.2-2-16.1.2-21.7-3.6-26.6-7.5"
|
||||
/>
|
||||
<path
|
||||
fill="#373535"
|
||||
d="M.9 78.5c21.2 10.6 40.6-1.6 65 5.3 18.6 5.2 41.2 11.7 71.9 7.2 30.7-4.4 56.9-17.8 69.5-41.6 3.9-10.6 19.8 2.4 19.8 2.4s-11.6-4.8-11.3-2.6c.3 2.3 17.4 10.2 17.4 10.2s-15.5-4.8-14.5-1.2c.9 3.6 19.4 18.2 19.4 18.2s-20.9-15.9-22.6-13.7c-1.7 2.2 8.9 10.9 8.9 10.9s-17.6-10.9-23.8-7.7c-4.5 2.3 18.3 17.2 18.3 17.2s-14.8-11.3-18.3-8.3 16.7 27.2 16.7 27.2-22.9-24.8-25.2-23.6c-2.3 1.2 6.3 13.1 6.3 13.1S187 79.2 183.9 81.3c-3.1 2.2 16.1 34.3 16.1 34.3s-20.9-33-29.5-27.5c13.6 29.8 8.5 34 8.5 34s-1.7-30.3-18.6-29.5c-8.5.4 4 22.6 4 22.6S153 95 145.3 95.4c14.1 26.8 9.1 37.6 9.1 37.6s2.3-22.9-16.8-35.6c7.3 6.5-4.6 35.6-4.6 35.6s10.4-42.9-7.7-34.7c-2.9 1.3-.2 21.4-.2 21.4s-3.6-23-9.1-21.8c-3.2.7-20.2 31.9-20.2 31.9s13.9-33.7 9.7-32.3c-3.1 1-8.9 14.9-8.9 14.9s2.8-13.7 0-14.5c-2.8-.8-18.6 14.5-18.6 14.5s11.7-13.7 9.7-16.6c-3.1-4.3-6.6-4.5-10.9-2.8-6.2 2.4-14.5 13.7-14.5 13.7s8.3-11.5 6.9-15.7C66.9 84.1 43 104.3 43 104.3S57.1 91 53.9 88.1c-3.2-2.8-20.8-2-26.2-2-16.3.1-21.9-3.7-26.8-7.6"
|
||||
/>
|
||||
</svg>
|
||||
);
|
||||
export default CassandraSVG;
|
||||
35
src/frontend/src/icons/Cassandra/cassandra.svg
Normal file
35
src/frontend/src/icons/Cassandra/cassandra.svg
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" preserveAspectRatio="xMidYMid" viewBox="0 -43.5 256 256">
|
||||
<g fill="#373535">
|
||||
<path
|
||||
d="M30.9 142.2c2.2 0 4.2.5 5.3 1.5.2 1.6-1.3 4.2-2.2 4.2-1.1-.4-2.1-.6-3.4-.6-5.2 0-7.8 5.4-7.8 10.7 0 3.3 1.1 5.3 3.8 5.3 2.8 0 5.6-1.9 7.2-3.3.4.3.9 1.2.9 2.2 0 1.1-.3 2.2-1.4 3.3-1.8 1.8-4.9 3.4-9.4 3.4-5.1 0-8.7-2.9-8.7-9.7.2-9 6-17 15.7-17ZM47.7 163c2.8 0 7.9-4.9 9.3-14.3.1-.6.1-.7.2-1.3-.6-.2-1.5-.4-2.3-.4-2.1 0-4.3.6-6.2 3.3-2 2.8-2.9 6.3-2.9 9.1 0 2.3.7 3.6 1.9 3.6Zm-9.2-2.6c0-3.4 1.1-9.2 5.4-13.5 3.7-3.8 8.1-4.7 12.2-4.7 2.7 0 6.3.9 8.6 1.3-.6 2.5-1.9 12-2.6 17.5-.3 2.3-.4 5.6-.3 6.8-1.9.8-5.4 1-6.4 1-.5 0-.6-2.3-.5-4.6.1-.7.2-1.8.2-2.3-2.2 3.7-6.6 6.8-11.2 6.8-3.3.1-5.4-2.7-5.4-8.3ZM78.9 142.2c2.3 0 4.6.9 5.6 1.9-.1 1.6-1.3 4.3-3.3 3.5-.9-.3-1.7-.5-2.9-.5-1.5 0-2.9.7-2.9 2.1 0 1.1.8 1.9 4.6 4.6 2.7 2 3.8 3.8 3.8 6.3 0 4.2-3.9 8.7-10.8 8.7-2.8 0-5.3-1.1-6-2.2-1-1.7-.2-5.1.9-4.5 1.5.7 3.9 1.5 5.9 1.5 1.9 0 3.1-.9 3.1-2 0-1-.9-1.8-4.3-4.3-2.9-2.2-3.8-4.2-3.8-6.4 0-4.8 4.1-8.7 10.1-8.7ZM98.6 142.2c2.3 0 4.6.9 5.6 1.9-.1 1.6-1.3 4.3-3.3 3.5-.9-.3-1.7-.5-2.9-.5-1.5 0-2.9.7-2.9 2.1 0 1.1.8 1.9 4.6 4.6 2.7 2 3.8 3.8 3.8 6.3 0 4.2-3.9 8.7-10.8 8.7-2.8 0-5.2-1.1-6-2.2-1-1.7-.2-5.1.9-4.5 1.5.7 3.9 1.5 5.9 1.5 1.9 0 3.1-.9 3.1-2 0-1-.9-1.8-4.3-4.3-2.9-2.2-3.8-4.2-3.8-6.4 0-4.8 4.1-8.7 10.1-8.7ZM116.5 163c2.8 0 7.9-4.9 9.3-14.3.1-.6.1-.7.2-1.3-.6-.2-1.5-.4-2.3-.4-2.1 0-4.3.6-6.2 3.3-2 2.8-2.9 6.3-2.9 9.1.1 2.3.7 3.6 1.9 3.6Zm-9.2-2.6c0-3.4 1.1-9.2 5.4-13.5 3.7-3.8 8.1-4.7 12.2-4.7 2.7 0 6.3.9 8.6 1.3-.6 2.5-1.9 12-2.6 17.5-.3 2.3-.4 5.6-.3 6.8-1.9.8-5.4 1-6.4 1-.5 0-.6-2.3-.5-4.6.1-.7.2-1.8.2-2.3-2.2 3.7-6.6 6.8-11.2 6.8-3.2.1-5.4-2.7-5.4-8.3ZM146.4 149.6c2.6-4.2 6-7.4 10.8-7.4 4.1 0 5.4 3.8 4.6 9.1-.4 2.5-1.1 6.1-1.5 9.4-.4 2.8-.7 5.3-.6 7-1.5.7-5.8 1-6.8 1-.4 0-.5-3.1.1-6.4.5-2.7 1.4-7.7 1.9-10.6.3-1.7.2-3.7-1.4-3.7-2.1 0-7.1 3.4-9.6 17.2-.2 1.1-.6 1.8-1.3 2.2-.9.5-2.7 1-6.4 1 .7-3.5 1.8-10.6 2.6-15.9.7-4.8 1-7.9.9-9.1 1-.3 6.1-1.4 6.6-1.4.6 0 .7 1.8.2 6-.1.4-.1 1-.2 1.4h.1v.2ZM175.4 162.9c2.5 0 7.6-4.7 9-13 .1-.5.2-1.3.3-1.8-.7-.7-1.7-1.1-3.3-1.1-5.8 0-8.3 6.9-8.3 11.9.1 2.6 1 4 2.3 4Zm-3.7 5.9c-3.7 0-5.9-3.3-5.9-8.8 0-9.2 5.8-17.7 15.5-17.7 1.7 0 3.3.5 4.2 1 .5-2.6 1.7-10.7 1.8-13.1 1.6-.3 5-.8 6.6-.8.6 0 .8.6.6 2.1-1.4 8.6-3.8 25-4.3 28.6-.3 3.1-.4 6.1-.3 7.8-1.8.8-5.5 1-6.5 1-.4 0-.6-2.6-.5-5 .1-.7.2-1.8.2-2-3.1 4.6-7 6.9-11.4 6.9ZM205.1 150.4c3-6.7 6.6-8.2 9-8.2.7 0 1.9.5 2.4 1 .2 1.9-1.3 5.6-2.6 7.1-.7-.3-1.5-.7-2.5-.7-1.9 0-5.8 3-8.2 16-.2 1.1-.5 1.5-1.1 1.8-1 .6-4.8 1-6.6 1.1.9-4.7 2.3-14.2 2.9-19.8.2-1.4.2-4.1.1-5.1 1.1-.5 5.4-1.5 6.3-1.5.5 0 .9 3.1.1 8.2h.2v.1ZM225.2 163c2.8 0 7.9-4.9 9.3-14.3.1-.6.1-.7.2-1.3-.6-.2-1.5-.4-2.3-.4-2.1 0-4.3.6-6.2 3.3-2 2.8-2.9 6.3-2.9 9.1.1 2.3.7 3.6 1.9 3.6Zm-9.2-2.6c0-3.4 1.1-9.2 5.4-13.5 3.7-3.8 8.1-4.7 12.2-4.7 2.7 0 6.3.9 8.6 1.3-.6 2.5-1.9 12-2.6 17.5-.3 2.3-.4 5.6-.3 6.8-1.9.8-5.4 1-6.4 1-.5 0-.6-2.3-.5-4.6.1-.7.2-1.8.2-2.3-2.2 3.7-6.6 6.8-11.2 6.8-3.2.1-5.4-2.7-5.4-8.3Z" />
|
||||
</g>
|
||||
<path fill="#BBE6FB"
|
||||
d="M205.5 45.5c1.9 21.9-32.6 42.8-77.1 46.6-44.5 3.8-82-10.9-83.9-32.8-1.9-21.9 32.6-42.8 77.1-46.6 44.4-3.8 82 10.8 83.9 32.8" />
|
||||
<path fill="#FFF"
|
||||
d="M122.8 15.2c-17-.3-36.8 6.5-51.6 12.8-1.5 4.4-2.4 9.1-2.4 14 0 26 23.5 47.1 52.5 47.1s52.6-21 52.6-47.1c0-8.2-2.4-16-6.5-22.7-11.8-1.8-28.1-3.8-44.6-4.1" />
|
||||
<path fill="#FFF"
|
||||
d="M121.4 15.2c-9.4-.6-25.6 4.3-39.1 9.2-2.1 4.8-3.2 10.1-3.2 15.7 0 22.8 20.7 41.3 42.5 41.3 21.7 0 40.9-18.5 42.5-41.3.5-7.4-2-14.4-5.6-20.4-13.9-2.4-28.7-3.9-37.1-4.5" />
|
||||
<path fill="#373535"
|
||||
d="M97.3 37.2c1.2-2.6 2.9-3.8 4.6-5.9-.2-.5-.6-2.2-.6-2.7 0-2.6 2.1-4.6 4.6-4.6.6 0 1.2.1 1.7.3 7.7-5.9 17.8-8.4 28-6.1.9.2 1.8.5 2.7.7-10-1.4-21.4 2.2-29.1 8.4.2.6.9 2.1.9 2.8 0 2.6-1.7 3.2-4.2 3.2-.6 0-1.1-.1-1.7-.3-1.7 2.3-3.9 6.8-4.9 9.6 4.3 3.8 8.1 5.2 13.1 7.1 0-.2.2-.5.2-.7 0-7.7 6.8-14 14.5-14 6.9 0 12.7 5 13.8 11.6 3.5-2.2 6.8-3.9 9.3-7.1-.6-.7-1.2-2.8-1.2-3.8 0-2.3 1.9-4.2 4.2-4.2.3 0 .6 0 1 .1 1.3-2.7 2.3-5.5 2.9-8.4-12.1-9-35.5-7.7-35.5-7.7s-18.6-1-31.2 5.2c.9 5.8 3.3 11.6 6.9 16.5" />
|
||||
<path fill="#373535"
|
||||
d="M155.1 33.7c.9.8 1.3 1.4 1.7 2.1 1.1 2-1.1 3.9-3.5 3.9-.2 0-.5 0-.7-.1-2.6 4.1-7.2 9.3-11.3 12 6.3 1 12.2 3.5 16.8 7.4 3.4-6.1 6-15 6-22.5 0-5.7-2.5-9.9-6.3-13-.1 3.1-1.8 7.4-2.7 10.2M104.3 72.5c2.1-5.8 7.2-10.2 12.1-14.1-.7-1-1.8-3.4-2.2-4.5-5.9-1.8-11.1-5.2-15.2-9.6 0 .1-.1.3-.1.4-.8 3.4-.9 6.9-.5 10.2 2.8.5 5 3 5 6 0 1.8-1.6 4.3-2.8 5.5 1.2 2.6 2.1 4 3.7 6.1" />
|
||||
<path fill="#373535"
|
||||
d="M103.9 77.3c-2.5-2.5-4.2-7.4-5.8-10.5-.3 0-.6.1-.9.1-3.4 0-6.9-2.8-6.1-6.1.4-1.8 1.7-3 3.7-4-.5-3.8-.6-9.1.3-13 .2-1.1.8-1.6 1.1-2.7-3.7-5.4-6.1-12.6-6.1-19.7v-.8c-6.3 3.2-11 8.1-11 15.9 0 17.3 10 34.3 24.8 40.9v-.1M140.4 53.4c-1.9 5.4-7.1 9.4-13.2 9.4-3.3 0-6.3-1.1-8.6-3-4.9 3.8-9.4 10.5-11.6 16.4 1 1.1 1.7 2 2.9 3 3.4.9 8.2 0 11.9 0 14.9 0 28.2-6.6 35.8-18.3-5.2-3.6-11.2-7-17.2-7.5" />
|
||||
<path fill="#1287B1"
|
||||
d="M96.9 39.2c1.2-2.6 2.6-4.9 4.3-7.1-.2-.5-.3-1.1-.3-1.6 0-2.6 2.1-4.6 4.6-4.6.6 0 1.2.1 1.7.3 7.7-5.9 17.8-8.4 28-6.1.9.2 1.8.5 2.7.7-10-1.4-20.4 1.7-28.1 7.9.2.6.4 1.2.4 1.8 0 2.6-2.1 4.6-4.6 4.6-.6 0-1.1-.1-1.7-.3-1.7 2.3-3.2 4.9-4.2 7.7 3.7 3.9 8.2 7.1 13.2 8.9v-.7c0-7.7 6.3-14 14-14 6.9 0 12.7 5 13.8 11.6 3.5-2.2 6.5-5 9.1-8.3-.6-.7-1-1.6-1-2.6 0-2.3 1.9-4.2 4.2-4.2.3 0 .6 0 1 .1 1.3-2.7 2.3-5.5 2.9-8.4-12.1-9-35.5-7.7-35.5-7.7s-18.6-1-31.2 5.2c.7 6.1 3.1 11.9 6.7 16.8" />
|
||||
<path fill="#1287B1"
|
||||
d="M155.7 34.4c.9.8 1.4 1.9 1.4 3.1 0 2.3-1.9 4.2-4.2 4.2-.2 0-.5 0-.7-.1-2.6 4.1-6.1 7.6-10.2 10.2 6 .9 11.7 3.5 16.4 7.4 3.4-6.1 5.4-13.2 5.4-20.7 0-5.7-2.5-9.9-6.3-13-.2 3.1-.8 6.1-1.8 8.9M104.9 73.8c2.1-5.8 5.7-10.9 10.6-14.8-.7-1-1.3-2-1.7-3.2-5.9-1.8-11.1-5.2-15.2-9.6 0 .1-.1.3-.1.4-.8 3.4-.9 6.9-.5 10.2 2.8.5 5 3 5 6 0 1.8-.8 3.4-2 4.5 1 2.3 2.4 4.5 3.9 6.5" />
|
||||
<path fill="#1287B1"
|
||||
d="M103.9 77.2c-2.5-2.5-4.6-5.3-6.2-8.4-.3 0-.6.1-.9.1-3.4 0-6.1-2.7-6.1-6.1 0-2.4 1.4-4.5 3.4-5.5-.5-3.8-.3-7.6.6-11.5.2-1.1.6-2.2.9-3.3-3.7-5.4-5.9-12-5.9-19.1v-.8c-6.3 3.2-11 8.1-11 15.9 0 17.3 10.3 32.2 25.1 38.8.1 0 .1 0 .1-.1M140 55.4c-1.9 5.4-7.1 9.4-13.2 9.4-3.3 0-6.3-1.1-8.6-3-4.9 3.8-8.6 9-10.9 14.9 1 1.1 2.1 2.1 3.2 3.1 3.4.9 7 1.4 10.7 1.4 14.9 0 28.1-7.7 35.7-19.4-5-3.6-10.9-5.9-16.9-6.4" />
|
||||
<path fill="#FFF"
|
||||
d="m140.5 51.8 12.9-3.1-13-.7 10.6-8-12 4.3 8.1-11.3-11.3 7.5 3.9-13.2-7.7 10.9-.2-13.8-5.1 12.3-4.2-12.4.2 14.6-7.3-13.1 4 13.9-11.9-8.6 9.3 11.7-14.8-5.4 11.6 8.6-14.9.5 15.3 3.9-15.3 3.3 15.1 1.1-12.7 8.1 13.1-4.7-9.1 11.5 11.5-9.3-4.1 15.4 8.9-12.6-1.2 14.8 5-13.5 4.3 14.1 1-14.2 6.4 12.1-3.8-13.8 11.6 9-7.5-11.5 12.8 5-9.8-9.6 13.1 1-12.8-4.8Z" />
|
||||
<path fill="#373535" fill-opacity=".35"
|
||||
d="M2.8 76.5C42.9 36.4 74.9 24 104 18.4c3.8-.7 4.6-9.2 4.6-9.2s.5 6.2 3.2 7c2.7.8 6.2-9.7 6.2-9.7s-3.2 9.4 0 10c3.2.5 9.2-9.2 9.2-9.2s-2.4 8.3-.8 8.9c1.6.5 9.7-12.1 9.7-12.1s-4.8 8.3-.3 9.2c4.6.8 11.3-5.7 11.3-5.7s-5.2 5.9-2.9 6.8c10 3.5 18-9.4 18-9.4s-1.9 5.7-6.7 11.9c10.5 2.7 18.3-13.1 18.3-13.1L166 19.6c4 2 20.1-16.6 20.1-16.6s-8.3 14.5-13.2 17.5c2.7 2.2 12.4-6.5 12.4-6.5s-7.8 9.7-4.8 10.2c4.3 3.5 20.2-18 20.2-18s-6.2 12.7-15.3 22.6C193 32.7 212 8.2 212 8.2s-.5 7.8-14.3 20.2c10.2-1.3 23.4-20.7 23.4-20.7s-4.8 14.5-16.4 24.8c10-1 26.1-25.8 26.1-25.8s-6.2 17.2-18.8 27.2c14 3.1 34.2-17.8 34.2-17.8s-7.9 14.8-18.3 20.9c11.6 4.4 27.5-13.9 27.5-13.9s-15.9 24.5-41.2 23.4c-8.3-.4-33.4-25.2-87.2-23.2C55.8 25.9 40.8 56.1 2.8 76.5" />
|
||||
<path fill="#373535"
|
||||
d="M4.4 73.5C44.5 33.4 76.5 21 105.6 15.4c3.8-.7 4.6-9.2 4.6-9.2s.5 6.2 3.2 7c2.7.8 6.2-9.7 6.2-9.7s-3.2 9.4 0 10c3.2.5 9.2-9.2 9.2-9.2s-2.4 8.3-.8 8.9c1.6.5 9.7-12.1 9.7-12.1s-4.8 8.3-.3 9.2c4.6.8 11.3-5.7 11.3-5.7s-5.2 5.9-2.9 6.8c10 3.5 18-9.4 18-9.4s-1.9 5.7-6.7 11.9C167.6 16.6 175.4.8 175.4.8l-7.8 15.8c4 2.2 20.2-16.4 20.2-16.4s-8.3 14.5-13.2 17.5C177.3 19.6 187 11 187 11s-7.8 9.7-4.8 10.2c4.3 3.5 20.2-18 20.2-18s-6.3 12.7-15.4 22.6c7.6 3.8 26.7-20.7 26.7-20.7s-.5 7.8-14.3 20.2c10.2-1.3 23.4-20.7 23.4-20.7s-4.8 14.5-16.4 24.8c10-1 26.1-25.8 26.1-25.8s-6.2 17.2-18.8 27.2c14 3.1 34.2-17.8 34.2-17.8s-7.9 14.8-18.3 20.9c11.6 4.4 27.5-13.9 27.5-13.9s-15.9 24.5-41.2 23.4c-8.3-.4-33.4-25.2-87.2-23.2C57.5 22.9 42.4 53 4.4 73.5" />
|
||||
<path fill="#373535" fill-opacity=".35"
|
||||
d="M1.8 80.9c21.2 10.6 40.6-1.6 65 5.3 18.6 5.2 41.2 11.7 71.9 7.2 30.7-4.4 56.9-17.8 69.5-41.6 3.9-10.6 19.8 2.4 19.8 2.4s-11.6-4.8-11.3-2.6c.3 2.3 17.4 10.2 17.4 10.2s-15.5-4.8-14.5-1.2c.9 3.6 19.4 18.2 19.4 18.2S217.9 63 216.2 65.2c-1.8 2.2 8.9 10.9 8.9 10.9s-17.6-10.9-23.8-7.7c-4.5 2.3 18.3 17.2 18.3 17.2s-14.8-11.3-18.3-8.3 16.7 27.2 16.7 27.2-23-24.8-25.3-23.6C190.4 82.1 199 94 199 94s-11.2-12.4-14.3-10.3c-3.1 2.2 16.2 34.3 16.2 34.3S180 85.1 171.3 90.6c13.5 29.7 8.5 33.9 8.5 33.9s-1.7-30.3-18.6-29.5c-8.5.4 4 22.6 4 22.6S153.7 97.3 146 97.7c14.1 26.8 9.1 37.6 9.1 37.6s2.3-22.9-16.8-35.6c7.3 6.5-4.6 35.6-4.6 35.6s10.4-42.9-7.7-34.7c-2.9 1.3-.2 21.4-.2 21.4s-3.6-23-9.1-21.8c-3.2.7-20.2 31.9-20.2 31.9s13.9-33.7 9.7-32.3c-3.1 1-8.9 14.9-8.9 14.9s2.8-13.7 0-14.5c-2.8-.8-18.6 14.5-18.6 14.5s11.7-13.7 9.7-16.6c-3.1-4.3-6.6-4.5-10.9-2.8C71.3 97.7 63 109 63 109s8.3-11.5 6.9-15.7c-2.3-6.9-26.2 13.3-26.2 13.3s14.1-13.3 10.9-16.2c-3.2-2.8-20.8-2-26.2-2-16.1.2-21.7-3.6-26.6-7.5" />
|
||||
<path fill="#373535"
|
||||
d="M.9 78.5c21.2 10.6 40.6-1.6 65 5.3 18.6 5.2 41.2 11.7 71.9 7.2 30.7-4.4 56.9-17.8 69.5-41.6 3.9-10.6 19.8 2.4 19.8 2.4s-11.6-4.8-11.3-2.6c.3 2.3 17.4 10.2 17.4 10.2s-15.5-4.8-14.5-1.2c.9 3.6 19.4 18.2 19.4 18.2s-20.9-15.9-22.6-13.7c-1.7 2.2 8.9 10.9 8.9 10.9s-17.6-10.9-23.8-7.7c-4.5 2.3 18.3 17.2 18.3 17.2s-14.8-11.3-18.3-8.3 16.7 27.2 16.7 27.2-22.9-24.8-25.2-23.6c-2.3 1.2 6.3 13.1 6.3 13.1S187 79.2 183.9 81.3c-3.1 2.2 16.1 34.3 16.1 34.3s-20.9-33-29.5-27.5c13.6 29.8 8.5 34 8.5 34s-1.7-30.3-18.6-29.5c-8.5.4 4 22.6 4 22.6S153 95 145.3 95.4c14.1 26.8 9.1 37.6 9.1 37.6s2.3-22.9-16.8-35.6c7.3 6.5-4.6 35.6-4.6 35.6s10.4-42.9-7.7-34.7c-2.9 1.3-.2 21.4-.2 21.4s-3.6-23-9.1-21.8c-3.2.7-20.2 31.9-20.2 31.9s13.9-33.7 9.7-32.3c-3.1 1-8.9 14.9-8.9 14.9s2.8-13.7 0-14.5c-2.8-.8-18.6 14.5-18.6 14.5s11.7-13.7 9.7-16.6c-3.1-4.3-6.6-4.5-10.9-2.8-6.2 2.4-14.5 13.7-14.5 13.7s8.3-11.5 6.9-15.7C66.9 84.1 43 104.3 43 104.3S57.1 91 53.9 88.1c-3.2-2.8-20.8-2-26.2-2-16.3.1-21.9-3.7-26.8-7.6" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 10 KiB |
9
src/frontend/src/icons/Cassandra/index.tsx
Normal file
9
src/frontend/src/icons/Cassandra/index.tsx
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
import React, { forwardRef } from "react";
|
||||
import CassandraSVG from "./Cassandra";
|
||||
|
||||
export const CassandraIcon = forwardRef<
|
||||
SVGSVGElement,
|
||||
React.PropsWithChildren<{}>
|
||||
>((props, ref) => {
|
||||
return <CassandraSVG ref={ref} {...props} />;
|
||||
});
|
||||
|
|
@ -155,6 +155,7 @@ import { AstraDBIcon } from "../icons/AstraDB";
|
|||
import { AzureIcon } from "../icons/Azure";
|
||||
import { BingIcon } from "../icons/Bing";
|
||||
import { BotMessageSquareIcon } from "../icons/BotMessageSquare";
|
||||
import { CassandraIcon } from "../icons/Cassandra";
|
||||
import { ChromaIcon } from "../icons/ChromaIcon";
|
||||
import { CohereIcon } from "../icons/Cohere";
|
||||
import { CouchbaseIcon } from "../icons/Couchbase";
|
||||
|
|
@ -328,6 +329,7 @@ export const nodeIconsLucide: iconsType = {
|
|||
Play,
|
||||
Vectara: VectaraIcon,
|
||||
ArrowUpToLine: ArrowUpToLine,
|
||||
Cassandra: CassandraIcon,
|
||||
Chroma: ChromaIcon,
|
||||
Couchbase: CouchbaseIcon,
|
||||
AirbyteJSONLoader: AirbyteIcon,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue