mirror of
https://github.com/hoshikawa2/agent_platform_oci.git
synced 2026-11-06 11:24:13 +00:00
new feature: frontend with separated responses
This commit is contained in:
@@ -34,6 +34,15 @@ function stripOwnAgentMarker(value, agent) {
|
|||||||
const normalize = (name) => String(name || "").replace(/[_\s-]+/g, "").toLowerCase();
|
const normalize = (name) => String(name || "").replace(/[_\s-]+/g, "").toLowerCase();
|
||||||
return normalize(marker[1]) === normalize(agent) ? text.slice(marker[0].length).trim() : text;
|
return normalize(marker[1]) === normalize(agent) ? text.slice(marker[0].length).trim() : text;
|
||||||
}
|
}
|
||||||
|
function orderAgentMessages(agentResponses) {
|
||||||
|
return [...agentResponses].sort(
|
||||||
|
(a, b) => Number(Boolean(a.primary)) - Number(Boolean(b.primary))
|
||||||
|
);
|
||||||
|
}
|
||||||
|
function sameAgent(left, right) {
|
||||||
|
const normalize = (name) => String(name || "").replace(/[_\s-]+/g, "").toLowerCase();
|
||||||
|
return Boolean(normalize(left)) && normalize(left) === normalize(right);
|
||||||
|
}
|
||||||
function addUserMessage(text) {
|
function addUserMessage(text) {
|
||||||
const div = document.createElement("div");
|
const div = document.createElement("div");
|
||||||
div.className = "msg user chat-bubble--user";
|
div.className = "msg user chat-bubble--user";
|
||||||
@@ -68,12 +77,19 @@ function getAgentMessages(data) {
|
|||||||
const messages = candidates.map((item) => ({
|
const messages = candidates.map((item) => ({
|
||||||
agent: item?.agent || item?.agent_id || item?.agentId || item?.name,
|
agent: item?.agent || item?.agent_id || item?.agentId || item?.name,
|
||||||
text: stripOwnAgentMarker(item?.answer ?? item?.text ?? item?.message ?? item?.response ?? item?.content, item?.agent || item?.agent_id || item?.agentId || item?.name),
|
text: stripOwnAgentMarker(item?.answer ?? item?.text ?? item?.message ?? item?.response ?? item?.content, item?.agent || item?.agent_id || item?.agentId || item?.name),
|
||||||
|
primary: item?.primary === true,
|
||||||
})).filter((item) => item.agent && responseText(item.text).trim());
|
})).filter((item) => item.agent && responseText(item.text).trim());
|
||||||
if (messages.length) return messages;
|
if (messages.length) return orderAgentMessages(messages);
|
||||||
}
|
}
|
||||||
const text = data?.text ?? data?.speak ?? data?.message ?? data?.response ?? data?.content ?? data?.output;
|
const text = data?.text ?? data?.speak ?? data?.message ?? data?.response ?? data?.content ?? data?.output;
|
||||||
const taggedMessages = splitTaggedAgentMessages(text);
|
const taggedMessages = splitTaggedAgentMessages(text);
|
||||||
if (taggedMessages.length) return taggedMessages;
|
if (taggedMessages.length) {
|
||||||
|
const primaryAgent = metadata.active_agent || metadata.route || data?.route || metadata.route_decision?.agent || metadata.route_decision?.route;
|
||||||
|
return orderAgentMessages(taggedMessages.map((item) => ({
|
||||||
|
...item,
|
||||||
|
primary: sameAgent(item.agent, primaryAgent),
|
||||||
|
})));
|
||||||
|
}
|
||||||
const agent = metadata.active_agent || metadata.route || data?.agent_id || metadata.agent_id || val("agent") || "agent";
|
const agent = metadata.active_agent || metadata.route || data?.agent_id || metadata.agent_id || val("agent") || "agent";
|
||||||
return responseText(text).trim() ? [{ agent, text }] : [];
|
return responseText(text).trim() ? [{ agent, text }] : [];
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user