Commit graph

3,239 commits

Author SHA1 Message Date
igorrCarvalho
3e83540eab refactor: Add adjusts to make confirm password error work 2023-08-11 16:21:01 -03:00
gustavoschaedler
f1b2fea20f Merge remote-tracking branch 'origin/dev' into authentication 2023-08-11 19:40:11 +01:00
Lucas Oliveira
0f015cadc7 Fixed password required not showing 2023-08-11 15:25:24 -03:00
Lucas Oliveira
312039bfd6 Fixed color of background 2023-08-11 12:28:33 -03:00
Lucas Oliveira
c37e1223fc Fixed variable names 2023-08-11 12:09:00 -03:00
Lucas Oliveira
4adf9374bd Added spinning wheel when /all is loading 2023-08-11 12:04:35 -03:00
Cristhian Zanforlin Lousa
f030234438 🐛 fix(authGuard): add check for getAuthentication() in ProtectedRoute component to prevent unauthorized access and logout user
 feat(authContext): add getAuthentication() function to check if user is authenticated using cookies
🔧 chore(index.tsx): reorganize context providers to wrap AuthProvider around other providers
2023-08-11 11:56:12 -03:00
Cristhian Zanforlin Lousa
c0f586ad89 🔧 fix(authGuard): add missing newline at the end of the file
🆕 feat(headerComponent): add logout functionality and redirect to login page on sign out

🔧 fix(constants): add missing URL to the list of excluded error retries

🔧 fix(authContext): add refreshToken state and update login and logout functions to handle refresh token

🆕 feat(api): add interceptor to handle access token expiration and refresh

🔧 fix(api): add missing request interceptor to add access token to every request

🔧 fix(API/index.ts): import missing LoginAuthType and LoginType from types/api/index to resolve compilation error
 feat(API/index.ts): add onLogin function to handle user login and authentication
 feat(API/index.ts): add renewAccessToken function to handle token renewal
🔧 fix(loginPage/index.tsx): import missing onLogin function from controllers/API to resolve compilation error
 feat(loginPage/index.tsx): add signIn function to handle user sign in and authentication
🔧 fix(routes.tsx): import ProtectedRoute component from components/authGuard to resolve compilation error
 feat(routes.tsx): add protected routes for HomePage, FlowPage, AdminPage, and DeleteAccountPage to enforce authentication
🔧 fix(api/index.ts): add missing grant_type, scope, client_id, and client_secret properties to LoginType to match API requirements
 feat(api/index.ts): add LoginAuthType to represent the authentication response from the server
🔧 fix(contexts/auth.ts): add refreshToken property to AuthContextType to store the refresh token
2023-08-11 11:33:52 -03:00
Cristhian Zanforlin Lousa
c30cb3e002 Merge branch 'authentication' into login 2023-08-11 08:22:37 -03:00
gustavoschaedler
580b439b80 🔧 chore(users.py): refactor and improve code readability in users.py
 feat(users.py): add docstrings to API endpoints for better documentation
🔥 chore(users.py): remove unnecessary code and comments
🐛 fix(users.py): fix return type hints in API endpoints
2023-08-11 03:52:02 +01:00
gustavoschaedler
0a5026a6ed 🔧 fix(auth.py): change refresh token expiration time from 180 minutes to 70 minutes for better security
🔧 fix(auth.py): change SECRET_KEY comment from "TODO" to "JUST FOR TEST" for clarity
🔧 fix(auth.py): change create_access_token function name to create_token for consistency
🔧 fix(auth.py): change create_refresh_token function to accept refresh_token parameter instead of data dictionary
🔧 fix(auth.py): change create_refresh_token function to decode and validate refresh_token before creating new user tokens
🔧 fix(auth.py): change authenticate_user function to use get_user_by_username instead of get_user
🔧 fix(auth.py): change get_current_user function to use get_user_by_username instead of get_user
🔧 fix(auth.py): change get_user function name to get_user_by_username for clarity
🔧 fix(users.py): change get_password_hash function to be inside the router scope for better encapsulation
🔧 fix(users.py): change add_user function to return UserListModel instead of User
🔧 fix(users.py): change update_user function to update user data based on UserPatchModel fields
🔧 fix(users.py): change update_user function to handle username conflicts and update user's updated_at field
🔧 fix(users.py): change delete_user function to delete user based on user_id
 feat(login.py): add refresh_token endpoint to refresh access token using refresh token
 feat(login.py): add refresh_token function to create new user tokens based on refresh token
 feat(login.py): add refresh_token endpoint to refresh access token using refresh token
 feat(login.py): add refresh_token function to create new user tokens based on refresh token
 feat(login.py): add refresh_token endpoint to refresh access token using refresh token
 feat(login.py): add refresh_token function to create new user tokens based on refresh token
 feat(login.py): add refresh_token endpoint to refresh access token using refresh token
 feat(login.py): add refresh_token function to create new user tokens based on refresh token
 feat(login.py): add refresh_token endpoint to refresh access token using refresh token
 feat(login.py): add refresh_token function to create new user tokens based on refresh token
 feat(login.py): add refresh_token endpoint to refresh access token using refresh token
 feat(login.py): add refresh
