Commit graph

11,619 commits

Author SHA1 Message Date
Gabriel Luiz Freitas Almeida
d1ae69ca6e
fix mendable (#789) 2023-08-21 16:21:15 +00:00
Gabriel Luiz Freitas Almeida
fe65b63400 🔧 chore(deploy): update docker-compose version to 3.8 for better compatibility and features
🐳 chore(deploy): update traefik image version to v3.0 for improved functionality and compatibility
🔧 chore(deploy): remove unnecessary port mappings for backend, queue, pgadmin, redis, prometheus, and grafana services
2023-08-21 08:19:12 -03:00
Gabriel Luiz Freitas Almeida
d0911b3fd2 feat(.env.example): add example environment variables for domain, stack name, Traefik network, and Traefik tags to provide a template for configuring the deployment environment 2023-08-20 23:41:21 -03:00
Gabriel Luiz Freitas Almeida
6ffb994e53 📦 chore(docker-compose.override.yml): add docker-compose.override.yml file to configure Traefik proxy and services for local development
This commit adds a new file `docker-compose.override.yml` to the `deploy` directory. The file contains configuration for the Traefik proxy and services used for local development. The configuration includes:

- Enabling Docker in Traefik to read labels from Docker services
- Adding a constraint to only use services with a specific label for this stack
- Disabling the exposure of all Docker services by default
- Enabling the access log and Traefik log
- Enabling the Traefik Dashboard and API in insecure mode for local development

The file also includes configuration for the following services:

- `proxy`: Configured to listen on ports 80 and 8090, with labels for routing and load balancing
- `pgadmin`: Configured to listen on port 5050
- `flower`: Configured to listen on port 5555
- `backend`: Configured with labels for routing and load balancing on paths `/api/v1`, `/docs`, and `/health`
- `frontend`: Configured with labels for routing and load balancing on the root path

The `traefik-public` network is also defined for use by the Traefik proxy.

This file is intended to be used as an override for the main `docker-compose.yml` file during local development.

🐳 chore(docker-compose.yml): add Traefik reverse proxy configuration for services

🔧 fix(docker-compose.yml): fix path to startup-backend.sh script

🚀 feat(docker-compose.yml): add support for deploying backend, celery worker, flower, frontend, prometheus, and grafana services

🔧 fix(docker-compose.yml): fix volume configuration for db service

🔧 fix(docker-compose.yml): fix network configuration for pgadmin service

🔧 fix(docker-compose.yml): fix network configuration for traefik proxy service

🔧 fix(docker-compose.yml): fix network configuration for flower service

🔧 fix(docker-compose.yml): fix network configuration for frontend service

🔧 fix(docker-compose.yml): fix network configuration for prometheus service

🔧 fix(docker-compose.yml): fix network configuration for grafana service
2023-08-20 23:39:19 -03:00
Gabriel Luiz Freitas Almeida
9baf588e5e 🔥 refactor(nginx.conf): remove redundant code for proxying /api/v1/ and /health routes to backend service 2023-08-20 23:38:47 -03:00
Gabriel Luiz Freitas Almeida
f11c564d75 lock 2023-08-20 15:08:26 -03:00
Gabriel Luiz Freitas Almeida
59e0bd6e9b 🐛 fix(component.py): change variable name from function_entrypoint_name to _function_entrypoint_name for better readability and consistency
🐛 fix(component.py): fix condition to check if _function_entrypoint_name is empty in Component class

🐛 fix(manager.py): change condition to check if key is in Settings.model_fields.keys() instead of Settings.__fields__.keys() for better accuracy

 feat(settings.py): add support for loading settings from a YAML file and updating settings from YAML and kwargs

🐛 fix(util.py): get "type" or "annotation" from value in get_type function to handle both cases

🐛 fix(test_cli.py): convert temp_dir to string before checking if it is in settings_manager.settings.COMPONENTS_PATH

🐛 fix(test_custom_component.py): change variable name from function_entrypoint_name to _function_entrypoint_name in tests for consistency and remove test for ComponentFunctionEntrypointNameNullError since it is not used anymore

📝 docs(test_llms_template.py): update description of `OpenAI` Chat large language models API in test case
2023-08-20 15:08:06 -03:00
Gabriel Luiz Freitas Almeida
4345293a0a 🐛 fix(endpoints.py): skip processing empty custom_component_dict to prevent errors
🐛 fix(schemas.py): import field_validator from pydantic instead of Field
🐛 fix(base.py): return None if fields only contain _type key
🐛 fix(flow.py): set default value of description field to an empty string
🐛 fix(base.py): import validator from pydantic instead of field_validator
🐛 fix(conftest.py): change scope of client fixture to function and add autouse=True to ensure it runs for every test
2023-08-20 15:06:26 -03:00
Gabriel Luiz Freitas Almeida
2fe4b2ac44 v2 2023-08-20 14:21:47 -03:00
Gabriel Luiz Freitas Almeida
bff329e278 🔧 chore(flower.env): add FLOWER_UNAUTHENTICATED_API=True to allow unauthenticated access to Flower API 2023-08-20 13:26:29 -03:00
Gabriel Luiz Freitas Almeida
2d85ae9dd4 🚀 feat(docker-compose.yml): upgrade docker-compose version to 3.3 for compatibility with newer features and syntax
🔧 chore(docker-compose.yml): update backend.env file path to remove leading './' for consistency

🔧 chore(docker-compose.yml): remove explicit port mapping for backend service to use the default port

🔧 chore(docker-compose.yml): add deploy configuration for celery worker service to ensure only one replica is deployed

🔧 chore(docker-compose.yml): add prometheus and grafana services with necessary configurations and dependencies

📝 docs(prometheus.yml): add prometheus configuration file with scrape targets for prometheus and flower services
2023-08-20 13:26:02 -03:00
Gabriel Luiz Freitas Almeida
afcd1f847c 🔧 chore(locustfile.py): update Locust test file to use FastHttpUser instead of HttpUser for improved performance
🔧 chore(locustfile.py): update host URL to remove unnecessary colon in the port number
🔧 chore(locustfile.py): refactor send_name_and_check task to use a more efficient polling mechanism for task status
🔧 chore(locustfile.py): update flow_id and session_id generation logic to use more meaningful values
🔧 chore(locustfile.py): refactor send_name_and_check task to use a separate process function for better code organization and readability
🔧 chore(locustfile.py): update payload2 to include a more descriptive text for the input
🔧 chore(locustfile.py): update assertion in send_name_and_check task to check if the name is present in the result2 response
2023-08-20 13:25:11 -03:00
Gabriel Luiz Freitas Almeida
3d84aace37 🔧 fix(endpoints.py): import missing dependencies to resolve NameError
 feat(endpoints.py): add new endpoint to get task status by task ID
🔧 fix(schemas.py): update ProcessResponse schema to use 'id' instead of 'session_id' for consistency
 feat(schemas.py): add new schema for TaskStatusResponse
2023-08-20 13:24:47 -03:00
DiogenesBR
5fd3da010e Atualização do ChromaComponent adicionando campos que havia na versão antiga 2023-08-18 21:10:03 +00:00
DiogenesBR
5e7681ea09 Add some new types to .gitattributes 2023-08-18 16:58:18 -03:00
Cristhian Zanforlin Lousa
b319b909e4 ️ chore(frontend): update moment package to version 2.29.4 for bug fixes and improvements 2023-08-18 15:01:10 -03:00
carlosrcoelho
59bfabd119 fix mendable 2023-08-18 12:59:58 -03:00
Gabriel Luiz Freitas Almeida
298e499f72 🚀 feat(base.Dockerfile): copy specific file 'main.py' from src/backend/langflow to improve build performance and reduce unnecessary copying
🐛 fix(base.Dockerfile): fix copying of src/backend directory to ensure all files are included in the build context
2023-08-18 10:09:45 -03:00
Gabriel Luiz Freitas Almeida
8bdde3bc05 🔨 refactor(custom_component.py): remove unused import and update function name for better code organization and clarity
📝 docs(custom_component.py): update docstring for better readability and understanding
🔧 chore(custom_component.py): add new file names.txt for locust tests with a list of names for load testing
2023-08-18 08:57:53 -03:00
Gabriel Luiz Freitas Almeida
7f217bd518 🔧 refactor(process.py): remove unused imports and variables, refactor function names for clarity
 feat(process.py): introduce SessionManager to handle loading and updating langchain_object sessions
🐛 fix(process.py): update cache with the updated langchain_object after processing graph
2023-08-18 08:57:38 -03:00
Gabriel Luiz Freitas Almeida
2183f167cd 🐛 fix(manager.py): add cache_manager.set() to store langchain_object in cache after successful initialization
🐛 fix(celeryconfig.py): fix condition to check if BROKER_URL and RESULT_BACKEND are present in os.environ before using them, fallback to langflow_redis_host and langflow_redis_port if not present
2023-08-18 08:57:24 -03:00
Gabriel Luiz Freitas Almeida
682e611947 🔧 fix(endpoints.py): remove unused import and function call to process_graph_cached
🔧 fix(worker.py): refactor process_graph_cached into process_graph_cached_task and update function signature and implementation to use SessionManager for loading and updating the graph
2023-08-18 08:57:12 -03:00
Gabriel Luiz Freitas Almeida
c195456c49 🔧 fix(base.py): update debug log message to provide more meaningful information about the number of vertices in the graph
🔧 fix(run.py): comment out the caching functionality for building sorted vertices to prevent caching issues
2023-08-18 08:56:58 -03:00
Gabriel Luiz Freitas Almeida
f4a0c9f436 🐛 fix(manager.py): remove commented code block to improve code readability and maintainability
 feat(manager.py): add initialization for session manager and its dependencies (cache manager and settings manager) to enable session management functionality
2023-08-18 08:52:26 -03:00
Gabriel Luiz Freitas Almeida
853648ae33 📝 chore(locustfile.py): add locustfile.py for load testing the API
🐛 fix(test_process.py): refactor test_load_langchain_object_with_cached_session to use session_manager
🐛 fix(test_process.py): refactor test_load_langchain_object_with_no_cached_session to use session_manager
🐛 fix(test_process.py): refactor test_load_langchain_object_without_session_id to use session_manager
2023-08-18 08:51:56 -03:00
Gabriel Luiz Freitas Almeida
a7ff7da778 🐛 fix(base.Dockerfile): remove unnecessary copy of ./src/backend directory to improve build performance
 feat(base.Dockerfile): add healthcheck for queue and celeryworker services to ensure their availability
 feat(docker-compose.yml): add healthcheck for queue, celeryworker, and flower services to ensure their availability
🐛 fix(docker-compose.yml): fix the path in the command for backend service startup
🐛 fix(flower.env): add missing double quote at the end of C_FORCE_ROOT value
🐛 fix(startup-backend.sh): remove unnecessary --reload flag from uvicorn command and add --workers -1 flag to utilize all available CPU cores
2023-08-18 08:51:30 -03:00
Gabriel Luiz Freitas Almeida
ad1d48c69c
🐛 fix(endpoints.py): add validation to ensure that custom components … (#788) 2023-08-18 02:32:47 +00:00
Gabriel Luiz Freitas Almeida
9baeeb02a6
Merge branch 'main' into release 2023-08-18 02:31:24 +00:00
Gabriel Luiz Freitas Almeida
ee52095f61 🔥 chore(package.json): remove devDependencies from package.json
🔖 chore(pyproject.toml): bump version to 0.4.12
2023-08-17 23:30:15 -03:00
Gabriel Luiz Freitas Almeida
d1c17cffe6
🐛 fix(endpoints.py): add validation to ensure that custom components are in a single category (#787) 2023-08-18 02:13:59 +00:00
ogabrielluiz
d76cef81e8 fix: Remove category log 2023-08-17 23:11:44 -03:00
Gabriel Luiz Freitas Almeida
b772bbe976 🐛 fix(endpoints.py): add validation to ensure that custom components are in a single category 2023-08-17 22:33:52 -03:00
Cristhian Zanforlin Lousa
d2dc0feae4 🔧 chore(base.py): enable AUTO_LOGIN by default for easier development and testing 2023-08-17 20:14:48 -03:00
Cristhian Zanforlin Lousa
8e662e65f6 🐛 fix(ApiKeysPage): add missing TableHead for 'Id' column to improve table structure
 feat(ApiKeysPage): add tooltip and cursor-default to display the full 'Id' value in the table
🐛 fix(ApiKeysPage): fix typo in ConfirmationModal titleHeader from 'Delete User' to 'Delete Key'
 feat(ApiKeysPage): add onCloseModal callback to refresh keys after creating a new secret key
2023-08-17 19:51:40 -03:00
Cristhian Zanforlin Lousa
8dcbeb5e39 🐛 fix(base.py): set AUTO_LOGIN to False to disable automatic login as a super user
 feat(App.tsx): add logout function to useContext and handle page refresh to maintain user login state
🐛 fix(SecretKeyModal/index.tsx): add onCloseModal function to handle closing modal when API key is not available
 feat(ApiKeysPage/index.tsx): add onCloseModal prop to SecretKeyModal component to refresh API keys after creating a new key
🐛 fix(ApiKeysPage/index.tsx): replace getIdKeyHidden function with directly accessing api_key property in ApiKey object
 feat(types/components/index.ts): add onCloseModal function to ApiKeyType type to handle closing modals
2023-08-17 19:51:28 -03:00
anovazzi1
712dcf3535 fix(reactflowUtils.ts): fix typo in function name from scapedJSONStringfy to scapeJSONStringify
feat(reactflowUtils.ts): add customStringify function to handle special cases when stringifying JSON objects
2023-08-17 19:34:04 -03:00
Cristhian Zanforlin Lousa
a35a4fd648 🐛 fix(App.tsx): set loading state to false after successful auto login or getting logged user data
🐛 fix(routes.tsx): remove duplicate import of ApiKeysPage
2023-08-17 19:23:52 -03:00
Cristhian Zanforlin Lousa
bfe8053127 merging with authentication 2023-08-17 19:18:30 -03:00
Cristhian Zanforlin Lousa
151bbc24d2 🐛 fix(headerComponent): fix rendering issue with API keys button when autoLogin is true
 feat(headerComponent): add condition to render API keys button only when autoLogin is false
2023-08-17 19:06:05 -03:00
Cristhian Zanforlin Lousa
b15ab5bae0 Merge branch 'login-auth' of https://github.com/logspace-ai/langflow into login-auth 2023-08-17 18:46:27 -03:00
Gabriel Luiz Freitas Almeida
79b48efddf 🔧 chore(docker-compose.yml): update volume path to correctly mount parent directory for the app
🔧 chore(docker-compose.yml): update Redis image version to 7.2.0 for the queue service
🔧 chore(docker-compose.yml): update command for the flower service to use environment variables for Redis connection details
🔧 chore(flower.env): add LANGFLOW_REDIS_PASSWORD environment variable
2023-08-17 18:09:33 -03:00
Gabriel Luiz Freitas Almeida
26e6c325aa 🐛 fix(manager.py): add support for registering factory dependencies to handle service dependencies
 feat(manager.py): add support for handling service dependencies when creating services
🔧 chore(manager.py): comment out validation for creating services before the settings service
🔧 chore(utils.py): add get_session_manager() function to retrieve the session manager service
2023-08-17 18:00:27 -03:00
Gabriel Luiz Freitas Almeida
632eef48b2 🐛 fix(manager.py): change threading.Lock to threading.RLock to allow reentrant locking and prevent deadlocks
🔀 merge(manager.py): refactor _get method to extract logic into _get_without_lock method for code reuse and readability
🔀 merge(manager.py): refactor set method to use _get_without_lock method for code reuse and readability
🔀 merge(manager.py): add lock acquisition in delete method to ensure thread safety
🔀 merge(utils.py): add update_cache method to Memoize class for updating cache values
2023-08-17 17:59:00 -03:00
Gabriel Luiz Freitas Almeida
cf2940be05 feat(session): add SessionManagerFactory, SessionManager, and related methods
- Added `SessionManagerFactory` class in `src/backend/langflow/services/session/factory.py` to create instances of `SessionManager`.
- Added `SessionManager` class in `src/backend/langflow/services/session/manager.py` to manage sessions.
- Added `load_session`, `generate_key`, `update_session`, and `clear_session` methods to `SessionManager` to handle session-related logic.

These changes were made to introduce session management functionality to the application.
2023-08-17 17:58:10 -03:00
Gabriel Luiz Freitas Almeida
c49e660e80 🐛 fix(cache/factory.py): change variable name from settings_service to settings_manager for consistency and clarity
🐛 fix(cache/factory.py): change variable name from settings_service to settings_manager for consistency and clarity
🐛 fix(database/factory.py): change variable name from settings_service to settings_manager for consistency and clarity
2023-08-17 17:23:31 -03:00
anovazzi1
11a2d12c6b Merge remote-tracking branch 'origin/dev' into newHandleId 2023-08-17 16:17:14 -03:00
Diógenes Betat Roos
ff7c3c26ef Migrate Chroma to Custom Component 2023-08-17 19:12:21 +00:00
Diógenes Betat Roos
a43260fca8 Add build folder to .gitignore 2023-08-17 18:57:47 +00:00
gustavoschaedler
463831e8df Merge remote-tracking branch 'origin/dev' into authentication 2023-08-17 19:50:27 +01:00
anovazzi1
2078778976
update make frontendc (#783)
chore(Makefile): update 'install_frontendc' target to remove existing
node_modules and package-lock.json before running 'npm install' to
ensure a clean installation
2023-08-17 15:39:35 -03:00