Skip to main content
Glama
Shruti-Gorhe

enterprise-knowledge-mcp

by Shruti-Gorhe

엔터프라이즈 지식 어시스턴트

에이전틱 AI 엔터프라이즈 지식 어시스턴트로, RAG, LangGraph, MCP, RAGAS, Ollama, LangSmith를 사용하여 엔터프라이즈 정책 문서의 질문에 답변합니다.

이 시스템은 엔터프라이즈 PDF에서 관련 정보를 검색하고, LangGraph 워크플로를 사용하여 근거 기반 응답을 생성하며, RAGAS를 사용하여 응답을 평가하고, LangSmith를 통해 관찰 가능성을 제공합니다.


1. 프로젝트 개요

엔터프라이즈 지식 어시스턴트는 엔터프라이즈 문서에 포함된 정보를 사용하여 자연어 질문에 답변하도록 설계되었습니다.

LLM의 사전 학습된 지식에만 의존하는 대신, 이 애플리케이션은 RAG(검색 증강 생성) 워크플로를 따릅니다:

  1. 엔터프라이즈 PDF 문서가 로드됩니다.

  2. 문서가 더 작은 청크로 분할됩니다.

  3. 청크가 임베딩으로 변환됩니다.

  4. 임베딩이 ChromaDB에 저장됩니다.

  5. 사용자 질문이 지식 베이스와 의미적으로 매칭됩니다.

  6. LangGraph 검색기 에이전트가 MCP 통합을 통해 관련 컨텍스트를 획득합니다.

  7. 응답 에이전트가 검색된 컨텍스트에 근거한 답변을 생성합니다.

  8. 평가 에이전트가 RAGAS를 사용하여 생성된 답변을 평가합니다.

  9. LangSmith가 종단 간 추적 및 관찰 가능성을 제공합니다.

지식 소스

이 프로젝트는 다음과 같은 엔터프라이즈 문서를 사용합니다:

  • Remote_Work_Policy.pdf

  • Employee_Handbook.pdf


Related MCP server: Corporate Tools MCP Server

2. 주요 기능

  • 엔터프라이즈 문서 질의응답

  • 검색-증강 생성(RAG)

  • 엔터프라이즈 문서에 대한 의미 검색

  • ChromaDB 벡터 데이터베이스

  • HuggingFace 임베딩

  • LangGraph 에이전트 오케스트레이션

  • 커스텀 MCP 서버

  • MCP 도구 기반 엔터프라이즈 지식 검색

  • LangGraph 검색기 에이전트의 활성 MCP 사용

  • Ollama LLM 추론

  • 응답 생성을 위한 gpt-oss:120b-cloud

  • RAGAS 평가

  • 충실도(Faithfulness) 평가

  • 답변 관련성(Answer Relevancy) 평가

  • LangSmith 추적 및 관찰 가능성

  • 노드별 LangGraph 실행 가시성

  • 소스 귀속(Source attribution)

  • 모듈식 Python 아키텍처


3. 아키텍처 개요

flowchart TD
    A[User Question] --> B[LangGraph Orchestrator]
    B --> C[Retriever Agent]
    C --> D[MCP Client]
    D --> E[Custom MCP Server]
    E --> F[search_enterprise_knowledge]
    F --> G[ChromaDB Vector Search]
    G --> H[Relevant Document Chunks]
    H --> C
    C --> I[Response Agent]
    I --> J[gpt-oss:120b-cloud]
    J --> K[Evaluator Agent]
    K --> L[RAGAS]
    L --> M[Final Answer + Evaluation]
    B -. tracing .-> N[LangSmith]

하이레벨 흐름

User Question
      |
      v
LangGraph
      |
      v
Retriever Agent
      |
      v
MCP Client
      |
      v
MCP Server
      |
      v
search_enterprise_knowledge
      |
      v
ChromaDB
      |
      v
Retrieved Context
      |
      v
Response Agent
      |
      v
gpt-oss:120b-cloud
      |
      v
