Skip to content

Commit 738fad6

Browse files
solves issue #17031 (#17475)
Co-authored-by: Jeevika Sirwani <jeevika.sirwani4@gmail.com>
1 parent 9c81a3c commit 738fad6

File tree

13 files changed

+232
-16
lines changed

13 files changed

+232
-16
lines changed

components/openai/actions/chat-using-file-search/chat-using-file-search.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import constants from "../../common/constants.mjs";
55
export default {
66
...common,
77
name: "Chat using File Search",
8-
version: "0.0.5",
8+
version: "0.0.6",
99
key: "openai-chat-using-file-search",
1010
description: "Chat with your files knowledge base (vector stores). [See the documentation](https://platform.openai.com/docs/guides/tools-file-search)",
1111
type: "action",

components/openai/actions/chat-using-functions/chat-using-functions.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import constants from "../../common/constants.mjs";
55
export default {
66
...common,
77
name: "Chat using Functions",
8-
version: "0.0.6",
8+
version: "0.0.7",
99
key: "openai-chat-using-functions",
1010
description: "Chat with your models and allow them to invoke functions. Optionally, you can build and invoke workflows as functions. [See the documentation](https://platform.openai.com/docs/guides/function-calling)",
1111
type: "action",

components/openai/actions/chat-using-web-search/chat-using-web-search.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import constants from "../../common/constants.mjs";
55
export default {
66
...common,
77
name: "Chat using Web Search",
8-
version: "0.0.5",
8+
version: "0.0.6",
99
key: "openai-chat-using-web-search",
1010
description: "Chat using the web search tool. [See the documentation](https://platform.openai.com/docs/guides/tools-web-search)",
1111
type: "action",
Lines changed: 171 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,171 @@
1+
import openai from "../../openai.app.mjs";
2+
import common from "../common/common.mjs";
3+
import constants from "../../common/constants.mjs";
4+
import {
5+
parseArray,
6+
parseJson,
7+
} from "../../common/helpers.mjs";
8+
9+
export default {
10+
...common,
11+
key: "openai-chat-with-responses-api",
12+
name: "Chat With Responses API",
13+
version: "0.0.1",
14+
description: "Send a chat via the Responses API, mixing built-in tools and MCP server tools. [See the documentation](https://platform.openai.com/docs/guides/tools?api-mode=responses).",
15+
type: "action",
16+
props: {
17+
openai,
18+
modelId: {
19+
description: "Model used to generate the response",
20+
propDefinition: [
21+
openai,
22+
"chatCompletionModelId",
23+
],
24+
},
25+
input: {
26+
description: "Text input to the model used to generate a response",
27+
propDefinition: [
28+
openai,
29+
"input",
30+
],
31+
},
32+
instructions: {
33+
description: "Inserts a system (or developer) message as the first item in the model's context",
34+
propDefinition: [
35+
openai,
36+
"instructions",
37+
],
38+
},
39+
previousResponseId: {
40+
type: "string",
41+
label: "Previous Response ID",
42+
description: "The unique ID of the previous response to the model. Use this to create multi-turn conversations",
43+
optional: true,
44+
},
45+
truncation: {
46+
type: "string",
47+
label: "Truncation",
48+
description:
49+
"Specifies the truncation mode for the response if it exceeds the context window",
50+
default: "auto",
51+
options: [
52+
"auto",
53+
"disabled",
54+
],
55+
optional: true,
56+
},
57+
responseFormat: {
58+
type: "string",
59+
label: "Response Format",
60+
description: "- `text`: Returns unstructured text output.\n- `json_schema`: Enforces a specific structure using a JSON schema.",
61+
options: [
62+
"text",
63+
"json_schema",
64+
],
65+
default: "text",
66+
optional: true,
67+
reloadProps: true,
68+
},
69+
builtInTools: {
70+
type: "string[]",
71+
label: "Built-In Tools",
72+
description: "Which of OpenAI's first-party tools to enable (web search, file search, code interpreter).",
73+
options: [
74+
{
75+
label: "Web Search",
76+
value: "web_search_preview",
77+
},
78+
{
79+
label: "File Search",
80+
value: "file_search",
81+
},
82+
{
83+
label: "Code Interpreter",
84+
value: "code_interpreter",
85+
},
86+
],
87+
default: [],
88+
},
89+
otherTools: {
90+
type: "string[]",
91+
label: "Other Tools",
92+
description: "Other tools to include in the chat. [See the documentation](https://platform.openai.com/docs/guides/tools-remote-mcp). Example: `{ type: \"mcp\", server_label: \"gmail\", server_url: \"https://remote.mcp.pipedream.net\", headers: {}, require_approval: \"never\" }`",
93+
optional: true,
94+
},
95+
},
96+
additionalProps() {
97+
if (this.responseFormat === constants.CHAT_RESPONSE_FORMAT.JSON_SCHEMA.value) {
98+
return {
99+
schemaName: {
100+
type: "string",
101+
label: "Name",
102+
description: "The name of the schema.",
103+
},
104+
schema: {
105+
type: "string",
106+
label: "JSON Schema",
107+
description: "Define the schema that the model's output must adhere to. Only supported models are `gpt-4o-mini`, `gpt-4o-mini-2024-07-18`, `gpt-4o-2024-08-06` and later.",
108+
},
109+
};
110+
}
111+
return {};
112+
},
113+
async run({ $ }) {
114+
const {
115+
builtInTools,
116+
otherTools,
117+
modelId,
118+
input,
119+
instructions,
120+
previousResponseId,
121+
truncation,
122+
responseFormat,
123+
schemaName,
124+
schema,
125+
} = this;
126+
127+
const tools = builtInTools.map((tool) => ({
128+
type: tool,
129+
}));
130+
131+
if (otherTools) {
132+
tools.push(...parseArray(otherTools));
133+
}
134+
135+
const data = {
136+
model: modelId,
137+
input,
138+
instructions,
139+
previous_response_id: previousResponseId,
140+
truncation,
141+
tools,
142+
};
143+
144+
if (responseFormat === constants.CHAT_RESPONSE_FORMAT.JSON_SCHEMA.value) {
145+
try {
146+
data.text = {
147+
format: {
148+
type: responseFormat,
149+
name: schemaName,
150+
schema: parseJson(schema),
151+
},
152+
};
153+
} catch {
154+
throw new Error("Invalid JSON format in the provided JSON Schema");
155+
}
156+
}
157+
158+
const response = await this.openai.responses({
159+
$,
160+
data,
161+
debug: true,
162+
});
163+
164+
if (response) {
165+
$.export("$summary", `Successfully sent chat to OpenAI Responses API with ID \`${response.id}\`.`);
166+
$.export("chat_responses", response.output);
167+
}
168+
169+
return response;
170+
},
171+
};

components/openai/actions/chat/chat.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import constants from "../../common/constants.mjs";
55
export default {
66
...common,
77
name: "Chat",
8-
version: "0.3.1",
8+
version: "0.3.2",
99
key: "openai-chat",
1010
description: "The Chat API, using the `gpt-3.5-turbo` or `gpt-4` model. [See the documentation](https://platform.openai.com/docs/api-reference/chat)",
1111
type: "action",

components/openai/actions/classify-items-into-categories/classify-items-into-categories.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import common from "../common/common-helper.mjs";
33
export default {
44
...common,
55
name: "Classify Items into Categories",
6-
version: "0.1.7",
6+
version: "0.1.8",
77
key: "openai-classify-items-into-categories",
88
description: "Classify items into specific categories using the Chat API. [See the documentation](https://platform.openai.com/docs/api-reference/chat)",
99
type: "action",

components/openai/actions/create-embeddings/create-embeddings.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import common from "../common/common.mjs";
44

55
export default {
66
name: "Create Embeddings",
7-
version: "0.0.19",
7+
version: "0.0.20",
88
key: "openai-create-embeddings",
99
description: "Get a vector representation of a given input that can be easily consumed by machine learning models and algorithms. [See the documentation](https://platform.openai.com/docs/api-reference/embeddings)",
1010
type: "action",

components/openai/actions/send-prompt/send-prompt.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import common from "../common/common.mjs";
44
export default {
55
...common,
66
name: "Create Completion (Send Prompt)",
7-
version: "0.1.18",
7+
version: "0.1.19",
88
key: "openai-send-prompt",
99
description: "OpenAI recommends using the **Chat** action for the latest `gpt-3.5-turbo` API, since it's faster and 10x cheaper. This action creates a completion for the provided prompt and parameters using the older `/completions` API. [See the documentation](https://beta.openai.com/docs/api-reference/completions/create)",
1010
type: "action",

components/openai/actions/summarize/summarize.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import constants from "../../common/constants.mjs";
44
export default {
55
...common,
66
name: "Summarize Text",
7-
version: "0.1.7",
7+
version: "0.1.8",
88
key: "openai-summarize",
99
description: "Summarizes text using the Chat API. [See the documentation](https://platform.openai.com/docs/api-reference/chat)",
1010
type: "action",

components/openai/actions/translate-text/translate-text.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ const langOptions = lang.LANGUAGES.map((l) => ({
99
export default {
1010
...common,
1111
name: "Translate Text (Whisper)",
12-
version: "0.1.7",
12+
version: "0.1.8",
1313
key: "openai-translate-text",
1414
description: "Translate text from one language to another using the Chat API. [See the documentation](https://platform.openai.com/docs/api-reference/chat)",
1515
type: "action",

0 commit comments

Comments
 (0)