fix: sync bridge HTTP tool deps and product timeout from test deployment
This commit is contained in:
@@ -63,3 +63,5 @@ EMB_DIM=<change-me>
|
|||||||
EMB_TRANSLATE_MODEL=<change-me>
|
EMB_TRANSLATE_MODEL=<change-me>
|
||||||
|
|
||||||
TRACE_ENABLED=false
|
TRACE_ENABLED=false
|
||||||
|
|
||||||
|
PRODUCT_TIMEOUT_MS=30000
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
# 密钥与运行时(不入库)
|
# 密钥与运行时(不入库)
|
||||||
.env
|
.env
|
||||||
|
.env.bak-*
|
||||||
libredesk/config/config.toml
|
libredesk/config/config.toml
|
||||||
libredesk/uploads/*
|
libredesk/uploads/*
|
||||||
!libredesk/uploads/.gitkeep
|
!libredesk/uploads/.gitkeep
|
||||||
|
|||||||
+12
-2
@@ -7,6 +7,11 @@ const { createTools, resolveSiteProfile } = require('./tools');
|
|||||||
const { createIdentity } = require('./identity');
|
const { createIdentity } = require('./identity');
|
||||||
const { createLibreDeskWebhook } = require('./libredesk-webhook');
|
const { createLibreDeskWebhook } = require('./libredesk-webhook');
|
||||||
const { createAgent } = require('./agent');
|
const { createAgent } = require('./agent');
|
||||||
|
const { createLLM } = require('./llm');
|
||||||
|
const { createReranker } = require('./reranker');
|
||||||
|
const { createVerification } = require('./verification');
|
||||||
|
const { createLibreDeskClient } = require('./libredesk');
|
||||||
|
const { createRetriever } = require('./rag');
|
||||||
const prom = require('./prom');
|
const prom = require('./prom');
|
||||||
const { ToolError } = require('./errors');
|
const { ToolError } = require('./errors');
|
||||||
|
|
||||||
@@ -83,9 +88,14 @@ function contextFromHeaders(headers = {}) {
|
|||||||
function createServer(options = {}) {
|
function createServer(options = {}) {
|
||||||
const cfg = options.config || loadConfig();
|
const cfg = options.config || loadConfig();
|
||||||
const auther = createAuther(cfg.toolsSharedKey);
|
const auther = createAuther(cfg.toolsSharedKey);
|
||||||
const tools = options.tools || createTools(cfg);
|
const verification = options.verification || createVerification(cfg);
|
||||||
|
const client = options.client || createLibreDeskClient(cfg);
|
||||||
|
const retriever = options.retriever || (cfg.ragPgUrl ? createRetriever(cfg) : null);
|
||||||
|
const llm = options.llm || createLLM(cfg);
|
||||||
|
const reranker = options.reranker || createReranker(llm);
|
||||||
|
const tools = options.tools || createTools(cfg, { verification, retriever, client, reranker });
|
||||||
const identity = options.identity || createIdentity(cfg);
|
const identity = options.identity || createIdentity(cfg);
|
||||||
const agent = options.agent || createAgent(cfg);
|
const agent = options.agent || createAgent(cfg, { verification, client, retriever, reranker, llm });
|
||||||
const libredeskWebhook = options.libredeskWebhook || createLibreDeskWebhook(cfg, { agent });
|
const libredeskWebhook = options.libredeskWebhook || createLibreDeskWebhook(cfg, { agent });
|
||||||
const byName = new Map(tools.map((t) => [t.name, t]));
|
const byName = new Map(tools.map((t) => [t.name, t]));
|
||||||
const startedAt = Date.now();
|
const startedAt = Date.now();
|
||||||
|
|||||||
+12
-1
@@ -377,8 +377,19 @@ function createTools(cfg, deps = {}) {
|
|||||||
const query = String(args.query || '').trim();
|
const query = String(args.query || '').trim();
|
||||||
if (!query) throw new ToolError(400, 'invalid_arguments', 'query is required');
|
if (!query) throw new ToolError(400, 'invalid_arguments', 'query is required');
|
||||||
const limit = Math.min(Number(args.limit) || 5, 8);
|
const limit = Math.min(Number(args.limit) || 5, 8);
|
||||||
let results = await retriever.searchKB(query, Math.max(limit, 8));
|
// 有 reranker 时多取候选再重排;无 reranker 时尊重调用方 limit。
|
||||||
|
const fetchLimit = reranker ? Math.max(limit, 8) : limit;
|
||||||
|
let results = await retriever.searchKB(query, fetchLimit);
|
||||||
|
// parent/child 可能命中同一篇文章:按 question+answer 去重
|
||||||
|
const seen = new Set();
|
||||||
|
results = results.filter((r) => {
|
||||||
|
const key = `${r.question || ''}\u0000${r.answer || ''}`;
|
||||||
|
if (seen.has(key)) return false;
|
||||||
|
seen.add(key);
|
||||||
|
return true;
|
||||||
|
});
|
||||||
if (reranker) results = await reranker.rerank(query, results, limit);
|
if (reranker) results = await reranker.rerank(query, results, limit);
|
||||||
|
else results = results.slice(0, limit);
|
||||||
return {
|
return {
|
||||||
results,
|
results,
|
||||||
count: results.length,
|
count: results.length,
|
||||||
|
|||||||
@@ -187,6 +187,7 @@ services:
|
|||||||
INVENTORY_API_URL: ${INVENTORY_API_URL}
|
INVENTORY_API_URL: ${INVENTORY_API_URL}
|
||||||
MEMBER_RPC_URL: ${MEMBER_RPC_URL}
|
MEMBER_RPC_URL: ${MEMBER_RPC_URL}
|
||||||
RPC_TIMEOUT_MS: ${RPC_TIMEOUT_MS:-8000}
|
RPC_TIMEOUT_MS: ${RPC_TIMEOUT_MS:-8000}
|
||||||
|
PRODUCT_TIMEOUT_MS: ${PRODUCT_TIMEOUT_MS:-15000}
|
||||||
SITE_SEARCH_URL: ${SITE_SEARCH_URL}
|
SITE_SEARCH_URL: ${SITE_SEARCH_URL}
|
||||||
TWENTY_BASE_URL: http://twenty-server:3000
|
TWENTY_BASE_URL: http://twenty-server:3000
|
||||||
TWENTY_GRAPHQL_PATH: /graphql
|
TWENTY_GRAPHQL_PATH: /graphql
|
||||||
|
|||||||
Reference in New Issue
Block a user