From b205e09ccb333a9e6cd5f44e5a1a6a100e907435 Mon Sep 17 00:00:00 2001 From: lincheoll Date: Wed, 22 Jan 2025 19:09:01 +0900 Subject: [PATCH] fix: Resolve chat error in openai-plugin (#2649) --- .../src/actions/analyzeSentimentAction.ts | 18 ++++++++++++++--- .../src/actions/editTextAction.ts | 11 ++++++++-- .../src/actions/generateEmbeddingAction.ts | 11 ++++++++-- .../src/actions/generateTextAction.ts | 20 +++++++++++++++---- .../src/actions/moderateContentAction.ts | 11 ++++++++-- .../src/actions/transcribeAudioAction.ts | 11 ++++++++-- 6 files changed, 67 insertions(+), 15 deletions(-) diff --git a/packages/plugin-openai/src/actions/analyzeSentimentAction.ts b/packages/plugin-openai/src/actions/analyzeSentimentAction.ts index 839c1a6e70f..85260a9674c 100644 --- a/packages/plugin-openai/src/actions/analyzeSentimentAction.ts +++ b/packages/plugin-openai/src/actions/analyzeSentimentAction.ts @@ -1,6 +1,10 @@ - import { Action } from "@elizaos/core"; -import { validatePrompt, validateApiKey, callOpenAiApi, buildRequestData } from "./action"; +import { + validatePrompt, + validateApiKey, + callOpenAiApi, + buildRequestData, +} from "./action"; export const analyzeSentimentAction: Action = { name: "analyzeSentiment", @@ -12,7 +16,15 @@ export const analyzeSentimentAction: Action = { const apiKey = validateApiKey(); const requestData = buildRequestData(prompt); - const response = await callOpenAiApi("https://api.openai.com/v1/completions", requestData, apiKey); + const response = await callOpenAiApi( + "https://api.openai.com/v1/completions", + requestData, + apiKey, + ); return response.choices[0].text.trim(); }, + validate: async (runtime, message) => { + return !!runtime.getSetting("OPENAI_API_KEY"); + }, + examples: [], }; diff --git a/packages/plugin-openai/src/actions/editTextAction.ts b/packages/plugin-openai/src/actions/editTextAction.ts index 239352d7b81..c984ab24ef9 100644 --- a/packages/plugin-openai/src/actions/editTextAction.ts +++ b/packages/plugin-openai/src/actions/editTextAction.ts @@ -1,4 +1,3 @@ - import { Action } from "@elizaos/core"; import { validatePrompt, validateApiKey, callOpenAiApi } from "./action"; @@ -18,7 +17,15 @@ export const editTextAction: Action = { instruction, }; - const response = await callOpenAiApi("https://api.openai.com/v1/edits", requestData, apiKey); + const response = await callOpenAiApi( + "https://api.openai.com/v1/edits", + requestData, + apiKey, + ); return response.choices[0].text.trim(); }, + validate: async (runtime, message) => { + return !!runtime.getSetting("OPENAI_API_KEY"); + }, + examples: [], }; diff --git a/packages/plugin-openai/src/actions/generateEmbeddingAction.ts b/packages/plugin-openai/src/actions/generateEmbeddingAction.ts index 50764b6c805..470ceda28e6 100644 --- a/packages/plugin-openai/src/actions/generateEmbeddingAction.ts +++ b/packages/plugin-openai/src/actions/generateEmbeddingAction.ts @@ -1,4 +1,3 @@ - import { Action } from "@elizaos/core"; import { validatePrompt, validateApiKey, callOpenAiApi } from "./action"; @@ -15,7 +14,15 @@ export const generateEmbeddingAction: Action = { input, }; - const response = await callOpenAiApi("https://api.openai.com/v1/embeddings", requestData, apiKey); + const response = await callOpenAiApi( + "https://api.openai.com/v1/embeddings", + requestData, + apiKey, + ); return response.data.map((item) => item.embedding); }, + validate: async (runtime, message) => { + return !!runtime.getSetting("OPENAI_API_KEY"); + }, + examples: [], }; diff --git a/packages/plugin-openai/src/actions/generateTextAction.ts b/packages/plugin-openai/src/actions/generateTextAction.ts index 377f598ffb9..5c2bf03586e 100644 --- a/packages/plugin-openai/src/actions/generateTextAction.ts +++ b/packages/plugin-openai/src/actions/generateTextAction.ts @@ -1,6 +1,10 @@ - import { Action } from "@elizaos/core"; -import { validatePrompt, validateApiKey, callOpenAiApi, buildRequestData } from "./action"; +import { + validatePrompt, + validateApiKey, + callOpenAiApi, + buildRequestData, +} from "./action"; export const generateTextAction: Action = { name: "generateText", @@ -14,10 +18,18 @@ export const generateTextAction: Action = { prompt, message.content.model, message.content.maxTokens, - message.content.temperature + message.content.temperature, ); - const response = await callOpenAiApi("https://api.openai.com/v1/completions", requestData, apiKey); + const response = await callOpenAiApi( + "https://api.openai.com/v1/completions", + requestData, + apiKey, + ); return { text: response.choices[0].text.trim() }; }, + validate: async (runtime, message) => { + return !!runtime.getSetting("OPENAI_API_KEY"); + }, + examples: [], }; diff --git a/packages/plugin-openai/src/actions/moderateContentAction.ts b/packages/plugin-openai/src/actions/moderateContentAction.ts index 9648b992148..e91910a3644 100644 --- a/packages/plugin-openai/src/actions/moderateContentAction.ts +++ b/packages/plugin-openai/src/actions/moderateContentAction.ts @@ -1,4 +1,3 @@ - import { Action } from "@elizaos/core"; import { validatePrompt, validateApiKey, callOpenAiApi } from "./action"; @@ -12,7 +11,15 @@ export const moderateContentAction: Action = { const apiKey = validateApiKey(); const requestData = { input }; - const response = await callOpenAiApi("https://api.openai.com/v1/moderations", requestData, apiKey); + const response = await callOpenAiApi( + "https://api.openai.com/v1/moderations", + requestData, + apiKey, + ); return response.results; }, + validate: async (runtime, message) => { + return !!runtime.getSetting("OPENAI_API_KEY"); + }, + examples: [], }; diff --git a/packages/plugin-openai/src/actions/transcribeAudioAction.ts b/packages/plugin-openai/src/actions/transcribeAudioAction.ts index d5f21a07071..f19b87e98be 100644 --- a/packages/plugin-openai/src/actions/transcribeAudioAction.ts +++ b/packages/plugin-openai/src/actions/transcribeAudioAction.ts @@ -1,4 +1,3 @@ - import { Action } from "@elizaos/core"; import { validateApiKey, callOpenAiApi } from "./action"; @@ -16,7 +15,15 @@ export const transcribeAudioAction: Action = { formData.append("file", file); formData.append("model", "whisper-1"); - const response = await callOpenAiApi("https://api.openai.com/v1/audio/transcriptions", formData, apiKey); + const response = await callOpenAiApi( + "https://api.openai.com/v1/audio/transcriptions", + formData, + apiKey, + ); return response.text; }, + validate: async (runtime, message) => { + return !!runtime.getSetting("OPENAI_API_KEY"); + }, + examples: [], };