| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- """LangChain Tools(工具)适配层。"""
- from __future__ import annotations
- from langchain.tools import tool
- from vendor_guard.repository import JsonRepository
- from vendor_guard.settings import Settings
- _settings = Settings.from_env()
- _repository = JsonRepository(_settings.project_root / "fixtures")
- @tool
- def query_vendor_registry(vendor_name: str) -> dict:
- """查询供应商主数据、付款状态、履约率和历史争议。"""
- return _repository.get_vendor(vendor_name)
- @tool
- def search_sanctions(vendor_name: str) -> dict:
- """查询供应商及其受益所有人的制裁或监管名单命中。"""
- return {
- "vendor": vendor_name,
- "hits": _repository.get_sanctions(vendor_name),
- }
- @tool
- def lookup_security_incidents(vendor_name: str) -> dict:
- """查询供应商公开披露的数据泄露和重大安全事故。"""
- return {
- "vendor": vendor_name,
- "incidents": _repository.get_incidents(vendor_name),
- }
- @tool
- def search_adverse_news(vendor_name: str) -> dict:
- """查询供应商近两年的重大负面新闻及来源。"""
- return {
- "vendor": vendor_name,
- "items": _repository.get_adverse_news(vendor_name),
- }
- @tool
- def submit_onboarding_decision(
- vendor_name: str,
- decision: str,
- report_path: str,
- ) -> str:
- """向采购系统提交供应商准入决定;该操作具有外部副作用。"""
- return f"已提交:{vendor_name} -> {decision};依据:{report_path}"
|