船舶消防法规聊天机器人

一个基于AWS Bedrock和Neptune的船舶消防系统和SOLAS法规专业聊天机器人,支持3阶段实时流式处理和GraphRAG架构。

  • by mulggo
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 mulggo/neptune-mcp

使用说明

🚢 船舶消防法规聊天机器人(GraphRAG+流媒体)

利用AWS Bedrock和Neptune的船舶消防系统和SOLAS法规专门聊天机器人。

主要功能

🔥 步骤3实时流媒体

  • 步骤1: 📋 制定文档分析和搜索计划
  • 步骤2: 🔍 知识库搜索(显示进度)
  • 步骤3: 🤖 生成最终答案(打字效果)

🧠 GraphRAG体系结构

  • 知识库:AWS Bedrock Knowledge Base(矢量搜索)
  • 重排序:Cohere Rerank v3.5(重新排序相关性)
  • LLM:Claude3.5 Sonnet(生成答案)
  • 图形数据库:Neptune Analytics(知识图)

🎯 多代理系统

  • Plan-Execute Agent(流式处理支持)
  • 可扩展代理体系结构
  • 基于配置文件的代理管理

🚀 快速入门

1.首选参数

# 의존성 설치
pip install -r requirements.txt

# 환경변수 설정
cp .env.example .env
# .env 파일에서 AWS 자격증명 설정

2.运行

streamlit run app.py

📁 项目结构

shi-graphrag-chatbot/
├── agents/                    # 에이전트 모듈
│   └── plan_execute_agent/
│       ├── agent.py          # 기존 동기 버전
│       └── streaming_agent.py # 새로운 스트리밍 버전
├── config/
│   └── agents.yaml           # 에이전트 설정
├── core/
│   └── agent_manager.py      # 에이전트 관리자
├── ui/                       # UI 컴포넌트
│   ├── chat_interface.py
│   ├── reference_display.py
│   └── sidebar.py
└── app.py                    # 메인 애플리케이션

🔧 技术堆栈

AWS服务

  • 基岩:克劳德3.5十四行诗,柯赫尔·雷兰克
  • 知识库:嵌入文档并搜索矢量
  • 海王星:知识图形库

Python库

  • 溪流:Web UI框架
  • 缕:流代理框架
  • 肉毒杆菌3:AWS SDK
  • 异步:异步处理

设置⚙ENT

agents.yaml设置示例

agents:
  plan_execute:
    display_name: "Plan-Execute Agent (스트리밍)"
    streaming_enabled: true
    streaming_config:
      chunk_size: 50
      timeout: 30
      fallback_to_sync: true
    bedrock_model_id: "anthropic.claude-3-5-sonnet-20240620-v1:0"

🎮 使用方法

  1. 输入问题:输入船舶消防规定相关问题
  2. 实时推论:实时查看步骤3的推论过程
  3. 参考文档:在底部查看作为答案依据的文档
  4. 知识图:从边栏可视化FSS Ontology

🔄 流工作流

graph TD
    A[사용자 질문] --> B[1단계: 계획 수립]
    B --> C[2단계: KB 검색]
    C --> D[3단계: 답변 생성]
    D --> E[참조 문서 표시]
    
    B -.-> F[실시간 스트리밍]
    C -.-> F
    D -.-> F

🛠️ 开发者指南

添加新代理

  1. agents/ 在目录中创建新模块
  2. config/agents.yaml将设置添加到
  3. 支持流 process_message_stream() 实现方法

流代理开发

async def process_message_stream(self, message: str, session_id: str):
    """스트리밍 메서드 구현"""
    yield "### 1단계: 처리 시작\n\n"
    # 처리 로직...
    async for chunk in self._stream_process():
        yield chunk

🧪 测试

# 기본 테스트
python test_simple.py

# 스트리밍 테스트
python test_streaming.py

# 실시간 모니터링
python live_test_monitor.py

📊 性能优化

  • 异步处理:基于asyncio的流
  • 线程安全:支持多线程环境
  • 回退机制:自动切换到流失败的同步方式
  • 缓存:利用Streamlit高速缓存提高性能

🔍 监视

  • 实时流状态监控
  • 错误处理和恢复机制
  • 收集性能度量

📝 许可证

此项目在MIT许可证下分发。

🤝 贡献

  1. 分叉项目
  2. 创建功能分支
  3. 提交您的更改
  4. 推到分支机构
  5. 打开拉取请求

开发完成日期: 2024-12-03
主要功能:三步实时流,GraphRAG,多代理