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:
parent
c8bdcf36b0
commit
4aa7aed0a9
6 changed files with 21 additions and 16 deletions
|
|
@ -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}}'
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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)`;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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) {
|
||||||
|
|
|
||||||
|
|
@ -13,4 +13,5 @@ export type GetCodeType = {
|
||||||
isAuth: boolean;
|
isAuth: boolean;
|
||||||
tweaksBuildedObject: {};
|
tweaksBuildedObject: {};
|
||||||
endpointName?: string | null;
|
endpointName?: string | null;
|
||||||
|
activeTweaks: boolean;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue