Merge branch 'form_io' of https://github.com/logspace-ai/langflow into form_io

This commit is contained in:
Cristhian Zanforlin Lousa 2023-07-10 14:39:18 -03:00
commit df31285395
16 changed files with 226 additions and 189 deletions

View file

@ -220,7 +220,14 @@ class PromptVertex(Vertex):
# We'll build the prompt with the artifacts
# to show the user what the prompt looks like
# with the variables filled in
return self._built_object.format(**self.artifacts)
artifacts = self.artifacts.copy()
# Remove the handle_keys from the artifacts
# so the prompt format doesn't break
artifacts.pop("handle_keys", None)
try:
return self._built_object.format(**self.artifacts)
except KeyError:
return super()._built_object_repr()
else:
return super()._built_object_repr()

View file

@ -361,6 +361,12 @@ def instantiate_textsplitter(
"separator_type" in params and params["separator_type"] == "Text"
) or "separator_type" not in params:
params.pop("separator_type", None)
# separators might come in as an escaped string like \\n
# so we need to convert it to a string
if "separators" in params:
params["separators"] = (
params["separators"].encode().decode("unicode-escape")
)
text_splitter = class_object(**params)
else:
from langchain.text_splitter import Language

View file

@ -89,9 +89,7 @@ class MemoryFrontendNode(FrontendNode):
if field.name == "url":
field.show = True
if field.name == "entity_store":
field.show = True
if name == "SQLiteEntityStore":
field.show = True
field.show = False
class PostgresChatMessageHistoryFrontendNode(MemoryFrontendNode):

View file

@ -45,7 +45,7 @@ class TextSplittersFrontendNode(FrontendNode):
field_type="str",
required=True,
show=True,
value=".",
value="\\n",
name=name,
display_name="Separator",
)

View file

