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

View file

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

View file

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

View file

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

View file

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

View file

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