Commit graph

4,396 commits

Author SHA1 Message Date
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
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
Gabriel Luiz Freitas Almeida
39e25c294c Merge dev 2023-08-17 10:59:54 -03:00
Gabriel Luiz Freitas Almeida
f3343b81c5 Poetry lock 2023-08-17 10:22:59 -03:00
Gabriel Luiz Freitas Almeida
2cdb860d09 Merge remote-tracking branch 'origin/dev' into celery 2023-08-17 10:16:44 -03:00
Gabriel Luiz Freitas Almeida
82e6b38ca4 🐛 fix(worker.py): add exception handling and retry mechanism to build_vertex task to handle SoftTimeLimitExceeded error and retry the task up to 3 times with a countdown of 2 seconds
 feat(worker.py): add import statement for SoftTimeLimitExceeded exception from celery.exceptions module to handle SoftTimeLimitExceeded error in build_vertex task
2023-08-17 10:16:00 -03:00
Gabriel Luiz Freitas Almeida
2dd43d3f99 🐛 fix(chat.py): add support for running celery tasks for building vertices and fallback to local build if celery task fails 2023-08-17 10:15:49 -03:00
Gabriel Luiz Freitas Almeida
24344ee0fa 🐛 fix(base.py): remove unnecessary import statement for celery.result.AsyncResult
🔀 refactor(base.py): refactor the build method in Vertex class to improve readability and remove redundant code
 feat(base.py): add get_task method to Vertex class to retrieve the task from celery using task_id
