2
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

猿でもわかるAIビジネス活用シリーズ 🐵📊 AIを活用した社内ナレッジ共有の仕組み

Posted at

AIを活用した社内ナレッジ共有の仕組みを作ってみた話

1. はじめに:なぜ「社内ナレッジ共有」が課題になるのか?

日々の業務で「このトラブル、前にも誰かが対応してた気がする…」と思ったことはありませんか?
もしくは「この設定手順、どこに書いてあったっけ…」とSlackやNotionを探し回る日々…。

情報は存在するのに、見つからない。
これは多くの企業で起きている「暗黙知のサイロ化」問題です。

🧠 知見が属人化し、チーム内に埋もれてしまう

この問題を解決するアプローチのひとつが、「AIを活用した社内ナレッジ共有」の仕組みです。
今回は、ChatGPT API とベクトル検索 (Vector Search) を活用し、社内ドキュメントを質問回答型で引き出せるシステムを実装してみたので、その方法と工夫を紹介します。


2. 技術の概要:RAG(Retrieval-Augmented Generation)とは?

今回のシステムは、以下の技術スタックを使っています:

  • ChatGPT API(GPT-4):自然言語での対話エンジン
  • ベクトルデータベース(今回は Weaviate を使用):文書の意味検索
  • RAG(Retrieval-Augmented Generation):検索と生成のハイブリッドAI

🔍 RAGとは?

RAGとは、検索(Retrieval)と生成(Generation)を組み合わせたAIアーキテクチャで、「手元の文書から適切なコンテキストを検索し、その上でLLMに回答させる」手法です。

これにより、社内に閉じたナレッジ(例:Redmine、Wiki、PDFマニュアルなど)を活用したAIチャットボットを実現できます。


3. 実装してみる:Python + Weaviate + OpenAI APIで簡易プロトタイプ

3.1 データ構造の整理

まず、社内ドキュメント(例:Markdown, PDF, Notion Export)をすべてプレーンテキスト化し、小さなチャンクに分割します。

from langchain.text_splitter import RecursiveCharacterTextSplitter

text_splitter = RecursiveCharacterTextSplitter(chunk_size=500, chunk_overlap=50)
docs = text_splitter.create_documents([your_raw_text])

3.2 ベクトルDBへのアップロード

WeaviateをDockerで起動し、ベクトル化してドキュメントを格納します。

from langchain.vectorstores import Weaviate
from langchain.embeddings.openai import OpenAIEmbeddings

vectorstore = Weaviate.from_documents(
    documents=docs,
    embedding=OpenAIEmbeddings(openai_api_key="YOUR_KEY"),
    weaviate_url="http://localhost:8080"
)

3.3 ユーザーの質問に答える部分

質問を受け取り、関連するチャンクを検索し、GPTにプロンプトとして渡します。

retrieved_docs = vectorstore.similarity_search("Redmineの使い方まとめある?")
context = "\n".join([doc.page_content for doc in retrieved_docs])

prompt = f"""以下の社内ドキュメントに基づいて質問に答えてください。
###
{context}
###
Q: Redmineで工数を記録する手順は?
"""

response = openai.ChatCompletion.create(
    model="gpt-4",
    messages=[{"role": "user", "content": prompt}]
)

4. 実務でのコツと落とし穴

✅ 実務で役立ったTIPS

  • チャンクサイズの最適化:小さすぎると文脈が不足、大きすぎると検索精度が落ちる
  • ドキュメント前処理:余計なヘッダーやテンプレートは除去しておくと精度UP
  • Embed時のフィルタ設計:部署名・ドキュメント種別などでタグを持たせておくと便利

⚠️ よくある落とし穴

  • PDFレイアウト崩れ:レイアウトが複雑だと意図しない文脈が生成される
  • セキュリティ問題:APIキーや個人情報の取り扱いには注意が必要
  • メンテナンス工数:新規ドキュメント追加時のインデックス更新設計が重要

5. 応用編:Slack連携 & 社内Q&Aボットの構築

さらに以下の応用が可能です:

  • Slack Botと連携:ユーザーが質問 → AIがRAGで回答 → スレッドで会話
  • 社内ポータルに統合:Next.jsやVueでUIを作り、社内検索ポータルとして活用
  • 監査ログ機能の追加:誰が何を聞いたか記録し、ナレッジの需要分析に活かす

6. まとめ:ナレッジ共有 × AIは、全員の生産性を上げる武器になる

観点 メリット デメリット
検索性 意味ベースの検索ができる 初期構築に時間がかかる
拡張性 Slack, Web, Voiceにも展開可能 保守・更新設計が必要
業務効果 情報探索の時短、大幅な属人化解消 精度にはドキュメント品質が影響

社内に眠っている「知ってる人しか知らない情報」──それをAIの力で引き出すことで、組織全体のナレッジ資産が見える化されます。
実際に試してみると、「あれ?これ、うちのチームにもすぐ導入できるかも」と感じるはずです。

まずは小さく始めて、小さく成功体験を積み上げること。
それが、AI活用を組織に根づかせる第一歩です。


🔗 付録:GitHubリポジトリ、参考リンク

2
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?