Evaluator Agent
      |
      v
RAGAS
      |
      v
Final Answer

4. 기술 스택

기술 용도


Python 핵심 애플리케이션 LangChain LLM 및 RAG 구성 요소 LangGraph 에이전트 워크플로 오케스트레이션 ChromaDB 벡터 데이터베이스 HuggingFace 문서 임베딩 Ollama LLM 추론 인터페이스 gpt-oss:120b-cloud 응답 생성 qwen3:4b 평가 모델 RAGAS RAG 평가 MCP 도구 기반 지식 접근 LangSmith 관찰 가능성 및 추적 PyPDF PDF 문서 로드 python-dotenv 환경 구성


5. 프로젝트 구조

enterprise-knowledge-assistant/
│
├── data/
│   ├── Remote_Work_Policy.pdf
│   └── Employee_Handbook.pdf
│
├── chroma_db/
│
├── mcp_server/
│   └── server.py
│
├── src/
│   ├── agents/
│   │   ├── retriever_agent.py
│   │   ├── response_agent.py
│   │   └── evaluator_agent.py
│   │
│   ├── rag/
│   │   ├── loader.py
│   │   ├── embeddings.py
│   │   ├── vectorstore.py
│   │   └── retriever.py
│   │
│   ├── graph.py
│   ├── state.py
│   └── config.py
│
├── scripts/
│   ├── ingest.py
│   └── run.py
│
├── screenshots/
│   ├── EKA1.png
│   ├── EKA2.png
│   ├── EKA3.png
│   ├── EKA4.png
│   ├── EKA5.png
│   ├── EKA6.png
│   └── EKA7.png
│
├── .env
├── .gitignore
├── requirements.txt
└── README.md

.env 파일을 소스 제어에서 제외하세요. API 키와 비밀 정보는 절대 GitHub에 커밋해서는 안 됩니다.


6. RAG 설계

6.1 문서 소스

지식 베이스에는 엔터프라이즈 PDF 문서가 포함됩니다:

Remote_Work_Policy.pdf
Employee_Handbook.pdf
Leave_Policy.pdf

PDF는 pypdf를 사용하여 로드됩니다.

각 페이지는 소스 및 페이지 메타데이터와 함께 처리되어, 검색된 정보가 원본 문서와 연결될 수 있도록 합니다.


6.2 문서 로딩

수집 파이프라인은 다음과 같습니다:

PDF Documents
      |
      v
PyPDF
      |
      v
Page-level Text Extraction
      |
      v
Source + Page Metadata

로더는 페이지별로 텍스트를 추출하고 다음을 저장합니다:

  • 문서 텍스트

  • 소스 파일 이름

  • 페이지 번호


6.3 청킹 전략

이 프로젝트는 RecursiveCharacterTextSplitter를 사용합니다.

현재 구성:

chunk_size    = 800
chunk_overlap = 120

오버랩은 인접한 청크 간의 컨텍스트를 보존하는 데 도움이 됩니다.

청킹은 다음에 도움이 됩니다:

  • 검색 정밀도 향상

  • 불필요한 컨텍스트 감소

  • 프롬프트를 관리 가능한 크기로 유지

  • 의미 있는 정책 섹션 보존


6.4 임베딩 모델

이 프로젝트는 다음을 사용합니다:

BAAI/bge-small-en-v1.5

HuggingFaceEmbeddings를 통해 사용됩니다.

임베딩은 CPU 구성으로 로컬에서 생성되며, 유사도 검색 전에 정규화됩니다.


6.5 벡터 데이터베이스

이 프로젝트는 다음을 사용합니다:

ChromaDB

컬렉션:

enterprise_knowledge

영구 저장 벡터 데이터베이스:

./chroma_db

6.6 검색

검색기는 ChromaDB에 대해 의미적 유사도 검색을 수행합니다.

현재 기본 검색 수:

TOP_K = 4

검색된 청크는 컨텍스트로 응답 에이전트에 전달됩니다.


7. LangGraph 설계

LangGraph는 에이전트 AI 워크플로를 오케스트레이션합니다.

그래프

START
  |
  v
Retriever Agent
  |
  v
Response Agent
  |
  v
Evaluator Agent
  |
  v
END

7.1 노드 1 --- 검색기 에이전트

책임

사용자 질문에 대한 관련 엔터프라이즈 지식을 검색합니다.

처리

Question
   |
   v
MCP Client
   |
   v
MCP Server
   |
   v
search_enterprise_knowledge
   |
   v
RAG / ChromaDB
   |
   v
Relevant Context

출력

  • 검색된 컨텍스트

  • 소스 정보

검색기 에이전트는 일반 LangGraph 실행 중에 MCP 도구를 적극적으로 호출합니다.


7.2 노드 2 --- 응답 에이전트

책임

사용자 질문과 검색된 엔터프라이즈 컨텍스트를 사용하여 최종 답변을 생성합니다.

모델

gpt-oss:120b-cloud

입력

  • 사용자 질문

  • 검색된 컨텍스트

출력

근거 기반 자연어 응답.


7.3 노드 3 --- 평가 에이전트

책임

생성된 답변을 평가합니다.

지표

  • 충실도(Faithfulness)

  • 답변 관련성(Answer Relevancy)

점수와 해석은 최종 애플리케이션 결과에 추가됩니다.


8. MCP 통합

이 프로젝트에는 엔터프라이즈 지식 검색을 위한 커스텀 MCP 서버가 포함되어 있습니다.

MCP 서버

mcp_server/server.py

MCP 서버는 MCP Python SDK를 사용하여 구현됩니다.

MCP 도구

search_enterprise_knowledge

자연어 쿼리를 사용하여 엔터프라이즈 지식 베이스를 검색합니다.

예시:

search_enterprise_knowledge(
    query="What are the key requirements for employees working remotely?"
)

get_document_sources

사용 가능한 엔터프라이즈 문서 소스를 반환합니다.


8.1 LangGraph의 활성 MCP 사용

이것은 핵심 프로젝트 요구 사항입니다.

MCP 통합은 일반 LangGraph 실행 중에 적극적으로 사용됩니다. 단순히 독립 실행형 서버만이 아닙니다.

실행 흐름은 다음과 같습니다:

LangGraph Retriever Agent
          |
          v
      MCP Client
          |
          v
      MCP Server
          |
          v
search_enterprise_knowledge
          |
          v
       RAG Search
          |
          v
 Retrieved Context

애플리케이션 출력은 호출을 명시적으로 확인합니다:

NODE 1: RETRIEVER AGENT

Calling MCP tool: search_enterprise_knowledge
MCP retrieval completed.

이는 LangGraph 노드가 실행 중에 MCP 통합을 적극적으로 사용함을 보여줍니다.


8.2 MCP 도구 확인

프로젝트 루트에서:

python -c "import asyncio; from mcp_server.server import mcp; tools=asyncio.run(mcp.list_tools()); print([t.name for t in tools])"

예상 결과:

['search_enterprise_knowledge', 'get_document_sources']

9. RAGAS 평가

RAGAS는 생성된 응답의 품질을 평가합니다.

수집된 지표

충실도(Faithfulness)

생성된 답변이 검색된 컨텍스트에 의해 뒷받침되는지 측정합니다.

답변 관련성(Answer Relevancy)

생성된 응답이 사용자 질문을 다루는지 측정합니다.

평가 흐름

Retrieved Context
       |
       v
Generated Answer
       |
       +----------------------+
       |                      |
       v                      v
Faithfulness          Answer Relevancy
       |                      |
       +----------+-----------+
                  |
                  v
             RAGAS Result

평가 예시

최근 성공적인 애플리케이션 실행 결과:

Faithfulness: 0.9500
Answer Relevancy: 0.9500
Interpretation: Excellent

점수는 질문, 검색된 컨텍스트, 생성된 응답, 평가 모델 및 평가 조건에 따라 달라질 수 있습니다.


10. LangSmith 관찰 가능성

LangSmith는 에이전트 AI 워크플로에 대한 관찰 가능성을 제공합니다.

다음을 검사할 수 있습니다:

  • LangGraph 실행

  • 개별 그래프 노드

  • LLM 호출

  • 입력 및 출력

  • 실행 지연 시간

  • 평가 결과

  • 워크플로 동작

예시 구성:

LANGSMITH_TRACING=true
LANGSMITH_API_KEY=<your-langsmith-api-key>
LANGSMITH_PROJECT=enterprise-knowledge-assistant

API 키를 GitHub에 커밋하지 마세요.


11. 설정 지침

사전 요구 사항

  • Python 3.10 이상

  • Ollama

  • Git

가상 환경 생성

Windows

python -m venv venv
venv\Scripts\activate

Linux/macOS

python3 -m venv venv
source venv/bin/activate

의존성 설치

python -m pip install -r requirements.txt

환경 구성

프로젝트 루트에 .env를 생성하세요:

OLLAMA_BASE_URL=http://localhost:11434

LLM_MODEL=gpt-oss:120b-cloud
EVALUATOR_MODEL=qwen3:4b

EMBEDDING_MODEL=BAAI/bge-small-en-v1.5

VECTOR_DB_PATH=./chroma_db
COLLECTION_NAME=enterprise_knowledge
TOP_K=4

LANGSMITH_TRACING=true
LANGSMITH_API_KEY=<your-langsmith-api-key>
LANGSMITH_PROJECT=enterprise-knowledge-assistant

12. 문서 수집

엔터프라이즈 PDF를 다음 위치에 배치하세요:

data/
├── Remote_Work_Policy.pdf
└── Employee_Handbook.pdf

실행:

python -m scripts.ingest

수집 파이프라인은 다음과 같습니다:

PDF
 |
 v
Text Extraction
 |
 v
Chunking
 |
 v
Embedding Generation
 |
 v
ChromaDB

13. 애플리케이션 실행

수집 후:

python -m scripts.run

다음이 표시됩니다:

============================================================
ENTERPRISE KNOWLEDGE ASSISTANT
============================================================

Ask your question:

자연어 질문을 입력하세요.


14. 샘플 질문

What are the key requirements for employees working remotely?
What is the remote work policy?
What are the rules regarding working from another city or country?
What information security requirements apply to remote workers?
What should an employee do if internet or power issues prevent them from working remotely?

15. 예상 실행

성공적인 실행은 다음 순서를 따릅니다:

============================================================
NODE 1: RETRIEVER AGENT
============================================================

Calling MCP tool: search_enterprise_knowledge
MCP retrieval completed.

============================================================
NODE 2: RESPONSE AGENT
============================================================

Generated answer:
...

============================================================
NODE 3: EVALUATOR AGENT
============================================================

Running local evaluation...

EVALUATION RESULTS
----------------------------------------
Faithfulness: 0.9500
Answer Relevancy: 0.9500
Interpretation: Excellent

최종 결과에는 다음이 포함됩니다:

  • 질문

  • 생성된 답변

  • 소스

  • RAGAS 점수

  • 평가 해석


16. 증거 및 스크린샷

모든 스크린샷을 screenshots/ 디렉토리에 배치하세요.

EKA1 --- LangSmith 관찰 가능성

LangGraph 워크플로의 LangSmith 추적 및 관찰 가능성을 보여줍니다.

EKA1 - LangSmith Observability

EKA2 --- 애플리케이션 시작

애플리케이션 시작과 사용자 질문을 보여줍니다.

EKA2 - Application Startup

EKA3 --- RAGAS 평가 결과

RAGAS 평가 결과를 보여줍니다.

EKA3 - RAGAS Evaluation

EKA4 --- 최종 애플리케이션 출력

애플리케이션이 생성한 최종 답변을 보여줍니다.

EKA4 - Final Output

EKA5 --- MCP 도구 호출

검색기 에이전트가 다음을 호출하는 것을 보여줍니다:

Calling MCP tool: search_enterprise_knowledge
MCP retrieval completed.

이것은 MCP가 그래프 실행 중에 적극적으로 사용된다는 직접적인 증거입니다.

EKA5 - MCP Tool Invocation

EKA6 --- RAGAS 평가 및 최종 결과

평가 에이전트, 충실도, 답변 관련성, 해석 및 생성된 결과를 보여줍니다.

EKA6 - RAGAS Evaluation

EKA7 --- 최종 출력, 소스 및 RAGAS

최종 답변, MCP 소스 정보 및 RAGAS 점수를 보여줍니다.

EKA7 - Final Output and RAGAS


17. 요구 사항 준수

이 프로젝트는 RAG, LangGraph, MCP, 평가, 관찰 가능성 및 최종 응답 생성 전반에 걸쳐 지정된 엔터프라이즈 지식 어시스턴트 요구 사항을 충족합니다.

요구 사항

상태

구현

엔터프라이즈 지식 소스

충족

엔터프라이즈 PDF 문서가 PyPDF로 로드되며, Remote_Work_Policy.pdfEmployee_Handbook.pdf를 포함하고, 소스 및 페이지 메타데이터가 유지됩니다.

RAG 구현

충족

문서는 재귀적 텍스트 분할(chunk_size=800, chunk_overlap=120)을 사용하여 청킹되고, BAAI/bge-small-en-v1.5로 임베딩되며, ChromaDB에 저장되고, 의미 검색을 통해 검색되어 근거 기반 응답 생성을 위해 LLM에 전달됩니다.

LangGraph

충족

StateGraph가 공유 상태를 사용하여 검색기 에이전트 → 응답 에이전트 → 평가 에이전트 워크플로를 오케스트레이션합니다.

MCP 통합

충족

커스텀 MCP 서버가 search_enterprise_knowledgeget_document_sources를 노출합니다. LangGraph 검색기 에이전트는 실행 중에 MCP 도구를 적극적으로 호출하여 엔터프라이즈 지식을 검색합니다.

RAGAS 평가

충족

평가 에이전트가 충실도와 답변 관련성을 계산하고 평가 결과와 해석을 표시합니다. 예시 결과: 0.95 충실도, 0.95 답변 관련성 — 우수.

관찰 가능성

충족

LangSmith 추적은 LangGraph 실행, 개별 노드, LLM 호출, 입력, 출력, 지연 시간, 검색된 컨텍스트 및 평가 결과에 대한 가시성을 제공합니다.

그래프 실행 추적

충족

검색기 에이전트, 응답 에이전트 및 평가 에이전트에 대한 노드별 실행이 애플리케이션 출력과 LangSmith 모두에서 캡처됩니다.

최종 애플리케이션 출력

충족

애플리케이션은 사용자 질문, 생성된 응답, 소스 정보, RAGAS 점수 및 평가 해석을 포함하는 근거 기반 최종 답변을 생성합니다.

전체 상태

지정된 모든 프로젝트 요구 사항이 구현되고 충족되었습니다.

전체 워크플로는 다음과 같습니다:

기업 PDFs → RAG 검색 → MCP 도구 → LangGraph 에이전트 → LLM 응답 → RAGAS 평가 → LangSmith 옵저버빌리티 → 최종 출력

F
license - not found
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

View all related MCP servers

Related MCP Connectors

  • Your company's brain for AI agents. Cited, permission-aware knowledge across every system.

  • Shared, permission-aware company context for AI agents, with provenance, approvals and audit.

  • Search your knowledge bases from any AI assistant using hybrid RAG.

View all MCP Connectors

Latest Blog Posts

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/Shruti-Gorhe/enterprise-knowledge-assistant'

If you have feedback or need assistance with the MCP directory API, please join our Discord server