2023-08-17 10:15:38 -03:00
Gabriel Luiz Freitas Almeida
ab6515515d 🐛 fix(types.py): add conditional check for task_id and is_task to improve object representation in CustomComponentVertex 2023-08-17 10:15:21 -03:00
Gabriel Luiz Freitas Almeida
d393a66b2f 🐛 fix(base.py): handle ImportError when importing celery.result.AsyncResult to allow building the vertex locally when Celery is not installed 2023-08-17 09:11:52 -03:00
Gabriel Luiz Freitas Almeida
c1511d7773
Add poetry to devcontainer (#780) 2023-08-17 11:55:19 +00:00
Gabriel Luiz Freitas Almeida
e210fc316a 🐛 fix(__main__.py): import and call initialize_settings_manager() to ensure settings manager is initialized
 feat(manager.py): add check to prevent duplicate registration of service factories in ServiceManager class
 feat(manager.py): add initialize_settings_manager() function to initialize the settings manager
2023-08-17 08:23:50 -03:00
hsm207
72042b315f add poetry to devcontainer 2023-08-17 11:02:42 +00:00
Gabriel Luiz Freitas Almeida
45c7656e57 Merge remote-tracking branch 'origin/main' into celery 2023-08-16 22:56:34 -03:00
Gabriel Luiz Freitas Almeida
e77ce91f24 Merge remote-tracking branch 'origin/release' into celery 2023-08-16 22:56:26 -03:00
Gabriel Luiz Freitas Almeida
cf96523dc3 📦 feat(pyproject.toml): add locust package as a dependency to enable load testing capabilities 2023-08-16 22:50:34 -03:00
Gabriel Luiz Freitas Almeida
d39dd5fc4a 🐛 fix(test_cache.py): import correct compute_dict_hash function from langflow.services.cache.utils module
🐛 fix(test_cache.py): fix clear_cache function call by passing session_id parameter
🐛 fix(test_cache_manager.py): import CacheManager from langflow.services.chat.cache module instead of langflow.services.cache.manager
🐛 fix(test_cli.py): convert temp_dir to string before checking if it is in COMPONENTS_PATH
🐛 fix(test_process.py): fix clear_cache function call by passing session_id parameter
2023-08-16 22:38:18 -03:00
Gabriel Luiz Freitas Almeida
ce8fc2739d 🔧 chore(run.py): replace deprecated memoize_dict decorator with Memoize class to improve code maintainability and readability
🔧 chore(process.py): replace deprecated build_sorted_vertices_with_caching.hash with build_sorted_vertices_with_caching.session_id to fix incorrect session_id assignment
🔧 chore(utils.py): add get_cache_manager function to retrieve the cache manager from the service manager
2023-08-16 22:36:34 -03:00
Gabriel Luiz Freitas Almeida
eb17233cde Merge remote-tracking branch 'origin/dev' into celery 2023-08-16 21:49:42 -03:00
Gabriel Luiz Freitas Almeida
500b6d533c Merge remote-tracking branch 'origin/dev' into celery 2023-08-16 21:47:57 -03:00
Gabriel Luiz Freitas Almeida
489075da17
Add_session_id (#779) 2023-08-17 00:45:43 +00:00
Gabriel Luiz Freitas Almeida
2f95e13026 ⬆️ chore(pyproject.toml): update types-python-jose and types-passlib versions to their latest versions for compatibility and bug fixes 2023-08-16 21:44:09 -03:00
Gabriel Luiz Freitas Almeida
87958c255e 🐛 fix(endpoints.py): change type annotation of session_id parameter in process_flow function to Union[None, str] to allow for None value
🐛 fix(schemas.py): change type annotation of session_id field in ProcessResponse schema to Optional[str] to allow for None value
🐛 fix(run.py): change return type annotation of build_sorted_vertices_with_caching function to Tuple[Any, Dict] to specify the return types
🐛 fix(process.py): change return type annotation of load_langchain_object function to Tuple[Union[Chain, VectorStore], Dict[str, Any], str] to include the session_id value in the return tuple
2023-08-16 21:43:35 -03:00
Gabriel Luiz Freitas Almeida
8ff739a288 🚀 feat(test_process.py): add tests for loading langchain object with and without cached session
🐛 fix(test_process.py): import missing functions and modules to fix test failures
2023-08-16 21:30:07 -03:00
Gabriel Luiz Freitas Almeida
199ea3b1b8 🔧 fix(process.py): refactor process_graph_cached function for better readability and maintainability
 feat(process.py): add clear_caches_if_needed function to clear cache if clear_cache flag is set
 feat(process.py): add load_langchain_object function to load langchain_object and artifacts from data_graph
 feat(process.py): add process_inputs function to process inputs and add artifacts to inputs
 feat(process.py): add generate_result function to generate result and thought based on langchain_object and inputs
2023-08-16 21:29:17 -03:00
Gabriel Luiz Freitas Almeida
2f928c7d84 Merge remote-tracking branch 'origin/dev' into add_session_id 2023-08-16 19:31:29 -03:00
Gabriel Luiz Freitas Almeida
be4f949e70 📦 chore(deploy): add .gitignore file to ignore 'pgadmin' directory in the deploy folder 2023-08-16 19:27:26 -03:00
Gabriel Luiz Freitas Almeida
97ad9889be Merge remote-tracking branch 'origin/dev' into celery 2023-08-16 19:26:06 -03:00
Gabriel Luiz Freitas Almeida
479db46fcf
Changes default database_url to a cache folder (#771) 2023-08-16 22:22:53 +00:00
Gabriel Luiz Freitas Almeida
7539ba3166 Merge remote-tracking branch 'origin/dev' into fix_db_location 2023-08-16 19:21:47 -03:00
Gabriel Luiz Freitas Almeida
c2cfcafc17 🐛 fix(Dockerfile): change order of COPY commands to improve build caching and efficiency
🐛 fix(exportModal/index.tsx): add state for invalidName to handle validation of name field
2023-08-16 19:20:24 -03:00
anovazzi1
2a4668d90d
Types refactor (#659)
This pull request aims to perform a comprehensive type refactor across
the project, enhancing type safety and improving code clarity. The
changes introduced in this PR will lead to better maintainability,
reduced bugs related to type-related issues, and increased overall code
quality.
2023-08-16 18:39:05 -03:00
anovazzi1
7c4fbffeb1 Merge remote-tracking branch 'origin/dev' into types_refactor 2023-08-16 18:33:39 -03:00
anovazzi1
4b64d38d68 fix(inputComponent): fix TypeScript error by adding non-null assertion to className variable
fix(authContext): fix TypeScript error by setting initial value of userData to null
fix(tsconfig.json): enable strict mode in TypeScript compiler for better type checking and error detection
2023-08-16 18:29:47 -03:00
anovazzi1
46aa816ba9 run npm install 2023-08-16 18:22:42 -03:00
anovazzi1
e33e236466 Merge branch 'login' into types_refactor 2023-08-16 18:19:36 -03:00
anovazzi1
545a099339 removed strict and implicity any from tsconfig 2023-08-16 18:13:53 -03:00
anovazzi1
c5850977a7 fix(utils.ts): add TemplateVariableType import to fix type error in checkBaseClass function
chore(tsconfig.json): set strict to false and noImplicitAny to true to relax strict type checking and enforce explicit typing
2023-08-16 18:00:37 -03:00
anovazzi1
57f580c93d refactor(utils.ts): simplify logic for getting chat input field
The logic for getting the chat input field has been simplified by removing unnecessary checks and using optional chaining. This improves readability and reduces the complexity of the code.
2023-08-16 17:52:08 -03:00
anovazzi1
af218867eb fix(formModal): fix nullish coalescing operator usage to handle nullable properties in tabsStateFlowId.formKeysData 2023-08-16 17:49:03 -03:00