@ -27,60 +27,59 @@ export default function CodeAreaComponent({
useEffect(() => {
setMyValue(typeof value == "string" ? value : JSON.stringify(value));
}, [value]);
return (
<div className={disabled ? "pointer-events-none w-full " : " w-full"}>
<div className="flex w-full items-center">
<span
onClick={() => {
openPopUp(
<CodeAreaModal
value={myValue}
nodeClass={nodeClass}
setNodeClass={setNodeClass}
setValue={(t: string) => {
setMyValue(t);
onChange(t);
}}
/>
);
}}
className={
editNode
? "input-edit-node input-dialog"
: (disabled ? " input-disable " : "") +
" input-primary input-dialog"
}
>
{myValue !== "" ? myValue : "Type something..."}
</span>
<button
onClick={() => {
openPopUp(
<CodeAreaModal
setNodeClass={setNodeClass}
value={myValue}
nodeClass={nodeClass}
setValue={(t: string) => {
setMyValue(t);
onChange(t);
}}
/>
);
}}
>
{!editNode && (
<ExternalLink
strokeWidth={1.5}
className={
"icons-parameters-comp" +
(disabled ? " text-ring" : " hover:text-accent-foreground")
}
<div className={disabled ? "pointer-events-none w-full " : " w-full"}>
<div className="flex w-full items-center">
<span
onClick={() => {
openPopUp(
<CodeAreaModal
value={myValue}
nodeClass={nodeClass}
setNodeClass={setNodeClass}
setValue={(t: string) => {
setMyValue(t);
onChange(t);
}}
/>
)}
</button>
</div>
);
}}
className={
editNode
? "input-edit-node input-dialog"
: (disabled ? " input-disable " : "") +
" input-dialog input-primary"
}
>
{myValue !== "" ? myValue : "Type something..."}
</span>
<button
onClick={() => {
openPopUp(
<CodeAreaModal
setNodeClass={setNodeClass}
value={myValue}
nodeClass={nodeClass}
setValue={(t: string) => {
setMyValue(t);
onChange(t);
}}
/>
);
}}
>
{!editNode && (
<ExternalLink
strokeWidth={1.5}
className={
"icons-parameters-comp" +
(disabled ? " text-ring" : " hover:text-accent-foreground")
}
/>
)}
</button>
</div>
</div>
);
}

View file

@ -99,7 +99,9 @@ export default function InputFileComponent({
className={
editNode
? "input-edit-node input-dialog text-muted-foreground"
: (disabled ? "input-disable input-primary input-dialog" : "input-primary input-dialog text-muted-foreground")
: disabled
? "input-disable input-dialog input-primary"
: "input-dialog input-primary text-muted-foreground"
}
>
{myValue !== "" ? myValue : "No file"}

View file

@ -47,64 +47,64 @@ export default function PromptAreaComponent({
}, [reactFlowInstance, field_name, myValue, nodeClass, setNodeClass]);
return (
<div className={disabled ? "pointer-events-none w-full " : " w-full"}>
<div className="flex w-full items-center">
<span
onClick={() => {
openPopUp(
<GenericModal
type={TypeModal.PROMPT}
value={myValue}
buttonText="Check & Save"
modalTitle="Edit Prompt"
setValue={(t: string) => {
setMyValue(t);
onChange(t);
}}
nodeClass={nodeClass}
setNodeClass={setNodeClass}
/>
);
}}
className={
editNode
? "input-edit-node input-dialog"
: (disabled ? " input-disable " : "") +
" input-primary input-dialog"
}
>
{myValue !== "" ? myValue : "Type your prompt here"}
</span>
<button
onClick={() => {
openPopUp(
<GenericModal
field_name={field_name}
type={TypeModal.PROMPT}
value={myValue}
buttonText="Check & Save"
modalTitle="Edit Prompt"
setValue={(t: string) => {
setMyValue(t);
onChange(t);
}}
nodeClass={nodeClass}
setNodeClass={setNodeClass}
/>
);
}}
>
{!editNode && (
<ExternalLink
strokeWidth={1.5}
className={
"icons-parameters-comp" +
(disabled ? " text-ring" : " hover:text-accent-foreground")
}
<div className={disabled ? "pointer-events-none w-full " : " w-full"}>
<div className="flex w-full items-center">
<span
onClick={() => {
openPopUp(
<GenericModal
type={TypeModal.PROMPT}
value={myValue}
buttonText="Check & Save"
modalTitle="Edit Prompt"
setValue={(t: string) => {
setMyValue(t);
onChange(t);
}}
nodeClass={nodeClass}
setNodeClass={setNodeClass}
/>
)}
</button>
</div>
);
}}
className={
editNode
? "input-edit-node input-dialog"
: (disabled ? " input-disable " : "") +
" input-dialog input-primary"
}
>
{myValue !== "" ? myValue : "Type your prompt here"}
</span>
<button
onClick={() => {
openPopUp(
<GenericModal
field_name={field_name}
type={TypeModal.PROMPT}
value={myValue}
buttonText="Check & Save"
modalTitle="Edit Prompt"
setValue={(t: string) => {
setMyValue(t);
onChange(t);
}}
nodeClass={nodeClass}
setNodeClass={setNodeClass}
/>
);
}}
>
{!editNode && (
<ExternalLink
strokeWidth={1.5}
className={
"icons-parameters-comp" +
(disabled ? " text-ring" : " hover:text-accent-foreground")
}
/>
)}
</button>
</div>
</div>
);
}

View file

@ -27,8 +27,8 @@ export default function TextAreaComponent({
}, [closePopUp]);
return (
<div className={disabled ? "pointer-events-none w-full " : " w-full"}>
<div className="flex w-full items-center">
<div className={disabled ? "pointer-events-none w-full " : " w-full"}>
<div className="flex w-full items-center">
<input
value={myValue}
className={
@ -41,7 +41,6 @@ export default function TextAreaComponent({
setMyValue(e.target.value);
onChange(e.target.value);
}}
/>
<button

View file

@ -143,7 +143,7 @@ export default function ApiModal({ flow }: { flow: FlowType }) {
function startTweaks() {
const t = buildTweaks(flow);
tweak?.current?.push(t);
tweak?.current?.push(t);
}
function filterNodes() {

View file

@ -374,7 +374,9 @@ export default function ChatModal({
<ChatMessage
lockChat={lockChat}
chat={c}
lastMessage={chatHistory.length - 1 === i ? true : false}
lastMessage={
chatHistory.length - 1 === i ? true : false
}
key={i}
/>
))

View file

@ -34,13 +34,21 @@ export default function ChatMessage({
{!chat.isSend ? (
<div className="form-modal-chat-image">
<div className="form-modal-chat-bot-icon ">
<img src={Robot} className="form-modal-chat-icon-img" alt="robot_image"/>
<img
src={Robot}
className="form-modal-chat-icon-img"
alt="robot_image"
/>
</div>
</div>
) : (
<div className="form-modal-chat-image">
<div className="form-modal-chat-user-icon ">
<img src={MaleTechnology} className="form-modal-chat-icon-img" alt="male_technology"/>
<img
src={MaleTechnology}
className="form-modal-chat-icon-img"
alt="male_technology"
/>
</div>
</div>
)}

View file

@ -517,7 +517,9 @@ export default function FormModal({
<ChatMessage
lockChat={lockChat}
chat={c}
lastMessage={chatHistory.length - 1 === i ? true : false}
lastMessage={
chatHistory.length - 1 === i ? true : false
}
key={i}
/>
))

View file

@ -28,11 +28,10 @@ export type FlowStyleType = {
flow_id: string;
};
export type TweaksType = Array<
{
[key: string]: {
output_key?: string;
};
} & FlowStyleType
>;
>;