fix: input value error when tweaks are active (#4288)

fix: remove input value when tweaks are active to prevent error on api call
This commit is contained in:
anovazzi1 2024-10-28 12:49:43 -03:00 • committed by GitHub
commit 4aa7aed0a9
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 21 additions and 16 deletions

View file

@ -12,6 +12,7 @@ export function getCurlRunCode({
isAuth, isAuth,
tweaksBuildedObject, tweaksBuildedObject,
endpointName, endpointName,
activeTweaks,
}: GetCodeType): string { }: GetCodeType): string {
let tweaksString = "{}"; let tweaksString = "{}";
const inputs = useFlowStore.getState().inputs; const inputs = useFlowStore.getState().inputs;
@ -28,7 +29,7 @@ export function getCurlRunCode({
-H 'Content-Type: application/json'\\${ -H 'Content-Type: application/json'\\${
!isAuth ? `\n -H 'x-api-key: <your api key>'\\` : "" !isAuth ? `\n -H 'x-api-key: <your api key>'\\` : ""
} }
-d '{"input_value": "message", -d '{${!activeTweaks ? `"input_value": "message",` : ""}
"output_type": ${hasChatOutput ? '"chat"' : '"text"'}, "output_type": ${hasChatOutput ? '"chat"' : '"text"'},
"input_type": ${hasChatInput ? '"chat"' : '"text"'}, "input_type": ${hasChatInput ? '"chat"' : '"text"'},
"tweaks": ${tweaksString}}' "tweaks": ${tweaksString}}'

View file

@ -13,6 +13,7 @@ export default function getJsApiCode({
isAuth, isAuth,
tweaksBuildedObject, tweaksBuildedObject,
endpointName, endpointName,
activeTweaks,
}: GetCodeType): string { }: GetCodeType): string {
let tweaksString = "{}"; let tweaksString = "{}";
if (tweaksBuildedObject) if (tweaksBuildedObject)
@ -23,7 +24,7 @@ export default function getJsApiCode({
this.baseURL = baseURL; this.baseURL = baseURL;
this.apiKey = apiKey; this.apiKey = apiKey;
} }
async post(endpoint, body, headers = {"Content-Type": "application/json"}) { async post(endpoint, body, headers = {"Content-Type": "application/json"}) {
if (this.apiKey) { if (this.apiKey) {
headers["Authorization"] = \`Bearer \${this.apiKey}\`; headers["Authorization"] = \`Bearer \${this.apiKey}\`;
@ -35,7 +36,7 @@ export default function getJsApiCode({
headers: headers, headers: headers,
body: JSON.stringify(body) body: JSON.stringify(body)
}); });
const responseMessage = await response.json(); const responseMessage = await response.json();
if (!response.ok) { if (!response.ok) {
throw new Error(\`\${response.status} \${response.statusText} - \${JSON.stringify(responseMessage)}\`); throw new Error(\`\${response.status} \${response.statusText} - \${JSON.stringify(responseMessage)}\`);
@ -46,12 +47,12 @@ export default function getJsApiCode({
throw error; throw error;
} }
} }
async initiateSession(flowId, inputValue, inputType = 'chat', outputType = 'chat', stream = false, tweaks = {}) { async initiateSession(flowId, inputValue, inputType = 'chat', outputType = 'chat', stream = false, tweaks = {}) {
const endpoint = \`/api/v1/run/\${flowId}?stream=\${stream}\`; const endpoint = \`/api/v1/run/\${flowId}?stream=\${stream}\`;
return this.post(endpoint, { input_value: inputValue, input_type: inputType, output_type: outputType, tweaks: tweaks }); return this.post(endpoint, { ${activeTweaks ? "" : "input_value: inputValue, "}input_type: inputType, output_type: outputType, tweaks: tweaks });
} }
async handleStream(streamUrl, onUpdate, onClose, onError) { async handleStream(streamUrl, onUpdate, onClose, onError) {
try { try {
const response = await fetch(streamUrl); const response = await fetch(streamUrl);
@ -66,7 +67,7 @@ export default function getJsApiCode({
} }
const chunk = decoder.decode(value); const chunk = decoder.decode(value);
const lines = chunk.split(\'\\n\').filter(line => line.trim() !== ''); const lines = chunk.split(\'\\n\').filter(line => line.trim() !== '');
for (const line of lines) { for (const line of lines) {
if (line.startsWith('data: ')) { if (line.startsWith('data: ')) {
try { try {
@ -83,7 +84,7 @@ export default function getJsApiCode({
onError(error); onError(error);
} }
} }
async runFlow(flowIdOrName, inputValue, inputType = 'chat', outputType = 'chat', tweaks, stream = false, onUpdate, onClose, onError) { async runFlow(flowIdOrName, inputValue, inputType = 'chat', outputType = 'chat', tweaks, stream = false, onUpdate, onClose, onError) {
try { try {
const initResponse = await this.initiateSession(flowIdOrName, inputValue, inputType, outputType, stream, tweaks); const initResponse = await this.initiateSession(flowIdOrName, inputValue, inputType, outputType, stream, tweaks);
@ -98,13 +99,13 @@ export default function getJsApiCode({
} }
} }
} }
async function main(inputValue, inputType = 'chat', outputType = 'chat', stream = false) { async function main(inputValue, inputType = 'chat', outputType = 'chat', stream = false) {
const flowIdOrName = '${endpointName || flowId}'; const flowIdOrName = '${endpointName || flowId}';
const langflowClient = new LangflowClient('${window.location.protocol}//${window.location.host}', const langflowClient = new LangflowClient('${window.location.protocol}//${window.location.host}',
${isAuth ? "'your-api-key'" : "null"}); ${isAuth ? "'your-api-key'" : "null"});
const tweaks = ${tweaksString}; const tweaks = ${tweaksString};
try { try {
const response = await langflowClient.runFlow( const response = await langflowClient.runFlow(
flowIdOrName, flowIdOrName,
@ -117,19 +118,19 @@ export default function getJsApiCode({
(message) => console.log("Stream Closed:", message), // onClose (message) => console.log("Stream Closed:", message), // onClose
(error) => console.error("Stream Error:", error) // onError (error) => console.error("Stream Error:", error) // onError
); );
if (!stream && response) { if (!stream && response) {
const flowOutputs = response.outputs[0]; const flowOutputs = response.outputs[0];
const firstComponentOutputs = flowOutputs.outputs[0]; const firstComponentOutputs = flowOutputs.outputs[0];
const output = firstComponentOutputs.outputs.message; const output = firstComponentOutputs.outputs.message;
console.log("Final Output:", output.message.text); console.log("Final Output:", output.message.text);
} }
} catch (error) { } catch (error) {
console.error('Main Error:', error.message); console.error('Main Error:', error.message);
} }
} }
const args = process.argv.slice(2); const args = process.argv.slice(2);
main( main(
args[0], // inputValue args[0], // inputValue

View file

@ -12,6 +12,7 @@ export default function getPythonApiCode({
flowId, flowId,
tweaksBuildedObject, tweaksBuildedObject,
endpointName, endpointName,
activeTweaks,
}: GetCodeType): string { }: GetCodeType): string {
let tweaksString = "{}"; let tweaksString = "{}";
if (tweaksBuildedObject) if (tweaksBuildedObject)
@ -61,7 +62,7 @@ def run_flow(message: str,
api_url = f"{BASE_API_URL}/api/v1/run/{endpoint}" api_url = f"{BASE_API_URL}/api/v1/run/{endpoint}"
payload = { payload = {
"input_value": message, ${!activeTweaks ? `"input_value": message,` : ""}
"output_type": output_type, "output_type": output_type,
"input_type": input_type, "input_type": input_type,
} }

View file

@ -9,6 +9,7 @@ import { GetCodeType } from "@/types/tweaks";
export default function getPythonCode({ export default function getPythonCode({
flowName, flowName,
tweaksBuildedObject, tweaksBuildedObject,
activeTweaks,
}: GetCodeType): string { }: GetCodeType): string {
let tweaksString = "{}"; let tweaksString = "{}";
if (tweaksBuildedObject) if (tweaksBuildedObject)
@ -21,8 +22,7 @@ export default function getPythonCode({
TWEAKS = ${tweaksString} TWEAKS = ${tweaksString}
result = run_flow_from_json(flow="${flowName}.json", result = run_flow_from_json(flow="${flowName}.json",
input_value="message", ${!activeTweaks ? `input_value="message",\n ` : ""}session_id="", # provide a session id if you want to use session state
session_id="", # provide a session id if you want to use session state
fallback_to_env_vars=True, # False by default fallback_to_env_vars=True, # False by default
tweaks=TWEAKS)`; tweaks=TWEAKS)`;
} }

View file

@ -98,6 +98,7 @@ export const useTweaksStore = create<TweaksStoreType>((set, get) => ({
isAuth: autoLogin, isAuth: autoLogin,
tweaksBuildedObject: tweak, tweaksBuildedObject: tweak,
endpointName: flow?.endpoint_name, endpointName: flow?.endpoint_name,
activeTweaks: get().activeTweaks,
}; };
if (getCodes) { if (getCodes) {

View file

@ -13,4 +13,5 @@ export type GetCodeType = {
isAuth: boolean; isAuth: boolean;
tweaksBuildedObject: {}; tweaksBuildedObject: {};
endpointName?: string | null; endpointName?: string | null;
activeTweaks: boolean;
}; };