Refactor: move getPythonApiCode to apiModal folder
This commit is contained in:
parent
78fe9f53b2
commit
a480021a54
3 changed files with 59 additions and 65 deletions
|
|
@ -0,0 +1,58 @@
|
||||||
|
/**
|
||||||
|
* Function to get the python code for the API
|
||||||
|
* @param {string} flowId - The id of the flow
|
||||||
|
* @param {boolean} isAuth - If the API is authenticated
|
||||||
|
* @param {any[]} tweak - The tweaks
|
||||||
|
* @returns {string} - The python code
|
||||||
|
*/
|
||||||
|
export default function getPythonApiCode(
|
||||||
|
flowId: string,
|
||||||
|
isAuth: boolean,
|
||||||
|
tweaksBuildedObject,
|
||||||
|
): string {
|
||||||
|
const tweaksObject = tweaksBuildedObject[0];
|
||||||
|
return `import requests
|
||||||
|
from typing import Optional
|
||||||
|
|
||||||
|
BASE_API_URL = "${window.location.protocol}//${window.location.host}/api/v1/run"
|
||||||
|
FLOW_ID = "${flowId}"
|
||||||
|
# You can tweak the flow by adding a tweaks dictionary
|
||||||
|
# e.g {"OpenAI-XXXXX": {"model_name": "gpt-4"}}
|
||||||
|
TWEAKS = ${JSON.stringify(tweaksObject, null, 2)}
|
||||||
|
|
||||||
|
def run_flow(message: str,
|
||||||
|
flow_id: str,
|
||||||
|
output_type: str = "chat",
|
||||||
|
input_type: str = "chat",
|
||||||
|
tweaks: Optional[dict] = None,
|
||||||
|
api_key: Optional[str] = None) -> dict:
|
||||||
|
"""
|
||||||
|
Run a flow with a given message and optional tweaks.
|
||||||
|
|
||||||
|
:param message: The message to send to the flow
|
||||||
|
:param flow_id: The ID of the flow to run
|
||||||
|
:param tweaks: Optional tweaks to customize the flow
|
||||||
|
:return: The JSON response from the flow
|
||||||
|
"""
|
||||||
|
api_url = f"{BASE_API_URL}/{flow_id}"
|
||||||
|
|
||||||
|
payload = {
|
||||||
|
"input_value": message,
|
||||||
|
"output_type": output_type,
|
||||||
|
"input_type": input_type,
|
||||||
|
}
|
||||||
|
headers = None
|
||||||
|
if tweaks:
|
||||||
|
payload["tweaks"] = tweaks
|
||||||
|
if api_key:
|
||||||
|
headers = {"x-api-key": api_key}
|
||||||
|
response = requests.post(api_url, json=payload, headers=headers)
|
||||||
|
return response.json()
|
||||||
|
|
||||||
|
# Setup any tweaks you want to apply to the flow
|
||||||
|
message = "message"
|
||||||
|
${!isAuth ? `api_key = "<your api key>"` : ""}
|
||||||
|
print(run_flow(message=message, flow_id=FLOW_ID, tweaks=TWEAKS${
|
||||||
|
!isAuth ? `, api_key=api_key` : ""
|
||||||
|
}))`;
|
||||||
|
}
|
||||||
|
|
@ -15,7 +15,6 @@ import { uniqueTweakType } from "../../../types/components";
|
||||||
import { FlowType } from "../../../types/flow/index";
|
import { FlowType } from "../../../types/flow/index";
|
||||||
import {
|
import {
|
||||||
getCurlCode,
|
getCurlCode,
|
||||||
getPythonApiCode,
|
|
||||||
getPythonCode,
|
getPythonCode,
|
||||||
getWidgetCode,
|
getWidgetCode,
|
||||||
tabsArray,
|
tabsArray,
|
||||||
|
|
@ -27,6 +26,7 @@ import { checkCanBuildTweakObject } from "../utils/check-can-build-tweak-object"
|
||||||
import { getChangesType } from "../utils/get-changes-types";
|
import { getChangesType } from "../utils/get-changes-types";
|
||||||
import { getNodesWithDefaultValue } from "../utils/get-nodes-with-default-value";
|
import { getNodesWithDefaultValue } from "../utils/get-nodes-with-default-value";
|
||||||
import { getValue } from "../utils/get-value";
|
import { getValue } from "../utils/get-value";
|
||||||
|
import getPythonApiCode from "../utils/get-python-api-code";
|
||||||
|
|
||||||
const ApiModal = forwardRef(
|
const ApiModal = forwardRef(
|
||||||
(
|
(
|
||||||
|
|
|
||||||
|
|
@ -113,11 +113,6 @@ export function getRandomKeyByssmm(): string {
|
||||||
return seconds + milliseconds + Math.abs(Math.floor(Math.random() * 10001));
|
return seconds + milliseconds + Math.abs(Math.floor(Math.random() * 10001));
|
||||||
}
|
}
|
||||||
|
|
||||||
export function varHighlightHTML({ name }: IVarHighlightType): string {
|
|
||||||
const html = `<span class="font-semibold chat-message-highlight">{${name}}</span>`;
|
|
||||||
return html;
|
|
||||||
}
|
|
||||||
|
|
||||||
export function buildTweakObject(tweak: tweakType) {
|
export function buildTweakObject(tweak: tweakType) {
|
||||||
tweak.forEach((el) => {
|
tweak.forEach((el) => {
|
||||||
Object.keys(el).forEach((key) => {
|
Object.keys(el).forEach((key) => {
|
||||||
|
|
@ -146,65 +141,6 @@ export function getChatInputField(flowState?: FlowState) {
|
||||||
return chat_input_field;
|
return chat_input_field;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Function to get the python code for the API
|
|
||||||
* @param {string} flowId - The id of the flow
|
|
||||||
* @param {boolean} isAuth - If the API is authenticated
|
|
||||||
* @param {any[]} tweak - The tweaks
|
|
||||||
* @returns {string} - The python code
|
|
||||||
*/
|
|
||||||
export function getPythonApiCode(
|
|
||||||
flowId: string,
|
|
||||||
isAuth: boolean,
|
|
||||||
tweaksBuildedObject,
|
|
||||||
): string {
|
|
||||||
const tweaksObject = tweaksBuildedObject[0];
|
|
||||||
return `import requests
|
|
||||||
from typing import Optional
|
|
||||||
|
|
||||||
BASE_API_URL = "${window.location.protocol}//${window.location.host}/api/v1/run"
|
|
||||||
FLOW_ID = "${flowId}"
|
|
||||||
# You can tweak the flow by adding a tweaks dictionary
|
|
||||||
# e.g {"OpenAI-XXXXX": {"model_name": "gpt-4"}}
|
|
||||||
TWEAKS = ${JSON.stringify(tweaksObject, null, 2)}
|
|
||||||
|
|
||||||
def run_flow(message: str,
|
|
||||||
flow_id: str,
|
|
||||||
output_type: str = "chat",
|
|
||||||
input_type: str = "chat",
|
|
||||||
tweaks: Optional[dict] = None,
|
|
||||||
api_key: Optional[str] = None) -> dict:
|
|
||||||
"""
|
|
||||||
Run a flow with a given message and optional tweaks.
|
|
||||||
|
|
||||||
:param message: The message to send to the flow
|
|
||||||
:param flow_id: The ID of the flow to run
|
|
||||||
:param tweaks: Optional tweaks to customize the flow
|
|
||||||
:return: The JSON response from the flow
|
|
||||||
"""
|
|
||||||
api_url = f"{BASE_API_URL}/{flow_id}"
|
|
||||||
|
|
||||||
payload = {
|
|
||||||
"input_value": message,
|
|
||||||
"output_type": output_type,
|
|
||||||
"input_type": input_type,
|
|
||||||
}
|
|
||||||
headers = None
|
|
||||||
if tweaks:
|
|
||||||
payload["tweaks"] = tweaks
|
|
||||||
if api_key:
|
|
||||||
headers = {"x-api-key": api_key}
|
|
||||||
response = requests.post(api_url, json=payload, headers=headers)
|
|
||||||
return response.json()
|
|
||||||
|
|
||||||
# Setup any tweaks you want to apply to the flow
|
|
||||||
message = "message"
|
|
||||||
${!isAuth ? `api_key = "<your api key>"` : ""}
|
|
||||||
print(run_flow(message=message, flow_id=FLOW_ID, tweaks=TWEAKS${
|
|
||||||
!isAuth ? `, api_key=api_key` : ""
|
|
||||||
}))`;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function to get the curl code for the API
|
* Function to get the curl code for the API
|
||||||
* @param {string} flowId - The id of the flow
|
* @param {string} flowId - The id of the flow
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue