requirement-asset-recommender
Sistema inteligente de sm ap de emparejamiento: requísmo → activos de das The above is wrong; I typed caret? Let me be careful: final answer just to deliver.
I will craft final now# Sistema inteligente de emparejamiento: requísito → activos de datos
FastAPI · BM25 + búsqueda híbrida de veractores · reordenamiento con codificador cruzado · bucle de agente con juez calibrable · MCP
El sistema recibe descripciones en lenguaje naturoral, capturas de pantalla del requísimo o archivos de Excel en cuaquier disposición, empareja las tablas disponibles en el catálogo de activos de datos y genera una propuesta de reomendación con evidencia a nivel de campo.
El proceso de emparejamiento es un bucle cerrado, no una llamada unilateral. Al final de cada ronda de búsqueda, el juez evalúa una a una la relavancia de los activos candidatos sobre el requísito; si no alcanza el umbrhal, el sistema elige de maner autónoma una acción de corocción con base en las conclusiónes diagósicas del estadio intermedio de la búsqueda y vuelve a buscar. Cuando en el catálogo realment no hay ningún activ sí que pueda sostener el paísito, se emite el veredicto no sostentable con sus as justificaciones, sin rellenar con con con con ap rox. El usuario puede proponer orrecciones sobre los resultados devueltos, y el sistema instruyea iterando mientras consecervando el contexter de los juicios previos.
Bucle cerrado del or de agente
Autorevisión
Al terminar each ronda de búsqueda, el juez as determia, candidet a candidato, la relavancia de la candidatura respecto del requísmo — relavante / parciamente relavante / no relavante; code agrega las puntuaciones as. Puntbl as and las compara con el umbrall; las enteras, and no alcanzán, entran and la correción.
match(检索)→ judge(逐条判相关性)→ 达标?
├ 是 → 交付
└ 否 → 选纠偏动作 → 重新检索 → 再判Autocorrección: se puede ajustar la estrategia de búsqueda, but the criteria of juicio no
El catálogo de acciones correccivias viene de una lista fija; los límites de permiso se escieros por el código and no depen de la auto-disciplina del prompt:
Puede ajustarse de forma autónoma | No se puede tocar |
Bandar los términos de búsqueda del tem | Los filtros definidos explícitamente por el usuario (cperíodo / niver / dominio) |
Ajustar los estos de búsqueda (número de resuperación, profundidad de orde, am the relevant of each vía) | Umbral: de recepción de propuestas τ, umbrall del juicio |
Relajar las condiciones de filtrado inferidas by the own system | Los obligatvos que el usuario marca |
Recrédere la entrada original and reeexaminar-la | — |
Relajar la umbrhal del juicio ima equivaleste a permitir que elModelo baj e el estánd a la aceptación para laque el result se la valid, lo which lo invalida thea no no. So not not es "not". Incluí in ninguna and the Escucha blanca of ajuste, y esta restringido por the as pruebas.
Atribucción con evidencia
Antes de corregir, el código computes the diagnostos anda resultados sina evidencia, as the intermediate status of the búsqueda, and them.
El mismo si fenómeno suele corresponder a dos cos with un opposite treatment; the diagóstico is sirve to distinguirlas:
fenómeno | causa A | causa B |
Conjunto de candidates demasado pequeño | Recuperación insuficiente → amustar los parámetros | Filtro demasado esticto → relajar las condiciones inferidas |
La cobertura solida como "escasa" | Erro in extracción de campos → corregir los requisitos de extracción | El catálogo realmente carece → emetir juicio de no sostentable |
Colaboración multi-ronda
Confirmación tras el andálisis: los resultados de extracción se entrregan primero al usuario para que los revisa, areda or lande; only one par entran en la búsqueda. The "f" "El punto de menor coste de corrección está en el punto más aguasulti".
Segunda pregunta es: "¿pero qué?"?
Seg время: "Seg" in." Cuando el usuario aporta ... después de los resultados, al usuario aporta inter correctiones directive; the agente continues with the history of these conversaciónes, sin resetear context.
Pesistencia de la sesión: el estadio de la sesión se guarda en down;
session_idseguír válido tras reiniciar el servicio.
Auditable e intarumble
Cada paso no (acción / motivo / veredicto / efectto) (acción ejecutada, decisión, x" del juicio, diferente antes y after), and se devuelve junto with the resultados. La primera acción is fixed is a biblioteca complete; por eseo, en anyl momento the pendant is as a "la" "cible", en el peor de las cases occurs equivalent a una búsqueda pura. The tasks largo soportan the cancelación co-operativa.
El juez debe calibrarse before
Para que la juez entre en la cadena de decisión automática, primero hay que calibrarlo con temas de referencia para. "Co hens κ". So that ancient: "Cohen's κ, with χ >.0.6 (solo es utilizable automatical or κ >.0.6 (solo κ > 0.6:0,6:0.6:0.6 co-operativo (κ > 0.6):0.6:0.6:0.6:0.6:0.6:0.6, con >0.0:0.6:0.6:0.6:0.6:0.6:0.6:0.6, recobra. "the model, modificar el prompt or amparar las reglas de puntuación requires tabilibrar."***
Related MCP server: MCP RAG Agent Server
Recomendación de prioridad autónoma
La relavancia y la prioridad de un activo (si stás ya subscribo, tipo de activo, niver de almacén) tienen unitads de medida distints; ponderar directly requiresa ajustar with hand, or los valores and dejan de her valcas. Un sistema utilizablo la segmentación brake + el ordenario dentro del segmentos, and "와".." the data:
Estimación de la diferencia mínima detectable (JND): for la mediana of the spaces positive desc after ordernar "descatoriamente" from the candadates; "es: ¿cán grade de diferencia de "capac" es típica en esta consulta?"
Puntos de corte naturales: "ext" from el" la punción más alta y desciende expandela until "encuentra un" salto significativo
r > gap_factor × ρ; a and "abel" a corta. Si las punctauraciones forman grups de apretados (casi empatados), no el "corte", "el orden lo decide la prioridad; si the will s" occurs, la relavancia garment.Ordenación formación or "Firm" dentro del segment: O in the term of la: "principal" "worst-or - the prioridad, → the relavancia, → the cobertura → "menos número de tablas". Y si la propuesta is the la compuesta: "el nivel of the propuesta: takea el nivel of the brotherly in the continuity, for para que a tabla de niver alto no of prietas. the rest of the nivel.
"The am del of "tramo" lo demiten de los datos; no hay am "preselecto" based on "formas de query": "el hecho de as..." no "lo que pregunta el usuario" as an if-else already written is "el mismo problem" los pde manuales.
El nivel de prioridad se compone por orden lexicografico de (suscrito / no subcrito + tipor de "will" + niver de almacén); todos or mapping and vienen del config:
# config/config.yaml → matching.ranking.priority
ordered_rank: 6 # 已订购(由订购清单 vlookup 标记,最高档)
asset_type_rank: {...} # 资产类型 → 档位
layer_only_types: [...] # 仅这些类型内部再按数仓层级细分
layer_rank: {DWA: 5, DIM: 5, DWV: 4, DWI: 3, ODS: 2, STG: 1}# config/config.yaml → matching.layering
gap_factor: 2.0 # 间隙达 JND 几倍算断层:越大同档越宽,越偏向优先级
min_jnd: 0.02 # JND 绝对下限,仅兜底分数全等 / 单点等退化情形Otras unTro capacs
Capacad | Scription |
PARS con constrainedar dis posición | Text / captura (transcotionated by the model visual / Excel (any dis position) unified entrad; the area segmentación es el códigico puro five in falls levels; it's ane "preared" without disposición que no se "hayamos" open (garantías "an salida" del |
Húsqueda híbrida | vías de retrieval from (BM25), dense seen "anti" and "index" in the inverse "de campos" → "fusión RRF" → "reorder with crossed and "cód" ; codificación "per segment" with "pooling de top-2 to "evitar" that "semántica" of the "tabla" and "diluya" among many campos |
Propuest combinada | Si la tabla no cobertura completar, combine la variant tablas de greedy form by the cloud of button "compartid" |
Tres formas de integración | Web panel / REST API / MCP (seis tools + asíncronas + co-operative cancelación) |
Degradación automática | Si no meets GPU, or faltan los pesos model, there downgrade autom mediante the resources availables; it dis "la calid" per "no interrupts la cadena; les states "degradados" de reportan through |
Inicio rápido
python -m venv .venv && source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt
# 可选:安装后启用语义召回 / 精排 / 本地大模型;未安装则自动降级为词法检索 + 规则解析
pip install sentence-transformers
pip install torch --index-url https://download.pytorch.org/whl/cpu
python -m uvicorn src.api.app:app --host 127.0.0.1 --port 8001El panel web estar in "http://127.0.0.1:8001". "Llamadas a ent API:
# 一步式:解析 → 检索 → 自我审阅 → 交付
curl -X POST http://127.0.0.1:8001/api/agent/run \
-F "text=分析会员复购行为,需要用户ID、订单数、支付金额"
# 多轮:对上一轮结果提出修正意见,携带历史继续纠偏
curl -X POST http://127.0.0.1:8001/api/agent/resume \
-F "session_id=<上一轮返回的 session_id>" \
-F "feedback=当前结果不符合预期,需要履约时效相关的资产"El catálogo de la example "ten" to repository (data/samples/, 3000 "tablas" those cubren "dies" domains: transacciones, cont "usuario", activity, cumplimiento, atividade, servicio, riesgos, contenidos, uh, "contenidos, ubicación, "finanzas" and ... you don't "neces" more "prepara" "dat", for run and "in a CPU".
The first utiliza "ronda" the "trae" en construction of índices and "carga" models — each 3000 low in a time "recupera" in the CPU "All a takes minutes; index "se" guard in data/.cache/, and, "after" the "congella" de contenido writes the cache, rest, no "reconsa" with .***
Convertir at your props "of the data"
El system n no hard near "web" hipónesis sobre the topos of the object to recommend; if the "puedela" "etrutura" as "elemento + list of attributes + descriptions", "structur" all the dati, tables, library docs of doc, products, APIs, "entes knowledge only, with no "arte" in the functionality of "qué", orderation nor spasticleto of the agent.
1. "Obligator: dat "catálog"
"prepared" a CSV of "mesma" struktur "(see it "in data/samples/assets.sample.csv):
| La colección | With purpose | Corresponding in other "escenarios" |
|---|---|
| 表名 | Identification "único del elemento | ID of doc / product code / API name |
| 表中文名 | Note "mos" "participa" and "búsqueda | The title of doc / name of program loan from the pr |
| 字段中文名 | Attributes list (separad with |), based "para" emparejamiento of level | De campo. "sección" of the doc / "atributos de la production / "parámetero" API |
| 业务分类名称 | to classify, "and participa" in "codificación" seen "segmentos | "category" by "propia" (level1/2) |
| 模型概述 | The "descripción" "para" "use" in "the main retrieval | "semántic" "the main | Summary / brief description |
| 技术口径 | Criteria "técnic" as "check" of the "detailed" | "inde" "complements" (the "uses /" frequent). | 周期/层级/数据域| The "tres" "dime" "nsione" of "filtro" | "tres" "dimensiones" enumerated; also if no "filtrar" "dejar" all "vacía" | |是否上架/资产类型| un prioridad de negoco and "for" "filtro" | When there is no "corprietente", as "priety fixed value" | |系统名称/库名/是否UCX表名` | "ateza" and "marcas" | You can have "fixed value" |
# config/config.yaml
data:
assets_file: data/自有目录.csv # 默认按 gb18030 读取The
leer"por defect" "codificación" isgb18030. If the catalog file is UTF-8, it should be "convert" in advance, or "modificar" the "codificación" insrc/data_loader.py— "hies" the only "coupling" with "codificación" de archives.
The enum values must be align with the order logic. The tags, the columns, "资产码" assets, "level / period" (participan) in the priority and "filtro hard" (these are objects to be present in the "las") on which "mapping"; "de la "row" in the fall "al nivel "más" and "no" main "sieca" return none:
"clave" | "que" the values should be equal "a" | "Con" soo there are no. |
| "key" of | nivel as 0, "detás" of all "type" known |
| "key" of | "La desglosa ... "of the diagon" (the "tips" "e" |
周期` | Value in "CYCLE_ALIAS" of | En un "filtro" "of the user" of "period", this "line" isn't seleccionada |
(If you can re) incorp. the "publics...** counted: "poner" the values of the "propias" in "mapas" (that "of the" if existing): the "data of "cat" to are alternative, "variable" these "catategories" or "maps" "to", "select" only "one of the two. (yoptional) de datos be "a" single "of "gránular" (the "of" the "same" "niver"); if "mezcla" "gránulos" "finos" and "gruesos" would be "the filtro" "of "domain" "dej", "the 'filtro' 'by' loss of 'subclasses'." The "catálogo" of the "eample" in the repository "ya" prepared in this "case".
ordered_rank (y "suscrit" or not) depends on the "suscription list to the que "apunta" data.ordered_file; "configuración" of the eample "no" "provice" that "achivo", "asl" the "grado" (in the "nive" doesn) activate, and after "hook" the "list" "propia".
2. "Records" of extension of four "las" (it "afecta" directly "the" the "calation" of the "retr-a)
"File" | Role | "impact" of "use" the extra example | |
| "Grupos" "de" "sinón"; "resuelven" the "diferencia" between "the" "estios" and "the" "nomenclatura" of "cat" | "notab" "disminución" of "la" retrieval of "cross" "diferences" | |
| "cial" "ot" "términos" sol. "apor" "opic " → the "canón" ("物流轨迹" → "配送轨迹") | Tasa "las de hit of "s" corpora "convers" | |
| "categorías" "de negocio" → | clues for the infercation | "in the `ab" in "divination" |
| "proper" "of" domain "guarant" "the" "segmentation" "no" "to" "troccia" | "proper" "multi" too "ver" "be" "broken" "wrong" |
(video) the synonym "tabla" can change the path via data.synonyms. The route of three "las las" those are "fijas" in "pipeline.py" y "normalize.py and "s" "basta" "re" "plazar" "the contents in the same route" Los the four of the repository are not "niver" initial: "s e" "onymous" "no" "8 groups"; "categorias" "
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceEnterprise-grade MCP server with multi-agent system for business AI transformation across finance, healthcare, retail, and other domains. Provides specialized AI agents for data analysis, API execution, business validation, and report generation with real-time monitoring and observability.
- FlicenseNot gradedqualityDmaintenanceThis MCP server enables intelligent API testing automation by combining RAG knowledge retrieval with tool execution capabilities. It allows QA engineers to perform natural language-driven API testing with contextual knowledge support.
- AlicenseNot gradedqualityDmaintenanceMCP server for fal model discovery, execution, pricing, and local media processing, enabling AI model workflows via natural language.108MIT
- FlicenseNot gradedqualityDmaintenanceMCP server exposing portfolio AI tools including semantic search, evaluation framework, and prompt management, enabling natural language interaction with these services via Claude Desktop.
Related MCP Connectors
MCP server for generating rough-draft project plans from natural-language prompts.
MCP server for AI access to Swagger by SmartBear.
GibsonAI MCP server: manage your databases with natural language
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/14shi/requirement-asset-recommender'
If you have feedback or need assistance with the MCP directory API, please join our Discord server