* Initial Restructure * Replace import langflow for import langflow_base * Fix dependencies * 🔧 chore(Makefile): refactor build process to separate base and frontend builds for better organization and maintainability * 🚀 chore(Makefile): update build_frontend command to copy frontend build to the correct directory 🔖 chore(pyproject.toml): update python and httpx dependencies versions 🔧 chore(__init__.py): update import statement for load_flow_from_json function * 🔖 chore(pyproject.toml): update package version from 0.0.6 to 0.0.8 to reflect changes in the codebase * 🚀 feat(server.ts): change port variable case from lowercase port to uppercase PORT to improve semantics 🚀 feat(server.ts): add support for process.env.PORT environment variable to be able to run app on a configurable port * 🐛 fix(server.ts): change port variable case from lowercase port to uppercase PORT to improve semantics ✨ feat(server.ts): add support for process.env.PORT environment variable to be able to run app on a configurable port 🚚 chore(pyproject.toml): update langflow-base version from 0.0.8 to 0.0.10 ✨ feat(server.ts): add new agent component LCAgentComponent to langflow_base ✨ feat(server.ts): add new model component LCModelComponent to langflow_base ✨ feat(server.ts): add new helper functions docs_to_records and records_to_text to langflow_base ✨ feat(server.ts): add new flow helper functions list_flows, load_flow, run_flow, generate_function_for_flow, get_flow_inputs, build_schema_from_inputs to langflow_base ✨ feat(server.ts): add new prompt component PromptComponent to langflow_base ✨ feat(server.ts): add new chat components ChatInput and ChatOutput to langflow_base ✨ feat(server.ts): add new model component OpenAIModelComponent to langflow_base 🚚 chore(main.py): update import path from langflow.main to langflow_base.main 🚚 chore(service.py): update import path from langflow.services.database.manager to langflow_base.services.database.manager 🚚 chore(factory.py): update import path from langflow.services to langflow_base.services 🚚 chore(service.py): update import path from langflow.services.plugins to langflow_base.services.plugins 🚚 chore(utils.py): update import path from langflow.services to langflow_base.services 🚚 chore(validate.py): update import path from langflow.field_typing to langflow_base.field_typing 🚚 chore(pyproject.toml): update langflow-base version from 0.0.8 to 0.0.10 * Update Makefile to install backend dependencies and build langflow * Add langflow main module and update __init__.py * Update langflow install process to use implicit namespace * Add langflow-base as a local dependency * Add setup_poetry target to Makefile * Update Poetry version and add poetry-monorepo-dependency-plugin * Refactor code to improve performance and readability * Update imports to custom and load * Update content-hash in poetry.lock --------- Co-authored-by: Matheus <jacquesmats@gmail.com> Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@logspace.ai>
1747 lines
No EOL
88 KiB
JSON
1747 lines
No EOL
88 KiB
JSON
{
|
|
"id": "7fc56f82-3493-4742-9c85-82b144127aff",
|
|
"data": {
|
|
"nodes": [
|
|
{
|
|
"id": "ChatOpenAI-4Mfuz",
|
|
"type": "genericNode",
|
|
"position": {
|
|
"x": -2243.8068684913856,
|
|
"y": -2026.350019258601
|
|
},
|
|
"data": {
|
|
"type": "ChatOpenAI",
|
|
"node": {
|
|
"template": {
|
|
"callbacks": {
|
|
"type": "langchain_core.callbacks.base.BaseCallbackHandler",
|
|
"required": false,
|
|
"placeholder": "",
|
|
"list": true,
|
|
"show": false,
|
|
"multiline": false,
|
|
"fileTypes": [],
|
|
"password": false,
|
|
"name": "callbacks",
|
|
"advanced": false,
|
|
"dynamic": false,
|
|
"info": ""
|
|
},
|
|
"async_client": {
|
|
"type": "Any",
|
|
"required": false,
|
|
"placeholder": "",
|
|
"list": false,
|
|
"show": false,
|
|
"multiline": false,
|
|
"fileTypes": [],
|
|
"password": false,
|
|
"name": "async_client",
|
|
"advanced": false,
|
|
"dynamic": false,
|
|
"info": ""
|
|
},
|
|
"cache": {
|
|
"type": "bool",
|
|
"required": false,
|
|
"placeholder": "",
|
|
"list": false,
|
|
"show": false,
|
|
"multiline": false,
|
|
"fileTypes": [],
|
|
"password": false,
|
|
"name": "cache",
|
|
"advanced": false,
|
|
"dynamic": false,
|
|
"info": ""
|
|
},
|
|
"client": {
|
|
"type": "Any",
|
|
"required": false,
|
|
"placeholder": "",
|
|
"list": false,
|
|
"show": false,
|
|
"multiline": false,
|
|
"fileTypes": [],
|
|
"password": false,
|
|
"name": "client",
|
|
"advanced": false,
|
|
"dynamic": false,
|
|
"info": ""
|
|
},
|
|
"default_headers": {
|
|
"type": "dict",
|
|
"required": false,
|
|
"placeholder": "",
|
|
"list": false,
|
|
"show": false,
|
|
"multiline": false,
|
|
"fileTypes": [],
|
|
"password": false,
|
|
"name": "default_headers",
|
|
"advanced": false,
|
|
"dynamic": false,
|
|
"info": ""
|
|
},
|
|
"default_query": {
|
|
"type": "dict",
|
|
"required": false,
|
|
"placeholder": "",
|
|
"list": false,
|
|
"show": false,
|
|
"multiline": false,
|
|
"fileTypes": [],
|
|
"password": false,
|
|
"name": "default_query",
|
|
"advanced": false,
|
|
"dynamic": false,
|
|
"info": ""
|
|
},
|
|
"http_client": {
|
|
"type": "Any",
|
|
"required": false,
|
|
"placeholder": "",
|
|
"list": false,
|
|
"show": false,
|
|
"multiline": false,
|
|
"fileTypes": [],
|
|
"password": false,
|
|
"name": "http_client",
|
|
"advanced": false,
|
|
"dynamic": false,
|
|
"info": ""
|
|
},
|
|
"max_retries": {
|
|
"type": "int",
|
|
"required": false,
|
|
"placeholder": "",
|
|
"list": false,
|
|
"show": false,
|
|
"multiline": false,
|
|
"value": 2,
|
|
"fileTypes": [],
|
|
"password": false,
|
|
"name": "max_retries",
|
|
"advanced": false,
|
|
"dynamic": false,
|
|
"info": ""
|
|
},
|
|
"max_tokens": {
|
|
"type": "int",
|
|
"required": false,
|
|
"placeholder": "",
|
|
"list": false,
|
|
"show": true,
|
|
"multiline": false,
|
|
"fileTypes": [],
|
|
"password": true,
|
|
"name": "max_tokens",
|
|
"advanced": false,
|
|
"dynamic": false,
|
|
"info": "",
|
|
"value": ""
|
|
},
|
|
"metadata": {
|
|
"type": "dict",
|
|
"required": false,
|
|
"placeholder": "",
|
|
"list": false,
|
|
"show": false,
|
|
"multiline": false,
|
|
"fileTypes": [],
|
|
"password": false,
|
|
"name": "metadata",
|
|
"advanced": false,
|
|
"dynamic": false,
|
|
"info": ""
|
|
},
|
|
"model_kwargs": {
|
|
"type": "dict",
|
|
"required": false,
|
|
"placeholder": "",
|
|
"list": false,
|
|
"show": true,
|
|
"multiline": false,
|
|
"fileTypes": [],
|
|
"password": false,
|
|
"name": "model_kwargs",
|
|
"advanced": true,
|
|
"dynamic": false,
|
|
"info": ""
|
|
},
|
|
"model_name": {
|
|
"type": "str",
|
|
"required": false,
|
|
"placeholder": "",
|
|
"list": true,
|
|
"show": true,
|
|
"multiline": false,
|
|
"value": "gpt-3.5-turbo-16k",
|
|
"fileTypes": [],
|
|
"password": false,
|
|
"options": [
|
|
"gpt-4-1106-preview",
|
|
"gpt-4-vision-preview",
|
|
"gpt-4",
|
|
"gpt-4-32k",
|
|
"gpt-3.5-turbo",
|
|
"gpt-3.5-turbo-16k"
|
|
],
|
|
"name": "model_name",
|
|
"advanced": false,
|
|
"dynamic": false,
|
|
"info": ""
|
|
},
|
|
"n": {
|
|
"type": "int",
|
|
"required": false,
|
|
"placeholder": "",
|
|
"list": false,
|
|
"show": false,
|
|
"multiline": false,
|
|
"value": 1,
|
|
"fileTypes": [],
|
|
"password": false,
|
|
"name": "n",
|
|
"advanced": false,
|
|
"dynamic": false,
|
|
"info": ""
|
|
},
|
|
"name": {
|
|
"type": "str",
|
|
"required": false,
|
|
"placeholder": "",
|
|
"list": false,
|
|
"show": false,
|
|
"multiline": false,
|
|
"fileTypes": [],
|
|
"password": false,
|
|
"name": "name",
|
|
"advanced": false,
|
|
"dynamic": false,
|
|
"info": ""
|
|
},
|
|
"openai_api_base": {
|
|
"type": "str",
|
|
"required": false,
|
|
"placeholder": "",
|
|
"list": false,
|
|
"show": true,
|
|
"multiline": false,
|
|
"fileTypes": [],
|
|
"password": false,
|
|
"name": "openai_api_base",
|
|
"display_name": "OpenAI API Base",
|
|
"advanced": false,
|
|
"dynamic": false,
|
|
"info": "\nThe base URL of the OpenAI API. Defaults to https://api.openai.com/v1.\n\nYou can change this to use other APIs like JinaChat, LocalAI and Prem.\n"
|
|
},
|
|
"openai_api_key": {
|
|
"type": "str",
|
|
"required": false,
|
|
"placeholder": "",
|
|
"list": false,
|
|
"show": true,
|
|
"multiline": false,
|
|
"value": "",
|
|
"fileTypes": [],
|
|
"password": true,
|
|
"name": "openai_api_key",
|
|
"display_name": "OpenAI API Key",
|
|
"advanced": false,
|
|
"dynamic": false,
|
|
"info": ""
|
|
},
|
|
"openai_organization": {
|
|
"type": "str",
|
|
"required": false,
|
|
"placeholder": "",
|
|
"list": false,
|
|
"show": false,
|
|
"multiline": false,
|
|
"fileTypes": [],
|
|
"password": false,
|
|
"name": "openai_organization",
|
|
"display_name": "OpenAI Organization",
|
|
"advanced": false,
|
|
"dynamic": false,
|
|
"info": ""
|
|
},
|
|
"openai_proxy": {
|
|
"type": "str",
|
|
"required": false,
|
|
"placeholder": "",
|
|
"list": false,
|
|
"show": false,
|
|
"multiline": false,
|
|
"fileTypes": [],
|
|
"password": false,
|
|
"name": "openai_proxy",
|
|
"display_name": "OpenAI Proxy",
|
|
"advanced": false,
|
|
"dynamic": false,
|
|
"info": ""
|
|
},
|
|
"request_timeout": {
|
|
"type": "float",
|
|
"required": false,
|
|
"placeholder": "",
|
|
"list": false,
|
|
"show": false,
|
|
"multiline": false,
|
|
"fileTypes": [],
|
|
"password": false,
|
|
"name": "request_timeout",
|
|
"advanced": false,
|
|
"dynamic": false,
|
|
"info": "",
|
|
"rangeSpec": {
|
|
"min": -1,
|
|
"max": 1,
|
|
"step": 0.1
|
|
}
|
|
},
|
|
"streaming": {
|
|
"type": "bool",
|
|
"required": false,
|
|
"placeholder": "",
|
|
"list": false,
|
|
"show": false,
|
|
"multiline": false,
|
|
"value": false,
|
|
"fileTypes": [],
|
|
"password": false,
|
|
"name": "streaming",
|
|
"advanced": false,
|
|
"dynamic": false,
|
|
"info": ""
|
|
},
|
|
"tags": {
|
|
"type": "str",
|
|
"required": false,
|
|
"placeholder": "",
|
|
"list": true,
|
|
"show": false,
|
|
"multiline": false,
|
|
"fileTypes": [],
|
|
"password": false,
|
|
"name": "tags",
|
|
"advanced": false,
|
|
"dynamic": false,
|
|
"info": ""
|
|
},
|
|
"temperature": {
|
|
"type": "float",
|
|
"required": false,
|
|
"placeholder": "",
|
|
"list": false,
|
|
"show": true,
|
|
"multiline": false,
|
|
"value": "0.5",
|
|
"fileTypes": [],
|
|
"password": false,
|
|
"name": "temperature",
|
|
"advanced": false,
|
|
"dynamic": false,
|
|
"info": "",
|
|
"rangeSpec": {
|
|
"min": -1,
|
|
"max": 1,
|
|
"step": 0.1
|
|
}
|
|
},
|
|
"tiktoken_model_name": {
|
|
"type": "str",
|
|
"required": false,
|
|
"placeholder": "",
|
|
"list": false,
|
|
"show": false,
|
|
"multiline": false,
|
|
"fileTypes": [],
|
|
"password": false,
|
|
"name": "tiktoken_model_name",
|
|
"advanced": false,
|
|
"dynamic": false,
|
|
"info": ""
|
|
},
|
|
"verbose": {
|
|
"type": "bool",
|
|
"required": false,
|
|
"placeholder": "",
|
|
"list": false,
|
|
"show": false,
|
|
"multiline": false,
|
|
"value": false,
|
|
"fileTypes": [],
|
|
"password": false,
|
|
"name": "verbose",
|
|
"advanced": false,
|
|
"dynamic": false,
|
|
"info": ""
|
|
},
|
|
"_type": "ChatOpenAI"
|
|
},
|
|
"description": "[*Deprecated*] `OpenAI` Chat large language models API.",
|
|
"base_classes": [
|
|
"BaseLanguageModel",
|
|
"BaseChatModel",
|
|
"ChatOpenAI",
|
|
"BaseLLM"
|
|
],
|
|
"display_name": "ChatOpenAI",
|
|
"documentation": "https://python.langchain.com/docs/modules/model_io/models/chat/integrations/openai",
|
|
"custom_fields": {},
|
|
"output_types": [],
|
|
"field_formatters": {},
|
|
"beta": false
|
|
},
|
|
"id": "ChatOpenAI-4Mfuz"
|
|
},
|
|
"selected": false,
|
|
"width": 384,
|
|
"height": 649,
|
|
"positionAbsolute": {
|
|
"x": -2243.8068684913856,
|
|
"y": -2026.350019258601
|
|
},
|
|
"dragging": false
|
|
},
|
|
{
|
|
"id": "CharacterTextSplitter-WVMFU",
|
|
"type": "genericNode",
|
|
"position": {
|
|
"x": -2661.4749778477553,
|
|
"y": -1608.9437055023366
|
|
},
|
|
"data": {
|
|
"type": "CharacterTextSplitter",
|
|
"node": {
|
|
"template": {
|
|
"documents": {
|
|
"type": "Document",
|
|
"required": true,
|
|
"placeholder": "",
|
|
"list": true,
|
|
"show": true,
|
|
"multiline": false,
|
|
"value": "",
|
|
"fileTypes": [],
|
|
"file_path": "",
|
|
"password": false,
|
|
"name": "documents",
|
|
"advanced": false,
|
|
"dynamic": false,
|
|
"info": ""
|
|
},
|
|
"chunk_overlap": {
|
|
"type": "int",
|
|
"required": true,
|
|
"placeholder": "",
|
|
"list": false,
|
|
"show": true,
|
|
"multiline": false,
|
|
"value": 200,
|
|
"fileTypes": [],
|
|
"file_path": "",
|
|
"password": false,
|
|
"name": "chunk_overlap",
|
|
"display_name": "Chunk Overlap",
|
|
"advanced": false,
|
|
"dynamic": false,
|
|
"info": ""
|
|
},
|
|
"chunk_size": {
|
|
"type": "int",
|
|
"required": true,
|
|
"placeholder": "",
|
|
"list": false,
|
|
"show": true,
|
|
"multiline": false,
|
|
"value": "2000",
|
|
"fileTypes": [],
|
|
"file_path": "",
|
|
"password": false,
|
|
"name": "chunk_size",
|
|
"display_name": "Chunk Size",
|
|
"advanced": false,
|
|
"dynamic": false,
|
|
"info": ""
|
|
},
|
|
"separator": {
|
|
"type": "str",
|
|
"required": true,
|
|
"placeholder": "",
|
|
"list": false,
|
|
"show": true,
|
|
"multiline": false,
|
|
"value": "\"",
|
|
"fileTypes": [],
|
|
"file_path": "",
|
|
"password": false,
|
|
"name": "separator",
|
|
"display_name": "Separator",
|
|
"advanced": false,
|
|
"dynamic": false,
|
|
"info": ""
|
|
},
|
|
"_type": "CharacterTextSplitter"
|
|
},
|
|
"description": "Splitting text that looks at characters.",
|
|
"base_classes": [
|
|
"Document"
|
|
],
|
|
"display_name": "CharacterTextSplitter",
|
|
"documentation": "https://python.langchain.com/docs/modules/data_connection/document_transformers/text_splitters/character_text_splitter",
|
|
"custom_fields": {},
|
|
"output_types": [
|
|
"Document"
|
|
],
|
|
"field_formatters": {},
|
|
"beta": false
|
|
},
|
|
"id": "CharacterTextSplitter-WVMFU"
|
|
},
|
|
"selected": false,
|
|
"width": 384,
|
|
"height": 501,
|
|
"positionAbsolute": {
|
|
"x": -2661.4749778477553,
|
|
"y": -1608.9437055023366
|
|
},
|
|
"dragging": false
|
|
},
|
|
{
|
|
"id": "Chroma-OtYDg",
|
|
"type": "genericNode",
|
|
"position": {
|
|
"x": -2194.2051907050227,
|
|
"y": -1370.1637632208287
|
|
},
|
|
"data": {
|
|
"type": "Chroma",
|
|
"node": {
|
|
"template": {
|
|
"documents": {
|
|
"type": "Document",
|
|
"required": false,
|
|
"placeholder": "",
|
|
"list": true,
|
|
"show": true,
|
|
"multiline": false,
|
|
"fileTypes": [],
|
|
"file_path": "",
|
|
"password": false,
|
|
"name": "documents",
|
|
"display_name": "Documents",
|
|
"advanced": false,
|
|
"dynamic": false,
|
|
"info": ""
|
|
},
|
|
"embedding": {
|
|
"type": "Embeddings",
|
|
"required": true,
|
|
"placeholder": "",
|
|
"list": false,
|
|
"show": true,
|
|
"multiline": false,
|
|
"fileTypes": [],
|
|
"file_path": "",
|
|
"password": false,
|
|
"name": "embedding",
|
|
"display_name": "Embedding",
|
|
"advanced": false,
|
|
"dynamic": false,
|
|
"info": ""
|
|
},
|
|
"chroma_server_cors_allow_origins": {
|
|
"type": "str",
|
|
"required": false,
|
|
"placeholder": "",
|
|
"list": false,
|
|
"show": true,
|
|
"multiline": false,
|
|
"fileTypes": [],
|
|
"file_path": "",
|
|
"password": false,
|
|
"name": "chroma_server_cors_allow_origins",
|
|
"display_name": "Server CORS Allow Origins",
|
|
"advanced": true,
|
|
"dynamic": false,
|
|
"info": ""
|
|
},
|
|
"chroma_server_grpc_port": {
|
|
"type": "int",
|
|
"required": false,
|
|
"placeholder": "",
|
|
"list": false,
|
|
"show": true,
|
|
"multiline": false,
|
|
"fileTypes": [],
|
|
"file_path": "",
|
|
"password": false,
|
|
"name": "chroma_server_grpc_port",
|
|
"display_name": "Server gRPC Port",
|
|
"advanced": true,
|
|
"dynamic": false,
|
|
"info": ""
|
|
},
|
|
"chroma_server_host": {
|
|
"type": "str",
|
|
"required": false,
|
|
"placeholder": "",
|
|
"list": false,
|
|
"show": true,
|
|
"multiline": false,
|
|
"fileTypes": [],
|
|
"file_path": "",
|
|
"password": false,
|
|
"name": "chroma_server_host",
|
|
"display_name": "Server Host",
|
|
"advanced": true,
|
|
"dynamic": false,
|
|
"info": ""
|
|
},
|
|
"chroma_server_port": {
|
|
"type": "int",
|
|
"required": false,
|
|
"placeholder": "",
|
|
"list": false,
|
|
"show": true,
|
|
"multiline": false,
|
|
"fileTypes": [],
|
|
"file_path": "",
|
|
"password": false,
|
|
"name": "chroma_server_port",
|
|
"display_name": "Server Port",
|
|
"advanced": true,
|
|
"dynamic": false,
|
|
"info": ""
|
|
},
|
|
"chroma_server_ssl_enabled": {
|
|
"type": "bool",
|
|
"required": true,
|
|
"placeholder": "",
|
|
"list": false,
|
|
"show": true,
|
|
"multiline": false,
|
|
"value": false,
|
|
"fileTypes": [],
|
|
"file_path": "",
|
|
"password": false,
|
|
"name": "chroma_server_ssl_enabled",
|
|
"display_name": "Server SSL Enabled",
|
|
"advanced": true,
|
|
"dynamic": false,
|
|
"info": ""
|
|
},
|
|
"code": {
|
|
"type": "code",
|
|
"required": true,
|
|
"placeholder": "",
|
|
"list": false,
|
|
"show": true,
|
|
"multiline": true,
|
|
"value": "from typing import List, Optional, Union\n\nimport chromadb # type: ignore\nfrom langchain.embeddings.base import Embeddings\nfrom langchain.schema import BaseRetriever, Document\nfrom langchain.vectorstores import Chroma\nfrom langchain.vectorstores.base import VectorStore\n\nfrom langflow.custom import CustomComponent\n\n\nclass ChromaComponent(CustomComponent):\n \"\"\"\n A custom component for implementing a Vector Store using Chroma.\n \"\"\"\n\n display_name: str = \"Chroma\"\n description: str = \"Implementation of Vector Store using Chroma\"\n documentation = \"https://python.langchain.com/docs/integrations/vectorstores/chroma\"\n beta: bool = True\n\n def build_config(self):\n \"\"\"\n Builds the configuration for the component.\n\n Returns:\n - dict: A dictionary containing the configuration options for the component.\n \"\"\"\n return {\n \"collection_name\": {\"display_name\": \"Collection Name\", \"value\": \"langflow\"},\n \"persist\": {\"display_name\": \"Persist\"},\n \"persist_directory\": {\"display_name\": \"Persist Directory\"},\n \"code\": {\"show\": False, \"display_name\": \"Code\"},\n \"documents\": {\"display_name\": \"Documents\", \"is_list\": True},\n \"embedding\": {\"display_name\": \"Embedding\"},\n \"chroma_server_cors_allow_origins\": {\n \"display_name\": \"Server CORS Allow Origins\",\n \"advanced\": True,\n },\n \"chroma_server_host\": {\"display_name\": \"Server Host\", \"advanced\": True},\n \"chroma_server_port\": {\"display_name\": \"Server Port\", \"advanced\": True},\n \"chroma_server_grpc_port\": {\n \"display_name\": \"Server gRPC Port\",\n \"advanced\": True,\n },\n \"chroma_server_ssl_enabled\": {\n \"display_name\": \"Server SSL Enabled\",\n \"advanced\": True,\n },\n }\n\n def build(\n self,\n collection_name: str,\n persist: bool,\n embedding: Embeddings,\n chroma_server_ssl_enabled: bool,\n persist_directory: Optional[str] = None,\n documents: Optional[List[Document]] = None,\n chroma_server_cors_allow_origins: Optional[str] = None,\n chroma_server_host: Optional[str] = None,\n chroma_server_port: Optional[int] = None,\n chroma_server_grpc_port: Optional[int] = None,\n ) -> Union[VectorStore, BaseRetriever]:\n \"\"\"\n Builds the Vector Store or BaseRetriever object.\n\n Args:\n - collection_name (str): The name of the collection.\n - persist_directory (Optional[str]): The directory to persist the Vector Store to.\n - chroma_server_ssl_enabled (bool): Whether to enable SSL for the Chroma server.\n - persist (bool): Whether to persist the Vector Store or not.\n - embedding (Optional[Embeddings]): The embeddings to use for the Vector Store.\n - documents (Optional[Document]): The documents to use for the Vector Store.\n - chroma_server_cors_allow_origins (Optional[str]): The CORS allow origins for the Chroma server.\n - chroma_server_host (Optional[str]): The host for the Chroma server.\n - chroma_server_port (Optional[int]): The port for the Chroma server.\n - chroma_server_grpc_port (Optional[int]): The gRPC port for the Chroma server.\n\n Returns:\n - Union[VectorStore, BaseRetriever]: The Vector Store or BaseRetriever object.\n \"\"\"\n\n # Chroma settings\n chroma_settings = None\n\n if chroma_server_host is not None:\n chroma_settings = chromadb.config.Settings(\n chroma_server_cors_allow_origins=chroma_server_cors_allow_origins or None,\n chroma_server_host=chroma_server_host,\n chroma_server_port=chroma_server_port or None,\n chroma_server_grpc_port=chroma_server_grpc_port or None,\n chroma_server_ssl_enabled=chroma_server_ssl_enabled,\n )\n\n # If documents, then we need to create a Chroma instance using .from_documents\n if documents is not None and embedding is not None:\n if len(documents) == 0:\n raise ValueError(\"If documents are provided, there must be at least one document.\")\n return Chroma.from_documents(\n documents=documents, # type: ignore\n persist_directory=persist_directory if persist else None,\n collection_name=collection_name,\n embedding=embedding,\n client_settings=chroma_settings,\n )\n\n return Chroma(persist_directory=persist_directory, client_settings=chroma_settings)\n",
|
|
"fileTypes": [],
|
|
"file_path": "",
|
|
"password": false,
|
|
"name": "code",
|
|
"advanced": false,
|
|
"dynamic": true,
|
|
"info": ""
|
|
},
|
|
"collection_name": {
|
|
"type": "str",
|
|
"required": true,
|
|
"placeholder": "",
|
|
"list": false,
|
|
"show": true,
|
|
"multiline": false,
|
|
"value": "video",
|
|
"fileTypes": [],
|
|
"file_path": "",
|
|
"password": false,
|
|
"name": "collection_name",
|
|
"display_name": "Collection Name",
|
|
"advanced": false,
|
|
"dynamic": false,
|
|
"info": ""
|
|
},
|
|
"persist": {
|
|
"type": "bool",
|
|
"required": true,
|
|
"placeholder": "",
|
|
"list": false,
|
|
"show": true,
|
|
"multiline": false,
|
|
"value": false,
|
|
"fileTypes": [],
|
|
"file_path": "",
|
|
"password": false,
|
|
"name": "persist",
|
|
"display_name": "Persist",
|
|
"advanced": false,
|
|
"dynamic": false,
|
|
"info": ""
|
|
},
|
|
"persist_directory": {
|
|
"type": "str",
|
|
"required": false,
|
|
"placeholder": "",
|
|
"list": false,
|
|
"show": true,
|
|
"multiline": false,
|
|
"fileTypes": [],
|
|
"file_path": "",
|
|
"password": false,
|
|
"name": "persist_directory",
|
|
"display_name": "Persist Directory",
|
|
"advanced": false,
|
|
"dynamic": false,
|
|
"info": ""
|
|
},
|
|
"_type": "CustomComponent"
|
|
},
|
|
"description": "Implementation of Vector Store using Chroma",
|
|
"base_classes": [
|
|
"VectorStore",
|
|
"BaseRetriever"
|
|
],
|
|
"display_name": "Chroma",
|
|
"documentation": "https://python.langchain.com/docs/integrations/vectorstores/chroma",
|
|
"custom_fields": {
|
|
"chroma_server_cors_allow_origins": null,
|
|
"chroma_server_grpc_port": null,
|
|
"chroma_server_host": null,
|
|
"chroma_server_port": null,
|
|
"chroma_server_ssl_enabled": null,
|
|
"collection_name": null,
|
|
"documents": null,
|
|
"embedding": null,
|
|
"persist": null,
|
|
"persist_directory": null
|
|
},
|
|
"output_types": [
|
|
"Chroma"
|
|
],
|
|
"field_formatters": {},
|
|
"beta": true
|
|
},
|
|
"id": "Chroma-OtYDg"
|
|
},
|
|
"selected": false,
|
|
"width": 384,
|
|
"height": 625,
|
|
"positionAbsolute": {
|
|
"x": -2194.2051907050227,
|
|
"y": -1370.1637632208287
|
|
},
|
|
"dragging": false
|
|
},
|
|
{
|
|
"id": "OpenAIEmbeddings-9yqtI",
|
|
"type": "genericNode",
|
|
"position": {
|
|
"x": -2653.011009324626,
|
|
"y": -1103.8414515074774
|
|
},
|
|
"data": {
|
|
"type": "OpenAIEmbeddings",
|
|
"node": {
|
|
"template": {
|
|
"allowed_special": {
|
|
"type": "str",
|
|
"required": false,
|
|
"placeholder": "",
|
|
"list": true,
|
|
"show": true,
|
|
"multiline": false,
|
|
"value": [],
|
|
"fileTypes": [],
|
|
"password": false,
|
|
"name": "allowed_special",
|
|
"advanced": true,
|
|
"dynamic": false,
|
|
"info": ""
|
|
},
|
|
"async_client": {
|
|
"type": "Any",
|
|
"required": false,
|
|
"placeholder": "",
|
|
"list": false,
|
|
"show": true,
|
|
"multiline": false,
|
|
"fileTypes": [],
|
|
"password": false,
|
|
"name": "async_client",
|
|
"advanced": true,
|
|
"dynamic": false,
|
|
"info": ""
|
|
},
|
|
"chunk_size": {
|
|
"type": "int",
|
|
"required": false,
|
|
"placeholder": "",
|
|
"list": false,
|
|
"show": true,
|
|
"multiline": false,
|
|
"value": 1000,
|
|
"fileTypes": [],
|
|
"password": false,
|
|
"name": "chunk_size",
|
|
"advanced": true,
|
|
"dynamic": false,
|
|
"info": ""
|
|
},
|
|
"client": {
|
|
"type": "Any",
|
|
"required": false,
|
|
"placeholder": "",
|
|
"list": false,
|
|
"show": true,
|
|
"multiline": false,
|
|
"fileTypes": [],
|
|
"password": false,
|
|
"name": "client",
|
|
"advanced": true,
|
|
"dynamic": false,
|
|
"info": ""
|
|
},
|
|
"default_headers": {
|
|
"type": "dict",
|
|
"required": false,
|
|
"placeholder": "",
|
|
"list": false,
|
|
"show": true,
|
|
"multiline": false,
|
|
"fileTypes": [],
|
|
"password": false,
|
|
"name": "default_headers",
|
|
"advanced": true,
|
|
"dynamic": false,
|
|
"info": ""
|
|
},
|
|
"default_query": {
|
|
"type": "dict",
|
|
"required": false,
|
|
"placeholder": "",
|
|
"list": false,
|
|
"show": true,
|
|
"multiline": false,
|
|
"fileTypes": [],
|
|
"password": false,
|
|
"name": "default_query",
|
|
"advanced": true,
|
|
"dynamic": false,
|
|
"info": ""
|
|
},
|
|
"deployment": {
|
|
"type": "str",
|
|
"required": false,
|
|
"placeholder": "",
|
|
"list": false,
|
|
"show": true,
|
|
"multiline": false,
|
|
"value": "text-embedding-ada-002",
|
|
"fileTypes": [],
|
|
"password": false,
|
|
"name": "deployment",
|
|
"advanced": true,
|
|
"dynamic": false,
|
|
"info": ""
|
|
},
|
|
"disallowed_special": {
|
|
"type": "str",
|
|
"required": false,
|
|
"placeholder": "",
|
|
"list": true,
|
|
"show": true,
|
|
"multiline": false,
|
|
"value": "all",
|
|
"fileTypes": [],
|
|
"password": false,
|
|
"name": "disallowed_special",
|
|
"advanced": true,
|
|
"dynamic": false,
|
|
"info": ""
|
|
},
|
|
"embedding_ctx_length": {
|
|
"type": "int",
|
|
"required": false,
|
|
"placeholder": "",
|
|
"list": false,
|
|
"show": true,
|
|
"multiline": false,
|
|
"value": 8191,
|
|
"fileTypes": [],
|
|
"password": false,
|
|
"name": "embedding_ctx_length",
|
|
"advanced": true,
|
|
"dynamic": false,
|
|
"info": ""
|
|
},
|
|
"headers": {
|
|
"type": "Any",
|
|
"required": false,
|
|
"placeholder": "",
|
|
"list": false,
|
|
"show": false,
|
|
"multiline": true,
|
|
"value": "{\"Authorization\": \"Bearer <token>\"}",
|
|
"fileTypes": [],
|
|
"password": false,
|
|
"name": "headers",
|
|
"advanced": true,
|
|
"dynamic": false,
|
|
"info": ""
|
|
},
|
|
"http_client": {
|
|
"type": "Any",
|
|
"required": false,
|
|
"placeholder": "",
|
|
"list": false,
|
|
"show": true,
|
|
"multiline": false,
|
|
"fileTypes": [],
|
|
"password": false,
|
|
"name": "http_client",
|
|
"advanced": true,
|
|
"dynamic": false,
|
|
"info": ""
|
|
},
|
|
"max_retries": {
|
|
"type": "int",
|
|
"required": false,
|
|
"placeholder": "",
|
|
"list": false,
|
|
"show": true,
|
|
"multiline": false,
|
|
"value": 2,
|
|
"fileTypes": [],
|
|
"password": false,
|
|
"name": "max_retries",
|
|
"advanced": true,
|
|
"dynamic": false,
|
|
"info": ""
|
|
},
|
|
"model": {
|
|
"type": "str",
|
|
"required": false,
|
|
"placeholder": "",
|
|
"list": false,
|
|
"show": true,
|
|
"multiline": false,
|
|
"value": "text-embedding-ada-002",
|
|
"fileTypes": [],
|
|
"password": false,
|
|
"name": "model",
|
|
"advanced": true,
|
|
"dynamic": false,
|
|
"info": ""
|
|
},
|
|
"model_kwargs": {
|
|
"type": "dict",
|
|
"required": false,
|
|
"placeholder": "",
|
|
"list": false,
|
|
"show": true,
|
|
"multiline": false,
|
|
"fileTypes": [],
|
|
"password": false,
|
|
"name": "model_kwargs",
|
|
"advanced": true,
|
|
"dynamic": false,
|
|
"info": ""
|
|
},
|
|
"openai_api_base": {
|
|
"type": "str",
|
|
"required": false,
|
|
"placeholder": "",
|
|
"list": false,
|
|
"show": true,
|
|
"multiline": false,
|
|
"fileTypes": [],
|
|
"password": true,
|
|
"name": "openai_api_base",
|
|
"display_name": "OpenAI API Base",
|
|
"advanced": true,
|
|
"dynamic": false,
|
|
"info": "",
|
|
"value": ""
|
|
},
|
|
"openai_api_key": {
|
|
"type": "str",
|
|
"required": false,
|
|
"placeholder": "",
|
|
"list": false,
|
|
"show": true,
|
|
"multiline": false,
|
|
"value": "",
|
|
"fileTypes": [],
|
|
"password": true,
|
|
"name": "openai_api_key",
|
|
"display_name": "OpenAI API Key",
|
|
"advanced": false,
|
|
"dynamic": false,
|
|
"info": ""
|
|
},
|
|
"openai_api_type": {
|
|
"type": "str",
|
|
"required": false,
|
|
"placeholder": "",
|
|
"list": false,
|
|
"show": true,
|
|
"multiline": false,
|
|
"fileTypes": [],
|
|
"password": true,
|
|
"name": "openai_api_type",
|
|
"display_name": "OpenAI API Type",
|
|
"advanced": true,
|
|
"dynamic": false,
|
|
"info": "",
|
|
"value": ""
|
|
},
|
|
"openai_api_version": {
|
|
"type": "str",
|
|
"required": false,
|
|
"placeholder": "",
|
|
"list": false,
|
|
"show": true,
|
|
"multiline": false,
|
|
"fileTypes": [],
|
|
"password": true,
|
|
"name": "openai_api_version",
|
|
"display_name": "OpenAI API Version",
|
|
"advanced": true,
|
|
"dynamic": false,
|
|
"info": "",
|
|
"value": ""
|
|
},
|
|
"openai_organization": {
|
|
"type": "str",
|
|
"required": false,
|
|
"placeholder": "",
|
|
"list": false,
|
|
"show": true,
|
|
"multiline": false,
|
|
"fileTypes": [],
|
|
"password": false,
|
|
"name": "openai_organization",
|
|
"display_name": "OpenAI Organization",
|
|
"advanced": true,
|
|
"dynamic": false,
|
|
"info": ""
|
|
},
|
|
"openai_proxy": {
|
|
"type": "str",
|
|
"required": false,
|
|
"placeholder": "",
|
|
"list": false,
|
|
"show": true,
|
|
"multiline": false,
|
|
"fileTypes": [],
|
|
"password": false,
|
|
"name": "openai_proxy",
|
|
"display_name": "OpenAI Proxy",
|
|
"advanced": true,
|
|
"dynamic": false,
|
|
"info": ""
|
|
},
|
|
"request_timeout": {
|
|
"type": "float",
|
|
"required": false,
|
|
"placeholder": "",
|
|
"list": false,
|
|
"show": true,
|
|
"multiline": false,
|
|
"fileTypes": [],
|
|
"password": false,
|
|
"name": "request_timeout",
|
|
"advanced": true,
|
|
"dynamic": false,
|
|
"info": "",
|
|
"rangeSpec": {
|
|
"min": -1,
|
|
"max": 1,
|
|
"step": 0.1
|
|
}
|
|
},
|
|
"retry_max_seconds": {
|
|
"type": "int",
|
|
"required": false,
|
|
"placeholder": "",
|
|
"list": false,
|
|
"show": true,
|
|
"multiline": false,
|
|
"value": 20,
|
|
"fileTypes": [],
|
|
"password": false,
|
|
"name": "retry_max_seconds",
|
|
"advanced": true,
|
|
"dynamic": false,
|
|
"info": ""
|
|
},
|
|
"retry_min_seconds": {
|
|
"type": "int",
|
|
"required": false,
|
|
"placeholder": "",
|
|
"list": false,
|
|
"show": true,
|
|
"multiline": false,
|
|
"value": 4,
|
|
"fileTypes": [],
|
|
"password": false,
|
|
"name": "retry_min_seconds",
|
|
"advanced": true,
|
|
"dynamic": false,
|
|
"info": ""
|
|
},
|
|
"show_progress_bar": {
|
|
"type": "bool",
|
|
"required": false,
|
|
"placeholder": "",
|
|
"list": false,
|
|
"show": true,
|
|
"multiline": false,
|
|
"value": false,
|
|
"fileTypes": [],
|
|
"password": false,
|
|
"name": "show_progress_bar",
|
|
"advanced": true,
|
|
"dynamic": false,
|
|
"info": ""
|
|
},
|
|
"skip_empty": {
|
|
"type": "bool",
|
|
"required": false,
|
|
"placeholder": "",
|
|
"list": false,
|
|
"show": true,
|
|
"multiline": false,
|
|
"value": false,
|
|
"fileTypes": [],
|
|
"password": false,
|
|
"name": "skip_empty",
|
|
"advanced": true,
|
|
"dynamic": false,
|
|
"info": ""
|
|
},
|
|
"tiktoken_enabled": {
|
|
"type": "bool",
|
|
"required": false,
|
|
"placeholder": "",
|
|
"list": false,
|
|
"show": true,
|
|
"multiline": false,
|
|
"value": "",
|
|
"fileTypes": [],
|
|
"password": true,
|
|
"name": "tiktoken_enabled",
|
|
"advanced": false,
|
|
"dynamic": false,
|
|
"info": ""
|
|
},
|
|
"tiktoken_model_name": {
|
|
"type": "str",
|
|
"required": false,
|
|
"placeholder": "",
|
|
"list": false,
|
|
"show": true,
|
|
"multiline": false,
|
|
"fileTypes": [],
|
|
"password": true,
|
|
"name": "tiktoken_model_name",
|
|
"advanced": false,
|
|
"dynamic": false,
|
|
"info": "",
|
|
"value": ""
|
|
},
|
|
"_type": "OpenAIEmbeddings"
|
|
},
|
|
"description": "[*Deprecated*] OpenAI embedding models.",
|
|
"base_classes": [
|
|
"Embeddings",
|
|
"OpenAIEmbeddings"
|
|
],
|
|
"display_name": "OpenAIEmbeddings",
|
|
"documentation": "https://python.langchain.com/docs/modules/data_connection/text_embedding/integrations/openai",
|
|
"custom_fields": {},
|
|
"output_types": [],
|
|
"field_formatters": {},
|
|
"beta": false
|
|
},
|
|
"id": "OpenAIEmbeddings-9yqtI"
|
|
},
|
|
"selected": false,
|
|
"width": 384,
|
|
"height": 443,
|
|
"positionAbsolute": {
|
|
"x": -2653.011009324626,
|
|
"y": -1103.8414515074774
|
|
},
|
|
"dragging": false
|
|
},
|
|
{
|
|
"id": "RetrievalQA-DpylI",
|
|
"type": "genericNode",
|
|
"position": {
|
|
"x": -1757.239471200792,
|
|
"y": -1258.2132589352987
|
|
},
|
|
"data": {
|
|
"type": "RetrievalQA",
|
|
"node": {
|
|
"template": {
|
|
"callbacks": {
|
|
"type": "langchain_core.callbacks.base.BaseCallbackHandler",
|
|
"required": false,
|
|
"placeholder": "",
|
|
"list": true,
|
|
"show": false,
|
|
"multiline": false,
|
|
"fileTypes": [],
|
|
"password": false,
|
|
"name": "callbacks",
|
|
"advanced": false,
|
|
"dynamic": false,
|
|
"info": ""
|
|
},
|
|
"combine_documents_chain": {
|
|
"type": "BaseCombineDocumentsChain",
|
|
"required": true,
|
|
"placeholder": "",
|
|
"list": false,
|
|
"show": true,
|
|
"multiline": false,
|
|
"fileTypes": [],
|
|
"password": false,
|
|
"name": "combine_documents_chain",
|
|
"advanced": false,
|
|
"dynamic": false,
|
|
"info": ""
|
|
},
|
|
"memory": {
|
|
"type": "BaseMemory",
|
|
"required": false,
|
|
"placeholder": "",
|
|
"list": false,
|
|
"show": true,
|
|
"multiline": false,
|
|
"fileTypes": [],
|
|
"password": false,
|
|
"name": "memory",
|
|
"advanced": false,
|
|
"dynamic": false,
|
|
"info": ""
|
|
},
|
|
"retriever": {
|
|
"type": "BaseRetriever",
|
|
"required": true,
|
|
"placeholder": "",
|
|
"list": false,
|
|
"show": true,
|
|
"multiline": false,
|
|
"fileTypes": [],
|
|
"password": false,
|
|
"name": "retriever",
|
|
"advanced": false,
|
|
"dynamic": false,
|
|
"info": ""
|
|
},
|
|
"input_key": {
|
|
"type": "str",
|
|
"required": true,
|
|
"placeholder": "",
|
|
"list": false,
|
|
"show": true,
|
|
"multiline": false,
|
|
"value": "query",
|
|
"fileTypes": [],
|
|
"password": false,
|
|
"name": "input_key",
|
|
"advanced": true,
|
|
"dynamic": false,
|
|
"info": ""
|
|
},
|
|
"metadata": {
|
|
"type": "dict",
|
|
"required": false,
|
|
"placeholder": "",
|
|
"list": false,
|
|
"show": false,
|
|
"multiline": false,
|
|
"fileTypes": [],
|
|
"password": false,
|
|
"name": "metadata",
|
|
"advanced": false,
|
|
"dynamic": false,
|
|
"info": ""
|
|
},
|
|
"name": {
|
|
"type": "str",
|
|
"required": false,
|
|
"placeholder": "",
|
|
"list": false,
|
|
"show": false,
|
|
"multiline": false,
|
|
"fileTypes": [],
|
|
"password": false,
|
|
"name": "name",
|
|
"advanced": false,
|
|
"dynamic": false,
|
|
"info": ""
|
|
},
|
|
"output_key": {
|
|
"type": "str",
|
|
"required": true,
|
|
"placeholder": "",
|
|
"list": false,
|
|
"show": true,
|
|
"multiline": false,
|
|
"value": "result",
|
|
"fileTypes": [],
|
|
"password": false,
|
|
"name": "output_key",
|
|
"advanced": true,
|
|
"dynamic": false,
|
|
"info": ""
|
|
},
|
|
"return_source_documents": {
|
|
"type": "bool",
|
|
"required": false,
|
|
"placeholder": "",
|
|
"list": false,
|
|
"show": true,
|
|
"multiline": false,
|
|
"value": true,
|
|
"fileTypes": [],
|
|
"password": false,
|
|
"name": "return_source_documents",
|
|
"advanced": true,
|
|
"dynamic": false,
|
|
"info": ""
|
|
},
|
|
"tags": {
|
|
"type": "str",
|
|
"required": false,
|
|
"placeholder": "",
|
|
"list": true,
|
|
"show": false,
|
|
"multiline": false,
|
|
"fileTypes": [],
|
|
"password": false,
|
|
"name": "tags",
|
|
"advanced": false,
|
|
"dynamic": false,
|
|
"info": ""
|
|
},
|
|
"verbose": {
|
|
"type": "bool",
|
|
"required": false,
|
|
"placeholder": "",
|
|
"list": false,
|
|
"show": false,
|
|
"multiline": false,
|
|
"fileTypes": [],
|
|
"password": false,
|
|
"name": "verbose",
|
|
"advanced": true,
|
|
"dynamic": false,
|
|
"info": ""
|
|
},
|
|
"_type": "RetrievalQA"
|
|
},
|
|
"description": "Chain for question-answering against an index.",
|
|
"base_classes": [
|
|
"Chain",
|
|
"RetrievalQA",
|
|
"BaseRetrievalQA",
|
|
"Callable"
|
|
],
|
|
"display_name": "RetrievalQA",
|
|
"documentation": "https://python.langchain.com/docs/modules/chains/popular/vector_db_qa",
|
|
"custom_fields": {},
|
|
"output_types": [],
|
|
"field_formatters": {},
|
|
"beta": false
|
|
},
|
|
"id": "RetrievalQA-DpylI"
|
|
},
|
|
"selected": false,
|
|
"width": 384,
|
|
"height": 339,
|
|
"positionAbsolute": {
|
|
"x": -1757.239471200792,
|
|
"y": -1258.2132589352987
|
|
},
|
|
"dragging": true
|
|
},
|
|
{
|
|
"id": "CombineDocsChain-afKOq",
|
|
"type": "genericNode",
|
|
"position": {
|
|
"x": -1775.9040057312934,
|
|
"y": -1644.0423777157919
|
|
},
|
|
"data": {
|
|
"type": "CombineDocsChain",
|
|
"node": {
|
|
"template": {
|
|
"llm": {
|
|
"type": "BaseLanguageModel",
|
|
"required": true,
|
|
"placeholder": "",
|
|
"list": false,
|
|
"show": true,
|
|
"multiline": false,
|
|
"value": "",
|
|
"fileTypes": [],
|
|
"file_path": "",
|
|
"password": false,
|
|
"name": "llm",
|
|
"display_name": "LLM",
|
|
"advanced": false,
|
|
"dynamic": false,
|
|
"info": ""
|
|
},
|
|
"chain_type": {
|
|
"type": "str",
|
|
"required": true,
|
|
"placeholder": "",
|
|
"list": true,
|
|
"show": true,
|
|
"multiline": false,
|
|
"value": "refine",
|
|
"fileTypes": [],
|
|
"file_path": "",
|
|
"password": false,
|
|
"options": [
|
|
"stuff",
|
|
"map_reduce",
|
|
"map_rerank",
|
|
"refine"
|
|
],
|
|
"name": "chain_type",
|
|
"advanced": false,
|
|
"dynamic": false,
|
|
"info": ""
|
|
},
|
|
"_type": "load_qa_chain"
|
|
},
|
|
"description": "Load question answering chain.",
|
|
"base_classes": [
|
|
"BaseCombineDocumentsChain",
|
|
"Callable"
|
|
],
|
|
"display_name": "CombineDocsChain",
|
|
"documentation": "",
|
|
"custom_fields": {},
|
|
"output_types": [],
|
|
"field_formatters": {},
|
|
"beta": false
|
|
},
|
|
"id": "CombineDocsChain-afKOq"
|
|
},
|
|
"selected": false,
|
|
"width": 384,
|
|
"height": 333,
|
|
"dragging": false,
|
|
"positionAbsolute": {
|
|
"x": -1775.9040057312934,
|
|
"y": -1644.0423777157919
|
|
}
|
|
},
|
|
{
|
|
"id": "SearchApi-kZmEj",
|
|
"type": "genericNode",
|
|
"position": {
|
|
"x": -3074.364183247263,
|
|
"y": -1782.5742787937606
|
|
},
|
|
"data": {
|
|
"type": "SearchApi",
|
|
"node": {
|
|
"template": {
|
|
"api_key": {
|
|
"type": "str",
|
|
"required": true,
|
|
"placeholder": "",
|
|
"list": false,
|
|
"show": true,
|
|
"multiline": false,
|
|
"fileTypes": [],
|
|
"file_path": "",
|
|
"password": true,
|
|
"name": "api_key",
|
|
"display_name": "API Key",
|
|
"advanced": false,
|
|
"dynamic": false,
|
|
"info": "The API key to use SearchApi.",
|
|
"value": ""
|
|
},
|
|
"code": {
|
|
"type": "code",
|
|
"required": true,
|
|
"placeholder": "",
|
|
"list": false,
|
|
"show": true,
|
|
"multiline": true,
|
|
"value": "from langflow.custom import CustomComponent\nfrom langchain.schema import Document\nfrom langflow.services.database.models.base import orjson_dumps\nfrom langchain_community.utilities.searchapi import SearchApiAPIWrapper\nfrom typing import Optional\n\n\nclass SearchApi(CustomComponent):\n display_name: str = \"SearchApi\"\n description: str = \"Real-time search engines API.\"\n output_types: list[str] = [\"Document\"]\n documentation: str = \"https://www.searchapi.io/docs/google\"\n field_config = {\n \"engine\": {\n \"display_name\": \"Engine\",\n \"field_type\": \"str\",\n \"info\": \"The search engine to use.\",\n },\n \"params\": {\n \"display_name\": \"Parameters\",\n \"info\": \"The parameters to send with the request.\",\n },\n \"code\": {\"show\": False},\n \"api_key\": {\n \"display_name\": \"API Key\",\n \"field_type\": \"str\",\n \"required\": True, \n \"password\": True,\n \"info\": \"The API key to use SearchApi.\",\n },\n }\n\n def build(\n self,\n engine: str,\n api_key: str,\n params: Optional[dict] = None,\n ) -> Document:\n if params is None:\n params = {}\n\n search_api_wrapper = SearchApiAPIWrapper(engine=engine, searchapi_api_key=api_key)\n\n query = params.pop(\"query\", \"default query\") \n results = search_api_wrapper.results(query, **params)\n\n result = orjson_dumps(results, indent_2=False)\n \n document = Document(page_content=result) \n\n return document",
|
|
"fileTypes": [],
|
|
"file_path": "",
|
|
"password": false,
|
|
"name": "code",
|
|
"advanced": false,
|
|
"dynamic": true,
|
|
"info": ""
|
|
},
|
|
"engine": {
|
|
"type": "str",
|
|
"required": true,
|
|
"placeholder": "",
|
|
"list": false,
|
|
"show": true,
|
|
"multiline": false,
|
|
"fileTypes": [],
|
|
"file_path": "",
|
|
"password": false,
|
|
"name": "engine",
|
|
"display_name": "Engine",
|
|
"advanced": false,
|
|
"dynamic": false,
|
|
"info": "The search engine to use.",
|
|
"value": "youtube_transcripts"
|
|
},
|
|
"params": {
|
|
"type": "dict",
|
|
"required": false,
|
|
"placeholder": "",
|
|
"list": false,
|
|
"show": true,
|
|
"multiline": false,
|
|
"fileTypes": [],
|
|
"file_path": "",
|
|
"password": false,
|
|
"name": "params",
|
|
"display_name": "Parameters",
|
|
"advanced": false,
|
|
"dynamic": false,
|
|
"info": "The parameters to send with the request.",
|
|
"value": [
|
|
{
|
|
"video_id": "krsBRQbOPQ4"
|
|
}
|
|
]
|
|
},
|
|
"_type": "CustomComponent"
|
|
},
|
|
"description": "Real-time search engines API.",
|
|
"base_classes": [
|
|
"Document"
|
|
],
|
|
"display_name": "SearchApi",
|
|
"documentation": "https://www.searchapi.io/docs/google",
|
|
"custom_fields": {
|
|
"api_key": null,
|
|
"engine": null,
|
|
"params": null
|
|
},
|
|
"output_types": [
|
|
"SearchApi"
|
|
],
|
|
"field_formatters": {},
|
|
"beta": true
|
|
},
|
|
"id": "SearchApi-kZmEj"
|
|
},
|
|
"selected": false,
|
|
"width": 384,
|
|
"height": 539,
|
|
"dragging": false,
|
|
"positionAbsolute": {
|
|
"x": -3074.364183247263,
|
|
"y": -1782.5742787937606
|
|
}
|
|
}
|
|
],
|
|
"edges": [
|
|
{
|
|
"source": "CharacterTextSplitter-WVMFU",
|
|
"sourceHandle": "{œbaseClassesœ:[œDocumentœ],œdataTypeœ:œCharacterTextSplitterœ,œidœ:œCharacterTextSplitter-WVMFUœ}",
|
|
"target": "Chroma-OtYDg",
|
|
"targetHandle": "{œfieldNameœ:œdocumentsœ,œidœ:œChroma-OtYDgœ,œinputTypesœ:null,œtypeœ:œDocumentœ}",
|
|
"data": {
|
|
"targetHandle": {
|
|
"fieldName": "documents",
|
|
"id": "Chroma-OtYDg",
|
|
"inputTypes": null,
|
|
"type": "Document"
|
|
},
|
|
"sourceHandle": {
|
|
"baseClasses": [
|
|
"Document"
|
|
],
|
|
"dataType": "CharacterTextSplitter",
|
|
"id": "CharacterTextSplitter-WVMFU"
|
|
}
|
|
},
|
|
"style": {
|
|
"stroke": "#555"
|
|
},
|
|
"className": "stroke-gray-900 stroke-connection",
|
|
"animated": false,
|
|
"id": "reactflow__edge-CharacterTextSplitter-WVMFU{œbaseClassesœ:[œDocumentœ],œdataTypeœ:œCharacterTextSplitterœ,œidœ:œCharacterTextSplitter-WVMFUœ}-Chroma-OtYDg{œfieldNameœ:œdocumentsœ,œidœ:œChroma-OtYDgœ,œinputTypesœ:null,œtypeœ:œDocumentœ}"
|
|
},
|
|
{
|
|
"source": "OpenAIEmbeddings-9yqtI",
|
|
"sourceHandle": "{œbaseClassesœ:[œEmbeddingsœ,œOpenAIEmbeddingsœ],œdataTypeœ:œOpenAIEmbeddingsœ,œidœ:œOpenAIEmbeddings-9yqtIœ}",
|
|
"target": "Chroma-OtYDg",
|
|
"targetHandle": "{œfieldNameœ:œembeddingœ,œidœ:œChroma-OtYDgœ,œinputTypesœ:null,œtypeœ:œEmbeddingsœ}",
|
|
"data": {
|
|
"targetHandle": {
|
|
"fieldName": "embedding",
|
|
"id": "Chroma-OtYDg",
|
|
"inputTypes": null,
|
|
"type": "Embeddings"
|
|
},
|
|
"sourceHandle": {
|
|
"baseClasses": [
|
|
"Embeddings",
|
|
"OpenAIEmbeddings"
|
|
],
|
|
"dataType": "OpenAIEmbeddings",
|
|
"id": "OpenAIEmbeddings-9yqtI"
|
|
}
|
|
},
|
|
"style": {
|
|
"stroke": "#555"
|
|
},
|
|
"className": "stroke-gray-900 stroke-connection",
|
|
"animated": false,
|
|
"id": "reactflow__edge-OpenAIEmbeddings-9yqtI{œbaseClassesœ:[œEmbeddingsœ,œOpenAIEmbeddingsœ],œdataTypeœ:œOpenAIEmbeddingsœ,œidœ:œOpenAIEmbeddings-9yqtIœ}-Chroma-OtYDg{œfieldNameœ:œembeddingœ,œidœ:œChroma-OtYDgœ,œinputTypesœ:null,œtypeœ:œEmbeddingsœ}"
|
|
},
|
|
{
|
|
"source": "Chroma-OtYDg",
|
|
"sourceHandle": "{œbaseClassesœ:[œVectorStoreœ,œBaseRetrieverœ],œdataTypeœ:œChromaœ,œidœ:œChroma-OtYDgœ}",
|
|
"target": "RetrievalQA-DpylI",
|
|
"targetHandle": "{œfieldNameœ:œretrieverœ,œidœ:œRetrievalQA-DpylIœ,œinputTypesœ:null,œtypeœ:œBaseRetrieverœ}",
|
|
"data": {
|
|
"targetHandle": {
|
|
"fieldName": "retriever",
|
|
"id": "RetrievalQA-DpylI",
|
|
"inputTypes": null,
|
|
"type": "BaseRetriever"
|
|
},
|
|
"sourceHandle": {
|
|
"baseClasses": [
|
|
"VectorStore",
|
|
"BaseRetriever"
|
|
],
|
|
"dataType": "Chroma",
|
|
"id": "Chroma-OtYDg"
|
|
}
|
|
},
|
|
"style": {
|
|
"stroke": "#555"
|
|
},
|
|
"className": "stroke-gray-900 stroke-connection",
|
|
"animated": false,
|
|
"id": "reactflow__edge-Chroma-OtYDg{œbaseClassesœ:[œVectorStoreœ,œBaseRetrieverœ],œdataTypeœ:œChromaœ,œidœ:œChroma-OtYDgœ}-RetrievalQA-DpylI{œfieldNameœ:œretrieverœ,œidœ:œRetrievalQA-DpylIœ,œinputTypesœ:null,œtypeœ:œBaseRetrieverœ}"
|
|
},
|
|
{
|
|
"source": "ChatOpenAI-4Mfuz",
|
|
"sourceHandle": "{œbaseClassesœ:[œBaseLanguageModelœ,œBaseChatModelœ,œChatOpenAIœ,œBaseLLMœ],œdataTypeœ:œChatOpenAIœ,œidœ:œChatOpenAI-4Mfuzœ}",
|
|
"target": "CombineDocsChain-afKOq",
|
|
"targetHandle": "{œfieldNameœ:œllmœ,œidœ:œCombineDocsChain-afKOqœ,œinputTypesœ:null,œtypeœ:œBaseLanguageModelœ}",
|
|
"data": {
|
|
"targetHandle": {
|
|
"fieldName": "llm",
|
|
"id": "CombineDocsChain-afKOq",
|
|
"inputTypes": null,
|
|
"type": "BaseLanguageModel"
|
|
},
|
|
"sourceHandle": {
|
|
"baseClasses": [
|
|
"BaseLanguageModel",
|
|
"BaseChatModel",
|
|
"ChatOpenAI",
|
|
"BaseLLM"
|
|
],
|
|
"dataType": "ChatOpenAI",
|
|
"id": "ChatOpenAI-4Mfuz"
|
|
}
|
|
},
|
|
"style": {
|
|
"stroke": "#555"
|
|
},
|
|
"className": "stroke-gray-900 stroke-connection",
|
|
"animated": false,
|
|
"id": "reactflow__edge-ChatOpenAI-4Mfuz{œbaseClassesœ:[œBaseLanguageModelœ,œBaseChatModelœ,œChatOpenAIœ,œBaseLLMœ],œdataTypeœ:œChatOpenAIœ,œidœ:œChatOpenAI-4Mfuzœ}-CombineDocsChain-afKOq{œfieldNameœ:œllmœ,œidœ:œCombineDocsChain-afKOqœ,œinputTypesœ:null,œtypeœ:œBaseLanguageModelœ}"
|
|
},
|
|
{
|
|
"source": "CombineDocsChain-afKOq",
|
|
"sourceHandle": "{œbaseClassesœ:[œBaseCombineDocumentsChainœ,œCallableœ],œdataTypeœ:œCombineDocsChainœ,œidœ:œCombineDocsChain-afKOqœ}",
|
|
"target": "RetrievalQA-DpylI",
|
|
"targetHandle": "{œfieldNameœ:œcombine_documents_chainœ,œidœ:œRetrievalQA-DpylIœ,œinputTypesœ:null,œtypeœ:œBaseCombineDocumentsChainœ}",
|
|
"data": {
|
|
"targetHandle": {
|
|
"fieldName": "combine_documents_chain",
|
|
"id": "RetrievalQA-DpylI",
|
|
"inputTypes": null,
|
|
"type": "BaseCombineDocumentsChain"
|
|
},
|
|
"sourceHandle": {
|
|
"baseClasses": [
|
|
"BaseCombineDocumentsChain",
|
|
"Callable"
|
|
],
|
|
"dataType": "CombineDocsChain",
|
|
"id": "CombineDocsChain-afKOq"
|
|
}
|
|
},
|
|
"style": {
|
|
"stroke": "#555"
|
|
},
|
|
"className": "stroke-gray-900 stroke-connection",
|
|
"animated": false,
|
|
"id": "reactflow__edge-CombineDocsChain-afKOq{œbaseClassesœ:[œBaseCombineDocumentsChainœ,œCallableœ],œdataTypeœ:œCombineDocsChainœ,œidœ:œCombineDocsChain-afKOqœ}-RetrievalQA-DpylI{œfieldNameœ:œcombine_documents_chainœ,œidœ:œRetrievalQA-DpylIœ,œinputTypesœ:null,œtypeœ:œBaseCombineDocumentsChainœ}"
|
|
},
|
|
{
|
|
"source": "SearchApi-kZmEj",
|
|
"sourceHandle": "{œbaseClassesœ:[œDocumentœ],œdataTypeœ:œSearchApiœ,œidœ:œSearchApi-kZmEjœ}",
|
|
"target": "CharacterTextSplitter-WVMFU",
|
|
"targetHandle": "{œfieldNameœ:œdocumentsœ,œidœ:œCharacterTextSplitter-WVMFUœ,œinputTypesœ:null,œtypeœ:œDocumentœ}",
|
|
"data": {
|
|
"targetHandle": {
|
|
"fieldName": "documents",
|
|
"id": "CharacterTextSplitter-WVMFU",
|
|
"inputTypes": null,
|
|
"type": "Document"
|
|
},
|
|
"sourceHandle": {
|
|
"baseClasses": [
|
|
"Document"
|
|
],
|
|
"dataType": "SearchApi",
|
|
"id": "SearchApi-kZmEj"
|
|
}
|
|
},
|
|
"style": {
|
|
"stroke": "#555"
|
|
},
|
|
"className": "stroke-gray-900 stroke-connection",
|
|
"animated": false,
|
|
"id": "reactflow__edge-SearchApi-kZmEj{œbaseClassesœ:[œDocumentœ],œdataTypeœ:œSearchApiœ,œidœ:œSearchApi-kZmEjœ}-CharacterTextSplitter-WVMFU{œfieldNameœ:œdocumentsœ,œidœ:œCharacterTextSplitter-WVMFUœ,œinputTypesœ:null,œtypeœ:œDocumentœ}"
|
|
}
|
|
],
|
|
"viewport": {
|
|
"x": 2046.3642433866817,
|
|
"y": 1270.2852546488134,
|
|
"zoom": 0.6177254407441625
|
|
}
|
|
},
|
|
"description": "Real-time Google Search engine q&a.",
|
|
"name": "SearchApi Tool",
|
|
"last_tested_version": "0.6.5a9",
|
|
"is_component": false
|
|
} |