From c271e6d282db5f1e7524e45aa8014291975f3d99 Mon Sep 17 00:00:00 2001 From: tbxark Date: Wed, 14 Aug 2024 10:21:36 +0800 Subject: [PATCH] =?UTF-8?q?doc:=20=E8=B0=83=E6=95=B4=E5=87=BD=E6=95=B0?= =?UTF-8?q?=E7=9B=B8=E5=85=B3jsdoc?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dist/buildinfo.json | 2 +- dist/index.js | 6 +++--- dist/timestamp | 2 +- src/agent/agents.js | 13 ------------- src/agent/anthropic.js | 2 +- src/agent/azure.js | 2 +- src/agent/cohere.js | 2 +- src/agent/gemini.js | 2 +- src/agent/mistralai.js | 2 +- src/agent/openai.js | 2 +- src/agent/request.js | 22 +++++++++++++++------- src/agent/workersai.js | 2 +- src/types/agent.js | 32 +++++++++++++++++++++++++++++--- 13 files changed, 56 insertions(+), 35 deletions(-) diff --git a/dist/buildinfo.json b/dist/buildinfo.json index 9e3864d7..af7b8bd4 100644 --- a/dist/buildinfo.json +++ b/dist/buildinfo.json @@ -1 +1 @@ -{"sha":"3ca5cf2","timestamp":1723601022} \ No newline at end of file +{"sha":"bf2448f","timestamp":1723602033} \ No newline at end of file diff --git a/dist/index.js b/dist/index.js index 8d169384..5973763d 100644 --- a/dist/index.js +++ b/dist/index.js @@ -89,9 +89,9 @@ var Environment = class { // -- 版本数据 -- // // 当前版本 - BUILD_TIMESTAMP = 1723601022; + BUILD_TIMESTAMP = 1723602033; // 当前版本 commit id - BUILD_VERSION = "3ca5cf2"; + BUILD_VERSION = "bf2448f"; // -- 基础配置 -- /** * @type {I18n | null} @@ -1048,7 +1048,7 @@ ERROR: ${e.message}`; throw new Error(options.errorExtractor(result)); } try { - onResult?.(result); + await onResult?.(result); return options.fullContentExtractor(result); } catch (e) { console.error(e); diff --git a/dist/timestamp b/dist/timestamp index c9529ca2..c7af7ac5 100644 --- a/dist/timestamp +++ b/dist/timestamp @@ -1 +1 @@ -1723601022 \ No newline at end of file +1723602033 \ No newline at end of file diff --git a/src/agent/agents.js b/src/agent/agents.js index 5ab60cea..04ff56fd 100644 --- a/src/agent/agents.js +++ b/src/agent/agents.js @@ -132,19 +132,6 @@ export function loadChatLLM(context) { return null; } - -/** - * @typedef {Function} ImageAgentRequest - * @param {string} prompt - * @param {ContextType} context - */ - -/** - * @typedef {object} ImageAgent - * @property {string} name - * @property {Function} enable - * @property {ImageAgentRequest} request - */ /** * @type {ImageAgent[]} */ diff --git a/src/agent/anthropic.js b/src/agent/anthropic.js index a476b930..5d03212c 100644 --- a/src/agent/anthropic.js +++ b/src/agent/anthropic.js @@ -43,7 +43,7 @@ async function renderAnthropicMessage(item) { * 发送消息到Anthropic AI * @param {LlmParams} params * @param {ContextType} context - * @param {Function} onStream + * @param {AgentTextHandler} onStream * @returns {Promise} */ export async function requestCompletionsFromAnthropicAI(params, context, onStream) { diff --git a/src/agent/azure.js b/src/agent/azure.js index 5f80ecdf..c16efae9 100644 --- a/src/agent/azure.js +++ b/src/agent/azure.js @@ -33,7 +33,7 @@ export function isAzureImageEnable(context) { * 发送消息到Azure ChatGPT * @param {LlmParams} params * @param {ContextType} context - * @param {Function} onStream + * @param {AgentTextHandler} onStream * @returns {Promise} */ export async function requestCompletionsFromAzureOpenAI(params, context, onStream) { diff --git a/src/agent/cohere.js b/src/agent/cohere.js index 2aa24662..592f48b5 100644 --- a/src/agent/cohere.js +++ b/src/agent/cohere.js @@ -32,7 +32,7 @@ function renderCohereMessage(item) { * 发送消息到Cohere AI * @param {LlmParams} params * @param {ContextType} context - * @param {Function} onStream + * @param {AgentTextHandler} onStream * @returns {Promise} */ export async function requestCompletionsFromCohereAI(params, context, onStream) { diff --git a/src/agent/gemini.js b/src/agent/gemini.js index c952a575..0c8f37ee 100644 --- a/src/agent/gemini.js +++ b/src/agent/gemini.js @@ -34,7 +34,7 @@ function renderGeminiMessage(item) { * 发送消息到Gemini * @param {LlmParams} params * @param {ContextType} context - * @param {Function} onStream + * @param {AgentTextHandler} onStream * @returns {Promise} */ export async function requestCompletionsFromGeminiAI(params, context, onStream) { diff --git a/src/agent/mistralai.js b/src/agent/mistralai.js index ae48a684..179a3498 100644 --- a/src/agent/mistralai.js +++ b/src/agent/mistralai.js @@ -25,7 +25,7 @@ function renderMistralMessage(item) { * 发送消息到Mistral AI * @param {LlmParams} params * @param {ContextType} context - * @param {Function} onStream + * @param {AgentTextHandler} onStream * @returns {Promise} */ export async function requestCompletionsFromMistralAI(params, context, onStream) { diff --git a/src/agent/openai.js b/src/agent/openai.js index dde642b4..f80486f2 100644 --- a/src/agent/openai.js +++ b/src/agent/openai.js @@ -60,7 +60,7 @@ export async function renderOpenAIMessage(item) { * 发送消息到ChatGPT * @param {LlmParams} params * @param {ContextType} context - * @param {Function} onStream + * @param {AgentTextHandler} onStream * @returns {Promise} */ export async function requestCompletionsFromOpenAI(params, context, onStream) { diff --git a/src/agent/request.js b/src/agent/request.js index 46e36698..c3ea7f77 100644 --- a/src/agent/request.js +++ b/src/agent/request.js @@ -4,19 +4,27 @@ import {Stream} from './stream.js'; /** - * @typedef {Function} StreamBuilder + * @callback StreamBuilder * @param {Response} resp * @param {AbortController} controller * @returns {Stream} - * @typedef {Function} SSEContentExtractor + */ +/** + * @callback SSEContentExtractor * @param {object} data * @returns {string|null} - * @typedef {Function} FullContentExtractor + */ +/** + * @callback FullContentExtractor * @param {object} data * @returns {string|null} - * @typedef {object} ErrorExtractor + */ +/** + * @callback ErrorExtractor * @param {object} data * @returns {string|null} + */ +/** * @typedef {object} SseChatCompatibleOptions * @property {StreamBuilder} streamBuilder * @property {SSEContentExtractor} contentExtractor @@ -75,8 +83,8 @@ export function isEventStreamResponse(resp) { * @param {object} header * @param {object} body * @param {ContextType} context - * @param {Function} onStream - * @param {Function} onResult + * @param {AgentTextHandler| null} onStream + * @param {AgentTextHandler | null} onResult * @param {SseChatCompatibleOptions | null} options * @returns {Promise} */ @@ -150,7 +158,7 @@ export async function requestChatCompletions(url, header, body, context, onStrea } try { - onResult?.(result); + await onResult?.(result); return options.fullContentExtractor(result); } catch (e) { console.error(e); diff --git a/src/agent/workersai.js b/src/agent/workersai.js index 36ded11d..540c91f0 100644 --- a/src/agent/workersai.js +++ b/src/agent/workersai.js @@ -44,7 +44,7 @@ function renderWorkerAIMessage(item) { * 发送消息到Workers AI * @param {LlmParams} params * @param {ContextType} context - * @param {Function} onStream + * @param {AgentTextHandler} onStream * @returns {Promise} */ export async function requestCompletionsFromWorkersAI(params, context, onStream) { diff --git a/src/types/agent.js b/src/types/agent.js index ef66257e..00aded0b 100644 --- a/src/types/agent.js +++ b/src/types/agent.js @@ -11,20 +11,46 @@ */ /** - * @typedef {Function} ChatAgentRequest + * @callback IsAgentEnable + * @param {ContextType} context + * @returns {boolean} + */ + +/** + * @callback AgentTextHandler + * @param {string} text + * @returns {Promise} + */ + +/** + * @callback ChatAgentRequest * @param {LlmParams} params * @param {ContextType} context - * @param {Function} onStream + * @param {AgentTextHandler} onStream * @returns {Promise} */ /** * @typedef {object} ChatAgent * @property {string} name - * @property {Function} enable + * @property {IsAgentEnable} enable * @property {ChatAgentRequest} request */ +/** + * @callback ImageAgentRequest + * @param {string} prompt + * @param {ContextType} context + * @returns {Promise} + */ + +/** + * @typedef {object} ImageAgent + * @property {string} name + * @property {IsAgentEnable} enable + * @property {ImageAgentRequest} request + */ + /** * @typedef {object} HistoryItem * @property {string} role