mirror of
https://github.com/ikechan8370/chatgpt-plugin.git
synced 2025-12-17 13:57:10 +00:00
优化了一下
This commit is contained in:
parent
5162fe2936
commit
e0d252aa75
3 changed files with 22 additions and 53 deletions
|
|
@ -23,33 +23,29 @@ export class UrlExtractionTool extends AbstractTool {
|
|||
type: 'string',
|
||||
description: 'The message containing URLs to be extracted.',
|
||||
},
|
||||
appendContent: {
|
||||
type: 'boolean',
|
||||
description: 'Whether to append the extracted content to the original message. Defaults to true.',
|
||||
},
|
||||
},
|
||||
required: ['message'],
|
||||
};
|
||||
|
||||
// 工具描述
|
||||
description = 'Extracts URLs from a given message and optionally retrieves the content of those URLs, appending it to the original message.';
|
||||
description = 'Extracts URLs from a given message and retrieves the content of those URLs. Returns the extracted content to the AI.'; // 更新描述
|
||||
|
||||
/**
|
||||
* 工具执行函数
|
||||
* @param {Object} opt - 工具参数
|
||||
* @param {Object} ai - AI对象 (未使用)
|
||||
* @returns {Promise<{message: string, extractedContent: string}>} - 包含处理后的消息和提取内容的JSON对象
|
||||
* @returns {Promise<string>} - 提取的URL内容
|
||||
*/
|
||||
func = async function (opt, ai) {
|
||||
let { message, appendContent = true } = opt;
|
||||
let { message } = opt;
|
||||
if (!message) {
|
||||
return 'The message parameter is required.';
|
||||
}
|
||||
|
||||
try {
|
||||
const result = await processMessageWithUrls(message, appendContent);
|
||||
logger.mark(`[URL Extraction] Processed message: ${result.message}, Extracted content: ${result.extractedContent}`);
|
||||
return result;
|
||||
const result = await processMessageWithUrls(message);
|
||||
logger.mark(`[URL Extraction] Processed message: ${message}, Extracted content: ${result}`);
|
||||
return result; // 直接返回提取的内容
|
||||
} catch (error) {
|
||||
logger.error(`[URL Extraction] URL extraction failed: ${error.message}`);
|
||||
return `URL extraction failed, please check the logs. ${error.message}`;
|
||||
|
|
@ -137,17 +133,15 @@ async function extractUrlContent(url) {
|
|||
/**
|
||||
* 处理消息中的URL并提取内容
|
||||
* @param {string} message 用户消息
|
||||
* @param {boolean} appendContent 是否将提取的内容附加到消息中,默认为true
|
||||
* @returns {Promise<{message: string, extractedContent: string}>} 处理后的消息和提取的内容
|
||||
* @returns {Promise<string>} 提取的URL内容
|
||||
*/
|
||||
async function processMessageWithUrls(message, appendContent = true) {
|
||||
async function processMessageWithUrls(message) {
|
||||
const urls = extractUrls(message);
|
||||
if (urls.length === 0) {
|
||||
return { message, extractedContent: '' };
|
||||
return ''; // 没有 URL 则返回空字符串
|
||||
}
|
||||
|
||||
logger.mark(`[URL处理]从消息中提取到${urls.length}个URL`);
|
||||
let processedMessage = message;
|
||||
let extractedContent = '';
|
||||
|
||||
// 使用 Promise.all 并发处理多个 URL
|
||||
|
|
@ -174,11 +168,8 @@ async function processMessageWithUrls(message, appendContent = true) {
|
|||
if (item) {
|
||||
const urlContent = `\n\n提取的URL内容(${item.url}):\n内容: ${item.content}`;
|
||||
extractedContent += urlContent;
|
||||
if (appendContent) {
|
||||
processedMessage += urlContent;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
return { message: processedMessage, extractedContent };
|
||||
return extractedContent; // 返回提取的内容字符串
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue