Text-to-SQL proof of concept (#5788)

Added:
- An "Ask AI" command to the command menu.
- A simple GraphQL resolver that converts the user's question into a
relevant SQL query using an LLM, runs the query, and returns the result.

<img width="428" alt="Screenshot 2024-06-09 at 20 53 09"
src="https://github.com/twentyhq/twenty/assets/171685816/57127f37-d4a6-498d-b253-733ffa0d209f">

No security concerns have been addressed, this is only a
proof-of-concept and not intended to be enabled in production.

All changes are behind a feature flag called `IS_ASK_AI_ENABLED`.

---------

Co-authored-by: Félix Malfait <felix.malfait@gmail.com>
This commit is contained in:
ad-elias
2024-07-04 08:57:26 +02:00
committed by GitHub
parent 25fce27fe3
commit 4c642a0bb8
46 changed files with 1463 additions and 40 deletions

View File

@ -30,6 +30,8 @@ type AutosizeTextInputProps = {
value?: string;
className?: string;
onBlur?: () => void;
autoFocus?: boolean;
disabled?: boolean;
};
const StyledContainer = styled.div`
@ -123,6 +125,8 @@ export const AutosizeTextInput = ({
value = '',
className,
onBlur,
autoFocus,
disabled,
}: AutosizeTextInputProps) => {
const [isFocused, setIsFocused] = useState(false);
const [isHidden, setIsHidden] = useState(
@ -212,7 +216,9 @@ export const AutosizeTextInput = ({
{!isHidden && (
<StyledTextArea
ref={textInputRef}
autoFocus={variant === AutosizeTextInputVariant.Button}
autoFocus={
autoFocus || variant === AutosizeTextInputVariant.Button
}
placeholder={placeholder ?? 'Write a comment'}
maxRows={MAX_ROWS}
minRows={computedMinRows}
@ -221,6 +227,7 @@ export const AutosizeTextInput = ({
onFocus={handleFocus}
onBlur={handleBlur}
variant={variant}
disabled={disabled}
/>
)}
{variant === AutosizeTextInputVariant.Icon && (