2023-08-11 03:13:08 +01:00
Gabriel Luiz Freitas Almeida
343d829c25 🐛 fix(OpenAIConversationalAgent.py): fix typo in display name of Conversational Agent class
 feat(OpenAIConversationalAgent.py): add support for OpenAI API key and base URL in build method to enable API function calling
2023-08-10 18:15:41 -03:00
Gabriel Luiz Freitas Almeida
2e0de1926e 🐛 fix(endpoints.py): handle duplicate paths in settings.COMPONENTS_PATH to avoid processing the same path multiple times
🐛 fix(settings.py): convert Path objects to strings in settings.COMPONENTS_PATH to ensure consistency and avoid potential issues
2023-08-10 17:59:30 -03:00
Gabriel Luiz Freitas Almeida
3792cbc8d7
Merge branch 'release' into fix_memory_on_agents 2023-08-10 17:41:31 -03:00
Cristhian Zanforlin Lousa
b6794c76fd Merge branch 'authentication' into login 2023-08-10 15:27:33 -03:00
gustavoschaedler
f0f061ab46 🔒 chore(auth.py): increase access token expiration time to 60 minutes for better user experience
🔒 chore(auth.py): add refresh token functionality with expiration time of 180 minutes
🔒 chore(login.py): change token endpoint URL from /token to /login for better semantics
🔒 chore(login.py): add refresh token creation to login endpoint to provide a refresh token along with the access token
2023-08-10 19:05:11 +01:00
Lucas Oliveira
2436461f5d Fixed bug on Export Modal 2023-08-10 14:50:15 -03:00
Gabriel Luiz Freitas Almeida
dc6a5ac73a 🔄 refactor(popover.tsx): reorder exported components to improve readability and consistency 2023-08-10 13:46:57 -03:00
Gabriel Luiz Freitas Almeida
5cbb86b184 🐛 fix(utils.py): add UnbuiltObject class to improve code readability and maintainability
🐛 fix(base.py): change the error message when _built_object is None to provide more specific information and handle the case when _built_object is an instance of UnbuiltObject
2023-08-10 13:46:25 -03:00
Gabriel Luiz Freitas Almeida
7933667973 🚀 feat(constants.py): import AgentExecutor from langchain.agents.agent module to use it in LANGCHAIN_BASE_TYPES dictionary
🔀 chore(constants.py): remove unnecessary import statements
2023-08-10 13:45:58 -03:00
Gabriel Luiz Freitas Almeida
cc4008c861 🐛 fix(custom_component.py): fix incorrect usage of type_hint variable in if condition 2023-08-10 11:43:46 -03:00
Gabriel Luiz Freitas Almeida
83631606d3 🐛 fix(manager.py): fix undefined variable 'database_url' error in _create_engine method
 feat(manager.py): add support for SQLite database by setting connect_args in create_engine method
2023-08-10 11:30:06 -03:00
anovazzi1
d6d5aae1ef Merge branch 'authentication' into login 2023-08-10 10:44:48 -03:00
anovazzi1
10d3fc6939 format code 2023-08-10 10:41:49 -03:00
anovazzi1
04db803f34 format code 2023-08-10 10:41:06 -03:00
anovazzi1
f7fdc5d7bc feat(App.tsx): add support for displaying header component on all pages except login and signup pages to improve user experience 2023-08-10 10:33:01 -03:00
Gabriel Luiz Freitas Almeida
3d8d44538f Merge branch 'release' into dev 2023-08-10 10:10:28 -03:00
Gabriel Luiz Freitas Almeida
df77ba81f7 🐛 fix(custom_component.py): fix condition to check if Optional type hint is used but not imported in the code 2023-08-10 09:24:10 -03:00
Gabriel Luiz Freitas Almeida
564634d36c 🐛 fix(directory_reader.py): handle SyntaxError when parsing code to prevent crashes
🐛 fix(directory_reader.py): return False if code is not valid Python to prevent false positives
🐛 fix(directory_reader.py): fix method name from is_type_hint_used_but_not_imported to _is_type_hint_used_in_args for consistency
🐛 fix(directory_reader.py): fix method name from is_type_hint_imported to _is_type_hint_imported for consistency
🐛 fix(directory_reader.py): fix return value of _is_type_hint_used_in_args method to return False if type hint is used but not imported
2023-08-10 09:23:36 -03:00
Gabriel Luiz Freitas Almeida
261e258ed4 🐛 fix(loading.py): make a copy of the params before modifying it to prevent unintended side effects 2023-08-10 09:23:02 -03:00
Gabriel Luiz Freitas Almeida
7b22fd2711
add waitlist button on header (#742) 2023-08-10 07:59:03 -03:00
igorrCarvalho
33944e5baf refactor[loginPage]: Refactor login Page to use Form UI Radix Modal 2023-08-10 03:22:18 -03:00
igorrCarvalho
69ec2681bd refactor[signUpPage]: refactor sign up page to use radix ui form modal 2023-08-10 02:26:06 -03:00
Dave Morris
97bf39143d fix to allow running the backend on port 443 without https (wss protocol is required even without an SSL certificate) 2023-08-09 20:08:36 -05:00
Gabriel Luiz Freitas Almeida
b0a2258232 🔧 chore(OpenAIConversationalAgent.py): add display names for 'tools', 'memory', 'system_message', and 'max_token_limit' parameters to improve readability and user experience 2023-08-09 22:06:33 -03:00
Gabriel Luiz Freitas Almeida
33ef3b0a7e 🐛 fix(OpenAIConversationalAgent.py): ignore type errors for memory_key, system_message, prompt, agent, and tools variables
 feat(OpenAIConversationalAgent.py): add support for return_intermediate_steps parameter in AgentExecutor constructor to enable returning intermediate steps during conversation
2023-08-09 21:58:25 -03:00
Gabriel Luiz Freitas Almeida
1dcdc02e4f 🚀 feat(constants.py): import BaseChatMemory from langchain.memory.chat_memory module to add support for chat memory in custom interfaces 2023-08-09 21:49:20 -03:00
Gabriel Luiz Freitas Almeida
5d226d43d1 🐛 fix(OpenAIConversationalAgent.py): change parameter name from model_name to model to improve clarity and consistency 2023-08-09 21:48:40 -03:00
Gabriel Luiz Freitas Almeida
44f4fc1e62 feat(OpenAIConversationalAgent.py): add implementation of ConversationalAgent class for OpenAI conversational agent 2023-08-09 21:38:39 -03:00
Gabriel Luiz Freitas Almeida
31e02fe25c feat(ConversationalAgent.py): add ConversationalAgent component to handle conversational interactions using OpenAI's function calling API
This commit adds a new file `ConversationalAgent.py` to the `src/backend/langflow/components/agents` directory. The `ConversationalAgent` class is a custom component that represents a conversational agent capable of using OpenAI's function calling API.

The `ConversationalAgent` class has the following features:
- It inherits from the `CustomComponent` class.
- It has a `display_name` attribute set to "OpenaAI Conversational Agent".
- It has a `description` attribute set to "Conversational Agent that can use OpenAI's function calling API".
- It implements the `build_config` method to define the configuration options for the agent.
- It implements the `build` method to create an instance of the `AgentExecutor` class, which represents the agent's execution environment.
- The `build` method takes several parameters, including `model_name`, `tools`, `memory`, `system_message`, and `max_token_limit`.
- It uses the `ChatOpenAI` class from the `langchain.chat_models` module to create an instance of the OpenAI language model.
- It uses the `ConversationTokenBufferMemory` class from the `langchain.memory.token_buffer` module to handle conversation history and token buffering.
- It uses the `OpenAIFunctionsAgent` class from the `langchain.agents.openai_functions_agent.base` module to create an instance of the OpenAI functions agent.
- It returns an instance of the `AgentExecutor` class with the agent, tools, memory, verbose, and return_intermediate_steps parameters set.

📝 feat(__init__.py): add empty __init__.py file to the agents directory

This commit adds an empty `__init__.py` file to the `src/backend/langflow/components/agents` directory. The `__init__.py` file is necessary to make the `agents` directory a Python package.
2023-08-09 21:37:11 -03:00
Gabriel Luiz Freitas Almeida
2725e24ced 🚀 feat(constants.py): add BaseMemory to LANGCHAIN_BASE_TYPES to support custom memory implementation in Langchain interface
📝 WHY: The addition of BaseMemory to LANGCHAIN_BASE_TYPES allows for the customization of the memory component in the Langchain interface. This enables users to implement their own memory functionality according to their specific needs.
2023-08-09 21:11:00 -03:00
Gabriel Luiz Freitas Almeida
67f8bb9dab 🐛 fix(base.py): fix memory inputs only if langchain_object is not an instance of AgentExecutor to prevent unnecessary fix
🔀 chore(base.py): merge changes from langchain.agents.agent module to base module
2023-08-09 21:10:31 -03:00
Cristhian Zanforlin Lousa
9bccb95cd0 Merge branch 'login-admin' into login 2023-08-09 20:34:53 -03:00
Cristhian Zanforlin Lousa
5a690ecb6f 🔨 refactor(AdminPage/index.tsx): improve code formatting and structure for better readability and maintainability 2023-08-09 20:34:36 -03:00
igorrCarvalho
21f47e6c4d refactor: Remove unnecesary email field 2023-08-09 20:30:02 -03:00
igorrCarvalho
3348bfbcb6 merge login into login 2023-08-09 20:14:33 -03:00
igorrCarvalho
468f6ec573 feat: Add signUp page and Sign out button 2023-08-09 20:06:22 -03:00
Cristhian Zanforlin Lousa
075e9dc254 🐛 fix(AdminPage/index.tsx): adjust height of custom-scroll div to improve layout consistency 2023-08-09 20:05:31 -03:00
Cristhian Zanforlin Lousa
5009715835 🔧 fix(PaginatorComponent): remove unused imports and replace lucide-react icons with IconComponent for better modularity and reusability
 feat(PaginatorComponent): add support for custom icons using IconComponent for better customization options
🔧 fix(UserManagementModal): remove unused imports and fix import order for better organization
 feat(UserManagementModal): add password confirmation validation and reset form on modal open for better user experience
🔧 fix(UserManagementModal): fix modal size to be full height for better visibility and usability
 feat(UserManagementModal): add form fields for username and password with validation for better user input handling
🔧 fix(UserManagementModal): fix form field labels and error messages for better clarity and user guidance
 feat(UserManagementModal): add form submission and confirmation handling for better user interaction and data management
🔧 fix(UserManagementModal): fix cancel button styling for better consistency and user experience

🔧 fix(baseModal): add missing size options to the size prop to support additional modal sizes
 feat(baseModal): add support for "small-h-full" and "medium-h-full" sizes to allow modals with smaller height and full width
🔧 fix(AdminPage): import missing IconComponent and ShadTooltip components
 feat(AdminPage): add functionality to handle editing and adding new users
🔧 fix(applies.css): add missing semicolon to .field-invalid and .label-invalid classes
🔧 fix(styleUtils.ts): import missing Pencil, ChevronsRight, and ChevronsLeft icons
2023-08-09 19:33:46 -03:00
Gabriel Luiz Freitas Almeida
8c41415a32 🐛 fix(custom_component.py): handle case when return_type is None to prevent errors
🐛 fix(test_custom_component.py): update assertion to expect return_type as a list instead of a string
🐛 fix(test_vectorstore_template.py): update assertion to check if all vectorstores in settings are present in the response
2023-08-09 17:50:03 -03:00