Merge remote-tracking branch 'origin/dev' into v2
This commit is contained in:
commit
746f61473f
6 changed files with 154 additions and 5 deletions
15
poetry.lock
generated
15
poetry.lock
generated
|
|
@ -5008,6 +5008,19 @@ files = [
|
||||||
[package.dependencies]
|
[package.dependencies]
|
||||||
ptyprocess = ">=0.5"
|
ptyprocess = ">=0.5"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "pgvector"
|
||||||
|
version = "0.2.3"
|
||||||
|
description = "pgvector support for Python"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.8"
|
||||||
|
files = [
|
||||||
|
{file = "pgvector-0.2.3-py2.py3-none-any.whl", hash = "sha256:9d53dc01138ecc7c9aca64e4680cfa9edf4c38f9cb8ed7098317871fdd211824"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[package.dependencies]
|
||||||
|
numpy = "*"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pillow"
|
name = "pillow"
|
||||||
version = "10.1.0"
|
version = "10.1.0"
|
||||||
|
|
@ -8909,4 +8922,4 @@ local = ["ctransformers", "llama-cpp-python", "sentence-transformers"]
|
||||||
[metadata]
|
[metadata]
|
||||||
lock-version = "2.0"
|
lock-version = "2.0"
|
||||||
python-versions = ">=3.9,<3.11"
|
python-versions = ">=3.9,<3.11"
|
||||||
content-hash = "856876d1b3d9e11c74e0d68207e4a31634e83e8d6d1daf629fc5f29c9804f1a6"
|
content-hash = "b547f3825111dda53ecdd226cf6ddece5e7df1e06e77d65a258b21eb88629c27"
|
||||||
|
|
|
||||||
|
|
@ -100,6 +100,7 @@ jq = "^1.6.0"
|
||||||
boto3 = "^1.28.63"
|
boto3 = "^1.28.63"
|
||||||
numexpr = "^2.8.6"
|
numexpr = "^2.8.6"
|
||||||
qianfan = "0.0.5"
|
qianfan = "0.0.5"
|
||||||
|
pgvector = "^0.2.3"
|
||||||
|
|
||||||
[tool.poetry.group.dev.dependencies]
|
[tool.poetry.group.dev.dependencies]
|
||||||
types-redis = "^4.6.0.5"
|
types-redis = "^4.6.0.5"
|
||||||
|
|
|
||||||
|
|
@ -20,10 +20,11 @@ class ConversationalAgent(CustomComponent):
|
||||||
|
|
||||||
def build_config(self):
|
def build_config(self):
|
||||||
openai_function_models = [
|
openai_function_models = [
|
||||||
"gpt-3.5-turbo-0613",
|
"gpt-4-1106-preview",
|
||||||
"gpt-3.5-turbo-16k-0613",
|
"gpt-3.5-turbo",
|
||||||
"gpt-4-0613",
|
"gpt-3.5-turbo-16k",
|
||||||
"gpt-4-32k-0613",
|
"gpt-4",
|
||||||
|
"gpt-4-32k",
|
||||||
]
|
]
|
||||||
return {
|
return {
|
||||||
"tools": {"is_list": True, "display_name": "Tools"},
|
"tools": {"is_list": True, "display_name": "Tools"},
|
||||||
|
|
|
||||||
64
src/backend/langflow/components/vectorstores/Redis.py
Normal file
64
src/backend/langflow/components/vectorstores/Redis.py
Normal file
|
|
@ -0,0 +1,64 @@
|
||||||
|
from typing import Optional
|
||||||
|
from langflow import CustomComponent
|
||||||
|
|
||||||
|
from langchain.vectorstores.redis import Redis
|
||||||
|
from langchain.schema import Document
|
||||||
|
from langchain.vectorstores.base import VectorStore
|
||||||
|
from langchain.embeddings.base import Embeddings
|
||||||
|
|
||||||
|
|
||||||
|
class RedisComponent(CustomComponent):
|
||||||
|
"""
|
||||||
|
A custom component for implementing a Vector Store using Redis.
|
||||||
|
"""
|
||||||
|
|
||||||
|
display_name: str = "Redis"
|
||||||
|
description: str = "Implementation of Vector Store using Redis"
|
||||||
|
documentation = "https://python.langchain.com/docs/integrations/vectorstores/redis"
|
||||||
|
beta = True
|
||||||
|
|
||||||
|
def build_config(self):
|
||||||
|
"""
|
||||||
|
Builds the configuration for the component.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
- dict: A dictionary containing the configuration options for the component.
|
||||||
|
"""
|
||||||
|
return {
|
||||||
|
"index_name": {"display_name": "Index Name", "value": "your_index"},
|
||||||
|
"code": {"show": False, "display_name": "Code"},
|
||||||
|
"documents": {"display_name": "Documents", "is_list": True},
|
||||||
|
"embedding": {"display_name": "Embedding"},
|
||||||
|
"redis_server_url": {
|
||||||
|
"display_name": "Redis Server Connection String",
|
||||||
|
"advanced": False,
|
||||||
|
},
|
||||||
|
"redis_index_name": {"display_name": "Redis Index", "advanced": False},
|
||||||
|
}
|
||||||
|
|
||||||
|
def build(
|
||||||
|
self,
|
||||||
|
embedding: Embeddings,
|
||||||
|
redis_server_url: str,
|
||||||
|
redis_index_name: str,
|
||||||
|
documents: Optional[Document] = None,
|
||||||
|
) -> VectorStore:
|
||||||
|
"""
|
||||||
|
Builds the Vector Store or BaseRetriever object.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
- embedding (Embeddings): The embeddings to use for the Vector Store.
|
||||||
|
- documents (Optional[Document]): The documents to use for the Vector Store.
|
||||||
|
- redis_index_name (str): The name of the Redis index.
|
||||||
|
- redis_server_url (str): The URL for the Redis server.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
- VectorStore: The Vector Store object.
|
||||||
|
"""
|
||||||
|
|
||||||
|
return Redis.from_documents(
|
||||||
|
documents=documents, # type: ignore
|
||||||
|
embedding=embedding,
|
||||||
|
redis_url=redis_server_url,
|
||||||
|
index_name=redis_index_name,
|
||||||
|
)
|
||||||
69
src/backend/langflow/components/vectorstores/pgvector.py
Normal file
69
src/backend/langflow/components/vectorstores/pgvector.py
Normal file
|
|
@ -0,0 +1,69 @@
|
||||||
|
from typing import Optional
|
||||||
|
from langflow import CustomComponent
|
||||||
|
|
||||||
|
from langchain.vectorstores.pgvector import PGVector
|
||||||
|
from langchain.schema import Document
|
||||||
|
from langchain.vectorstores.base import VectorStore
|
||||||
|
from langchain.embeddings.base import Embeddings
|
||||||
|
|
||||||
|
|
||||||
|
class PostgresqlVectorComponent(CustomComponent):
|
||||||
|
"""
|
||||||
|
A custom component for implementing a Vector Store using PostgreSQL.
|
||||||
|
"""
|
||||||
|
|
||||||
|
display_name: str = "PGVector"
|
||||||
|
description: str = "Implementation of Vector Store using PostgreSQL"
|
||||||
|
documentation = (
|
||||||
|
"https://python.langchain.com/docs/integrations/vectorstores/pgvector"
|
||||||
|
)
|
||||||
|
beta = True
|
||||||
|
|
||||||
|
def build_config(self):
|
||||||
|
"""
|
||||||
|
Builds the configuration for the component.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
- dict: A dictionary containing the configuration options for the component.
|
||||||
|
"""
|
||||||
|
return {
|
||||||
|
"index_name": {"display_name": "Index Name", "value": "your_index"},
|
||||||
|
"code": {"show": True, "display_name": "Code"},
|
||||||
|
"documents": {"display_name": "Documents", "is_list": True},
|
||||||
|
"embedding": {"display_name": "Embedding"},
|
||||||
|
"pg_server_url": {
|
||||||
|
"display_name": "PostgreSQL Server Connection String",
|
||||||
|
"advanced": False,
|
||||||
|
},
|
||||||
|
"collection_name": {"display_name": "Table", "advanced": False},
|
||||||
|
}
|
||||||
|
|
||||||
|
def build(
|
||||||
|
self,
|
||||||
|
embedding: Embeddings,
|
||||||
|
pg_server_url: str,
|
||||||
|
collection_name: str,
|
||||||
|
documents: Optional[Document] = None,
|
||||||
|
) -> VectorStore:
|
||||||
|
"""
|
||||||
|
Builds the Vector Store or BaseRetriever object.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
- embedding (Embeddings): The embeddings to use for the Vector Store.
|
||||||
|
- documents (Optional[Document]): The documents to use for the Vector Store.
|
||||||
|
- collection_name (str): The name of the PG table.
|
||||||
|
- pg_server_url (str): The URL for the PG server.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
- VectorStore: The Vector Store object.
|
||||||
|
"""
|
||||||
|
|
||||||
|
try:
|
||||||
|
return PGVector.from_documents(
|
||||||
|
embedding=embedding,
|
||||||
|
documents=documents,
|
||||||
|
collection_name=collection_name,
|
||||||
|
connection_string=pg_server_url,
|
||||||
|
)
|
||||||
|
except Exception as e:
|
||||||
|
raise RuntimeError(f"Failed to build PGVector: {e}")
|
||||||
|
|
@ -13,6 +13,7 @@ CHAT_OPENAI_MODELS = [
|
||||||
"gpt-3.5-turbo-16k",
|
"gpt-3.5-turbo-16k",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
ANTHROPIC_MODELS = [
|
ANTHROPIC_MODELS = [
|
||||||
# largest model, ideal for a wide range of more complex tasks.
|
# largest model, ideal for a wide range of more complex tasks.
|
||||||
"claude-v1",
|
"claude-v1",
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue