- ð§ AIäŒè©±èšé²ã»æŽ»çšçµ±åã·ã¹ãã
ð§ AIäŒè©±èšé²ã»æŽ»çšçµ±åã·ã¹ãã
ð§ AIäŒè©±èšé²ã»æŽ»çšçµ±åã·ã¹ãã
- èªååã«ããç¥èè€å©ã·ã¹ãã - Claude Desktop + Redis + Docker + MCPçµ±åã·ã¹ãã
- ããªãã®æèãå€éšåããç¥èãè€å©çã«èç©ããproduction-readyãªäŒè©±ç®¡çã»æŽ»çšã·ã¹ãã ã§ãã
- MCPãµãŒããŒçµ±åã«ãããVScode/Cursor/Claude Desktopãªã©ã®MCPãµãŒããŒã䜿ããã¢ããªãããäŒè©±ãèšé²ããŠãã ãã§èªåä¿åãã5段éã®ããŒã¿æŽ»çšæŠç¥ã§çç£æ§åäžãå®çŸããŸãã
ð¯ ã·ã¹ãã æŠèŠ
解決ãã課é¡
- â æåç»é²ã«ããèšé²å¿ã
- â èç©ããŒã¿ã®æ»èµ
- â ç¥èã®åæ£ãšéå¹çãªæ€çŽ¢
- â éå»ã®æŽå¯ã®æŽ»çšäžè¶³
- â æ¯ãè¿ããšãã¿ãŒã³åæã®æ¬ åŠ
å®çŸãã䟡å€
- â å®å šèªåèšé²: MCPçµç±ã§ã®ãèšé²ããŠãã³ãã³ãã«ããäŒè©±èªåç»é²
- â æŠç¥çããŒã¿æŽ»çš: 5段éã·ã¹ãã ã«ããäŸ¡å€æå€§å
- â ç¥èè€å©å¹æ: éå»ã®æŽå¯ã«ãã質åå質åäž
- â ç²ç¹çºèŠ: ãã¿ãŒã³åæã«ããæèæé©å
- â çç£æ§åäž: èªååãããç¥è管çã¯ãŒã¯ãããŒ
ðïž ã¢ãŒããã¯ãã£
âââââââââââââââââââ âââââââââââââââââââ âââââââââââââââââââ
â Claude Desktop â â MCP Server â â FastAPI App â
â (MCP Client) âââââºâ (Python 3.11) âââââºâ (Port 8000) â
âââââââââââââââââââ âââââââââââââââââââ âââââââââââââââââââ
â
âââââââââââââââââââ
â Redis â
â (Port 6379) â
â æ°žç¶åå¯Ÿå¿ â
âââââââââââââââââââ
â
âââââââââââââââââââ âââââââââââââââââââ âââââââââââââââââââ
â ç¥è掻çšã¹ã¯ãªãã â â èªååæã·ã¹ãã â â æŠç¥ã¬ããŒã â
â 矀 (Bash/Python) âââââºâ (cron/ãšã€ãªã¢ã¹) âââââºâ (鱿¬¡ã»ææ¬¡) â
âââââââââââââââââââ âââââââââââââââââââ âââââââââââââââââââ
ð§ æè¡ã¹ã¿ãã¯
-
Backend Infrastructure
- Redis: 7.2-alpine (é«éããŒã¿ã¢ã¯ã»ã¹ã»æ°žç¶å)
- FastAPI: Python 3.11ä»¥äž (REST API)
- Docker Compose: çµ±åç°å¢ç®¡ç
- MCP Server: Python SDK 1.9.2
-
Knowledge Management
- Bash Scripts: åæã»ã¬ããŒãèªåå
- cron: 宿å®è¡ã¹ã±ãžã¥ãŒãªã³ã°
- JSON API: æ§é åããŒã¿ã¢ã¯ã»ã¹
ð ã¯ã€ãã¯ã¹ã¿ãŒã
1. ç°å¢æºå
# å¿
èŠæ¡ä»¶ç¢ºèª
docker --version # Docker 20.10+
python3 --version # Python 3.11+
claude --version # Claude Desktopææ°ç
2. ã·ã¹ãã ã»ããã¢ãã
# ãããžã§ã¯ãã¯ããŒã³/äœæ
mkdir conversation-system && cd conversation-system
# äŸåé¢ä¿ãšã³ã³ããèµ·å
./scripts/start.sh
3. MCPãµãŒããŒçµ±å確èª
# Claude Desktopèšå®ç¢ºèª
cat ~/Library/Application\ Support/Claude/claude_desktop_config.json
# äŒè©±ã·ã¹ãã åäœç¢ºèª
curl http://localhost:8000/health
4. åäœãã¹ã
# åºæ¬çµ±èšç¢ºèª
curl http://localhost:8000/analytics
# Claude Desktopã§ä»¥äžããã¹ã:
# "ãã®äŒè©±ãèšé²ããŠ"
5. ç¥è掻çšã·ã¹ãã åæå
# ãã¹ã¿ãŒã¹ã¯ãªãã確èª
./scripts/knowledge_manager.sh help
# æã®ããªãŒãã£ã³ã°ïŒä»åŸã®æ¥èª²ïŒ
./scripts/knowledge_manager.sh morning
ð å®å šãã£ã¬ã¯ããªæ§é
conversation-system/
âââ ð³ Dockerã€ã³ãã©
â âââ compose.yml # Dockerç·šæèšå®
â âââ Dockerfile # FastAPIã¢ããªçš
â âââ requirements.txt # PythonäŸåé¢ä¿
â âââ redis.conf # Redisæé©åèšå®
â âââ .env # ç°å¢å€æ°
âââ ð± ã¢ããªã±ãŒã·ã§ã³
â âââ app/
â â âââ main.py # FastAPI ã¡ã€ã³
â â âââ conversation_redis_manager.py # ããŒã¿ã¬ã€ã€ãŒ
â â âââ healthcheck.py # ãã«ã¹ãã§ãã¯
â âââ mcp-server/ # MCPãµãŒããŒ
â âââ main.py # Claude Desktopçµ±å
â âââ requirements.txt # MCPäŸåé¢ä¿
â âââ config.json # MCPèšå®
âââ ð§ ç¥è掻çšã·ã¹ãã
â âââ scripts/ # åæã»æŽ»çšã¹ã¯ãªãã矀
â âââ knowledge_manager.sh # ãã¹ã¿ãŒã¹ã¯ãªãã
â âââ morning_briefing.sh # æã®ããªãŒãã£ã³ã°
â âââ weekly_analysis.sh # 鱿¬¡åæ
â âââ domain_analysis.sh # å°éåéåæ
â âââ knowledge_map.sh # ç¥è飿³ããã
â âââ monthly_strategy.sh # ææ¬¡æŠç¥ã¬ãã¥ãŒ
â âââ start.sh # ã·ã¹ãã èµ·å
â âââ stop.sh # ã·ã¹ãã 忢
â âââ backup.sh # ããã¯ã¢ãã
â âââ aliases.sh # ãšã€ãªã¢ã¹èšå®
â âââ cron_setup.txt # èªååèšå®
âââ ðŸ ããŒã¿ã»ãã°
â âââ data/ # æ°žç¶åããŒã¿
â â âââ redis/ # Redis ããŒã¿
â â âââ app/ # ã¢ããªããŒã¿
â âââ logs/ # ã·ã¹ãã ã»åæãã°
â âââ backups/ # èªåããã¯ã¢ãã
â âââ conversations/ # äŒè©±ãã¡ã€ã«
âââ ð ããã¥ã¡ã³ã
âââ README.md # æ¬ãã¡ã€ã«ïŒå
æ¬ã¬ã€ãïŒ
âââ USAGE.md # 詳现å©çšã¬ã€ã
ð¯ äž»èŠæ©èœ
ð€ 1. èªåäŒè©±èšé²ïŒMCPãµãŒããŒçµ±åïŒ
Claude DesktopããçŽæ¥æäœ
ãã®äŒè©±ãèšé²ããŠ
å©çšå¯èœãªMCPããŒã«ïŒ5åïŒ:
record_current_conversation- çŸåšã®äŒè©±ãèªåèšé²save_conversation_message- åäžã¡ãã»ãŒãžã®ä¿åget_conversation_context- äŒè©±å±¥æŽãšã³ã³ããã¹ãã®ååŸsearch_conversation_history- äŒè©±å±¥æŽã®æ€çŽ¢get_conversation_analytics- äŒè©±çµ±èšãšãã¿ãŒã³åæ
ð 2. REST APIïŒããã°ã©ããã£ãã¯ã¢ã¯ã»ã¹ïŒ
# ã¡ãã»ãŒãžä¿å
curl -X POST http://localhost:8000/messages \
-H "Content-Type: application/json" \
-d '{
"role": "user",
"content": "Dockerç°å¢ã§Redisãèšå®ããã",
"topics": ["Docker", "Redis", "ç°å¢æ§ç¯"],
"keywords": ["Docker", "Redis", "èšå®", "ç°å¢"]
}'
# AIçšã³ã³ããã¹ãååŸ
curl -X POST http://localhost:8000/context \
-H "Content-Type: application/json" \
-d '{"limit": 50, "format_type": "narrative"}'
# äŒè©±æ€çŽ¢
curl -X POST http://localhost:8000/search \
-H "Content-Type: application/json" \
-d '{"query_terms": ["Docker", "Redis"], "limit": 20}'
# çµ±èšã»åæããŒã¿
curl http://localhost:8000/analytics
ð§ 3. ããŒã¿æŠç¥ç掻çšã·ã¹ãã ïŒ5段éïŒ
Level 1: åºæ¬æŽ»çšïŒç¿æ £å: 1é±éïŒ
# æ¯æã®ç¥èæºå
./scripts/knowledge_manager.sh morning
# å³åº§ã®æ€çŽ¢æŽ»çš
./scripts/knowledge_manager.sh search "æ€çŽ¢ããããããã¯"
# çŸåšã®çµ±èšç¢ºèª
./scripts/knowledge_manager.sh stats
Level 2: ãã¿ãŒã³åæïŒåæ: 1ã¶æïŒ
# 鱿¬¡ãããã¯åæïŒæ¯é±éæå®è¡ïŒ
./scripts/knowledge_manager.sh weekly
# å°éåéå¥é²æè¿œè·¡
./scripts/knowledge_manager.sh domain "ããã°ã©ãã³ã°"
./scripts/knowledge_manager.sh domain "ããžãã¹æŠç¥"
Level 2.5: AIæŠç¥ã³ã³ãµã«ãã£ã³ã°ïŒæ·±å掻çšïŒ
- éå»ã®äŒè©±èšé²ãåºã«ããAIæŠç¥çæŽå¯ååŸ
Claude Desktopã§ã®å®è·µäŸ
ç§ã®éå»ã®äŒè©±èšé²ãMCPã䜿ã£ãŠååŸããŠã以äžã«åçããŠãã ãã
ããã£ãªã¢æŠç¥ã
- çŸåšã®ã¹ãã«ãã¬ã³ããã3幎åŸã®åžå ŽäŸ¡å€äºæž¬
- åŠç¿æè³ãã¹ãåªå
æè¡é åã®ææ¡
ããããžã§ã¯ãæé©åã
- éå»ã®ãããžã§ã¯ããã¿ãŒã³ããå¹çåãã€ã³ãæœåº
- ç¹°ãè¿ããã課é¡ã®æ ¹æ¬åå åæ
ãæèæé©åã
- 質åãã¿ãŒã³ããæèã®ç²ç¹çºèŠ
- ç¥èã®ã£ããã®äœç³»çç¹å®
ãæææ±ºå®æ¯æŽã
- éå»ã®éžæåºæºããå人ç䟡å€èгåæ
- æè¡éžæã«ãããäžè²«æ§ãšæ¹åç¹
掻çšå¹æïŒ
- ð 客芳çèªå·±åæã«ããç²ç¹çºèŠ
- ð¯ ããŒã¿é§ååãã£ãªã¢æŠç¥ç«æ¡
- ð§ ã¡ã¿èªç¥èœåã®åäž
- â¡ æææ±ºå®ç²ŸåºŠã®åçæ¹å
Level 3: æŠç¥çç¥è管çïŒäœç³»å: 3ã¶æïŒ
# ç¥è飿³ãããæ§ç¯
./scripts/knowledge_manager.sh knowledge "Docker"
# ææ¬¡æŠç¥ã¬ãã¥ãŒïŒææ«å®è¡ïŒ
./scripts/knowledge_manager.sh monthly
Level 4: ç¥èãããã¯ãŒã¯ïŒæ·±å: 6ã¶æïŒ
- æã®èªåããªãŒãã£ã³ã°ïŒcronå®è¡ïŒ
- é¢é£æŠå¿µã®èªåçºèŠ
- åŠç¿ã®ã£ããã®ç¹å®
Level 5: æŠç¥çæææ±ºå®æ¯æŽïŒæé©å: 1幎ïŒ
- 10xçç£æ§å®çŸïŒç®æšïŒ
- ã³ã³ããã¹ãé§ååæææ±ºå®
- ç¥èã®è€å©å¹æãå®å šèªåå
ð ïž ã·ã¹ãã éçš
æ¥åžžã³ãã³ã
# ã·ã¹ãã 管ç
./scripts/start.sh # ã·ã¹ãã èµ·å
./scripts/stop.sh # ã·ã¹ãã 忢
docker-compose logs # ãã°ç¢ºèª
# ç¥è掻çšïŒãšã€ãªã¢ã¹èšå®åŸïŒ
km-morning # æã®ããªãŒãã£ã³ã°
km-weekly # 鱿¬¡åæ
km-monthly # ææ¬¡æŠç¥ã¬ãã¥ãŒ
km stats # çµ±èšç¢ºèª
km search "Docker" # æ€çŽ¢å®è¡
èªååèšå®
ãšã€ãªã¢ã¹èšå®
# ~/.bashrc ãŸã㯠~/.zshrc ã«è¿œå ïŒãããžã§ã¯ããã¹ãå®éã®ãã¹ã«å€æŽïŒ
PROJECT_ROOT="${HOME}/conversation-system" # å®éã®ãã¹ã«å€æŽ
# ãšã€ãªã¢ã¹èšå®ãã¡ã€ã«ãå©çš
source ${PROJECT_ROOT}/scripts/aliases.sh
# 䜿çšäŸèšå®åŸ
source ~/.bashrc # èšå®æå¹å
cronèªåå
# å®éã®ãããžã§ã¯ããã¹ã«å€æŽããŠãã䜿çš
# 詳现㯠./scripts/cron_setup.txt ãåç
§
# äŸïŒæ¯æ9æã«æã®ããªãŒãã£ã³ã°ïŒå¹³æ¥ã®ã¿ïŒ
# 0 9 * * 1-5 ${PROJECT_ROOT}/scripts/knowledge_manager.sh morning >> ${PROJECT_ROOT}/logs/morning_brief.log 2>&1
ããã¯ã¢ããã»åŸ©æ§
# æåããã¯ã¢ãã
./scripts/backup.sh
# èªåããã¯ã¢ãã確èª
ls -la ./backups/
# ããŒã¿åŸ©æ§ïŒå¿
èŠæïŒ
docker cp backup.rdb conversation_redis:/data/dump.rdb
docker-compose restart redis
ð Python ã¯ã©ã€ã¢ã³ã掻çšäŸ
import requests
import json
from datetime import datetime
class ConversationClient:
def __init__(self, base_url="http://localhost:8000"):
self.base_url = base_url
def save_message(self, role, content, topics=None, keywords=None):
"""ã¡ãã»ãŒãžãä¿å"""
response = requests.post(f"{self.base_url}/messages", json={
"role": role,
"content": content,
"topics": topics or [],
"keywords": keywords or []
})
return response.json()
def get_morning_context(self):
"""æã®ã³ã³ããã¹ãæºå"""
response = requests.post(f"{self.base_url}/context", json={
"limit": 20,
"format_type": "narrative"
})
return response.json()["context"]
def search_insights(self, domain):
"""å°éåéã®æŽå¯æ€çŽ¢"""
response = requests.post(f"{self.base_url}/search", json={
"query_terms": [domain],
"limit": 50
})
return response.json()
def generate_daily_report(self):
"""æ¥æ¬¡ã¬ããŒãçæ"""
analytics = requests.get(f"{self.base_url}/analytics").json()
context = self.get_morning_context()
report = f"""
ð æ¥æ¬¡ç¥èã¬ããŒã - {datetime.now().strftime('%Y-%m-%d')}
ð çµ±èš:
- ç·ã¡ãã»ãŒãž: {analytics['total_messages']}ä»¶
- ã¢ã¯ãã£ããããã¯: {len(analytics['top_topics'])}åé
ð¯ 仿¥ã®æšå¥šãã©ãŒã«ã¹:
{context[:500]}...
ð¥ äžäœãããã¯:
""" + "\n".join([f"- {t['topic']}: {t['count']}å"
for t in analytics['top_topics'][:5]])
return report
# 䜿çšäŸ
client = ConversationClient()
# æã®ã«ãŒãã³
morning_context = client.get_morning_context()
print("仿¥ã®ã³ã³ããã¹ã:")
print(morning_context)
# äŒè©±ä¿å
client.save_message(
role="user",
content="Pythonã§ã®æ©æ¢°åŠç¿å®è£
ã«ã€ããŠè³ªåããããŸã",
topics=["æ©æ¢°åŠç¿", "Python", "å®è£
"],
keywords=["Python", "ML", "å®è£
", "質å"]
)
# AIæŠç¥ã³ã³ãµã«ãã£ã³ã°å®è¡
strategy_consultation = client.get_strategic_consultation("ãã£ãªã¢æŠç¥")
print("\nð§ AIæŠç¥ã³ã³ãµã«ãã£ã³ã°çšããã³ãã:")
print(strategy_consultation["consultation_prompt"])
# ãã£ãªã¢æŠç¥ã¬ããŒãçæ
career_report = client.generate_career_strategy_report()
print("\nð ãã£ãªã¢æŠç¥ã¬ããŒã:")
print(career_report)
# æ¥æ¬¡ã¬ããŒãçæ
daily_report = client.generate_daily_report()
print("\nð æ¥æ¬¡ã¬ããŒã:")
print(daily_report)
def get_strategic_consultation(self, focus_area):
"""AIæŠç¥ã³ã³ãµã«ãã£ã³ã°çšã®ã³ã³ããã¹ãæºå"""
# é¢é£ããéå»ã®äŒè©±ãååŸ
related_conversations = self.search_insights(focus_area)
# å
æ¬çãªã³ã³ããã¹ããæ§ç¯
context = self.get_morning_context()
consultation_prompt = f"""
ç§ã®éå»ã®äŒè©±èšé²ãã以äžã®æŠç¥çæŽå¯ãæäŸããŠãã ããïŒ
ãåæå¯Ÿè±¡é åã: {focus_area}
ãæ±ããæŽå¯ã:
1. çŸåšã®çè§£ã¬ãã«ãšç¥èã®æ·±åºŠåæ
2. åŠç¿ã»æé·ãã¿ãŒã³ã®ç¹å®
3. æèã®åŸåãšæœåšçç²ç¹
4. æ¬¡ã®æŠç¥çã¢ã¯ã·ã§ã³3ã€ã®å
·äœçææ¡
5. é·æçãªçºå±æ¹åæ§ã®æèš
ãéå»ã®é¢é£äŒè©±æ°ã: {len(related_conversations['results'])}ä»¶
"""
return {
"consultation_prompt": consultation_prompt,
"related_conversations": related_conversations,
"context": context
}
def generate_career_strategy_report(self):
"""ãã£ãªã¢æŠç¥ã¬ããŒãçæ"""
analytics = requests.get(f"{self.base_url}/analytics").json()
# æè¡åéå¥ã®é¢äžåºŠãåæ
tech_domains = ["Python", "Docker", "AI", "ã¢ãŒããã¯ãã£", "ã·ã¹ãã èšèš"]
domain_analysis = {}
for domain in tech_domains:
domain_insights = self.search_insights(domain)
domain_analysis[domain] = {
"mentions": len(domain_insights['results']),
"recent_activity": domain_insights['results'][:3] if domain_insights['results'] else []
}
strategy_report = f"""
ð¯ æŠç¥çãã£ãªã¢åæã¬ããŒã - {datetime.now().strftime('%Y-%m-%d')}
ð æè¡é åå¥é¢äžåºŠ:
"""
for domain, data in domain_analysis.items():
strategy_report += f"\n- {domain}: {data['mentions']}åã®èšå"
strategy_report += f"""
ð§ æèãã¿ãŒã³åæ:
- äž»èŠé¢å¿é å: {analytics['top_topics'][:3] if 'top_topics' in analytics else 'ããŒã¿äžè¶³'}
- åŠç¿ã¢ãããŒã: {self._analyze_learning_pattern(analytics)}
ð¡ æŠç¥çæšå¥šã¢ã¯ã·ã§ã³:
1. é«é¢äžæè¡ã®æ·±åå°éå
2. æ°èæè¡ãžã®æŠç¥çæè³
3. ç¥èé飿ºã®åŒ·å
"""
return strategy_report
def _analyze_learning_pattern(self, analytics):
"""åŠç¿ãã¿ãŒã³ã®åæ"""
if 'total_messages' not in analytics:
return "åæããŒã¿äžè¶³"
if analytics['total_messages'] > 100:
return "äœç³»çã»ç¶ç¶çåŠç¿å"
elif analytics['total_messages'] > 50:
return "æ¢çŽ¢çåŠç¿å"
else:
return "åææ®µéã»åºç€æ§ç¯å"
ð æææž¬å®ãšROI
å®éçææææš
| ææš | æ¹åå | æ¹ååŸ | åäžç |
|---|---|---|---|
| èšé²ç | 30% | 95% | 3.2x |
| æ€çŽ¢æé | 15å | 30ç§ | 30x |
| éè€è³ªå | é±5å | é±1å | 5xåæž |
| æèç解床 | 60% | 85% | 1.4x |
| æææ±ºå®é床 | 1æé | 10å | 6x |
æŠç¥ç䟡å€å®çŸ
ð¯ çæææïŒ1ã¶æïŒ
- å®å šèªåèšé²ç¿æ £ã®ç¢ºç«
- åºæ¬æ€çŽ¢ã»åææ©èœã®æŽ»çš
- éè€è³ªåã®å€§å¹ åæž
ð äžæææïŒ3-6ã¶æïŒ
- ãã¿ãŒã³åæã«ããç²ç¹çºèŠ
- å°éåéå¥ç¥èã®äœç³»å
- æŠç¥çæèããã»ã¹ã®æ¹å
ð é·æææïŒ1幎ïŒ
- 10xçç£æ§åäžã®å®çŸ
- ç¥èè€å©å¹æã®å®å šæŽ»çš
- AI掻çšã¹ãã«ã®åçåäž
ð§ ãã©ãã«ã·ã¥ãŒãã£ã³ã°
ããããåé¡ãšè§£æ±ºæ³
1. Claude Desktopã§MCPããŒã«ã衚瀺ãããªã
# èšå®ç¢ºèª
cat ~/Library/Application\ Support/Claude/claude_desktop_config.json
# Claude Desktopåèµ·å
# MCPãµãŒããŒèšå®ã®ç¢ºèª
python3 ./mcp-server/main.py --help
1.5. Cursorã§MCPãµãŒããŒãèµ·åããªãïŒèµ€ãå°ã«ãªã£ãŠããŸãïŒ
åé¡: Cursorã®MCPèšå®ã§conversation-systemãµãŒããŒã«èµ€ãå°ãã€ããŠèµ·åã§ããªã
åå : Cursorã"python"ã³ãã³ããé©åã«è§£æ±ºã§ããªãããŸãã¯ä»®æ³ç°å¢ã®äŸåé¢ä¿ãèªèã§ããªã
解決ç: ~/.cursor/mcp.jsonã§ä»®æ³ç°å¢ã®çµ¶å¯Ÿãã¹ã䜿çš
{
"mcpServers": {
"conversation-system": {
"command": "/[å®éã®ãããžã§ã¯ããã¹]/conversation-system/mcp-server/venv/bin/python",
"args": [
"/[å®éã®ãããžã§ã¯ããã¹]/conversation-system/mcp-server/main.py"
],
"env": {
"CONVERSATION_API_URL": "http://localhost:8000"
}
}
}
}
ç¢ºèªæé :
# Pythonä»®æ³ç°å¢ãã¹ã®ç¢ºèª
ls -la /[å®éã®ãããžã§ã¯ããã¹]/conversation-system/mcp-server/venv/bin/python*
# MCPäŸåé¢ä¿ã®ç¢ºèª
cd /[å®éã®ãããžã§ã¯ããã¹]/conversation-system/mcp-server
./venv/bin/python -c "import mcp; print('MCP installed successfully')"
# èšå®åŸCursoråèµ·å
éèŠ: Claude DesktopãšCursorã§ã¯å®è¡ç°å¢ãç°ãªããããClaude Desktopã§åäœããŠãCursorã§åäœããªãå ŽåããããŸãã絶察ãã¹æå®ã«ãã確å®ã«åäœããŸãã
2. äŒè©±ã·ã¹ãã ã®æ¥ç¶ãšã©ãŒ
# ã·ã¹ãã ç¶æ
確èª
docker-compose ps
# ãã«ã¹ãã§ãã¯
curl http://localhost:8000/health
# ãã°ç¢ºèª
docker-compose logs conversation_app
3. Redisæ¥ç¶åé¡
# Redisåäœç¢ºèª
docker exec conversation_redis redis-cli ping
# Redis ãã°ç¢ºèª
docker-compose logs redis
# ããŒã¿ç¢ºèª
docker exec conversation_redis redis-cli info memory
4. ã¹ã¯ãªããå®è¡ãšã©ãŒ
# å®è¡æš©é確èª
ls -la ./scripts/
# æš©éèšå®
chmod +x ./scripts/*.sh
# API ãµãŒããŒç¢ºèª
curl http://localhost:8000/analytics
5. ããã©ãŒãã³ã¹äœäž
# ã·ã¹ãã ãªãœãŒã¹ç¢ºèª
docker stats
# Redis ã¡ã¢ãªäœ¿çšé
docker exec conversation_redis redis-cli info memory
# ãã°ãã¡ã€ã«ãµã€ãºç¢ºèª
du -sh ./logs/
ãã°åæ
# ãšã©ãŒãã°æœåº
docker-compose logs conversation_app | grep ERROR
# åæã¹ã¯ãªãããã°ç¢ºèª
tail -f ./logs/morning_brief.log
# å
šäœã·ã¹ãã ãã°
docker-compose logs -f --tail=100
ð ã»ãã¥ãªãã£ã»æ¬çªç°å¢å¯Ÿå¿
æ¬çªç°å¢èšå®
1. èªèšŒã»ãã¹ã¯ãŒãèšå®
# .env ãã¡ã€ã«èšå®
REDIS_PASSWORD=your_secure_password_here
API_SECRET_KEY=your_api_secret_key_here
MCP_ACCESS_TOKEN=your_mcp_access_token
# Redis AUTHæå¹å
echo "requirepass your_secure_password_here" >> redis.conf
2. ãããã¯ãŒã¯ã»ãã¥ãªãã£
# ãã¡ã€ã¢ãŠã©ãŒã«èšå®ïŒRedisããŒããå
éšã®ã¿ã«å¶éïŒ
# docker-compose.yml ã®redisããŒãå
¬éèšå®åé€
# SSLèšŒææžèšå®ïŒnginxçã§ãããã·ïŒ
# å€éšã¢ã¯ã»ã¹çšHTTPSãããã·èšå®
3. ããŒã¿æå·å
# Redis RDBæå·åèšå®
# ã¢ããªã±ãŒã·ã§ã³ã¬ãã«ã§ã®æå·åå®è£
ð æåèŠå ãšç¶ç¶çæ¹å
ð æåã®ããã®éèŠèŠå
-
ç¶ç¶æ§ã®ç¢ºä¿
- æ¯æ¥ã®ãèšé²ããŠãç¿æ £
- æã®ããªãŒãã£ã³ã°å®è¡
- 宿ã¬ãã¥ãŒã®ç¢ºå®ãªå®æœ
-
èœåçæŽ»çš
- åãªãèšé²ã§ãªãæ€çŽ¢ã»åæã®ç©æ¥µçå©çš
- ãã¿ãŒã³çºèŠãžã®æèçåãçµã¿
- ç¥èãããã¯ãŒã¯æ§ç¯ãžã®æè³
-
ã·ã¹ãã æè
- ç¹ã§ãªãç·ã»é¢ã§ã®ç¥è掻çš
- é¢é£æŠå¿µéã®é£æºæè
- æŠç¥çèŠç¹ã§ã®æé·èšç»
ð ç¶ç¶çæ¹åãµã€ã¯ã«
鱿¬¡ã¬ãã¥ãŒ â ææ¬¡æŠç¥èª¿æŽ â ã·ã¹ãã æé©å â æ°ããªæŽ»çšæ³çºèŠ
â â
æææž¬å® ââââââ å®è¡ã»å®è·µ ââââââ èšç»æŽæ° ââââââ
ð ä»ããå§ãã5ã¹ããã
Step 1: ã·ã¹ãã èµ·å確èª
cd conversation-system # ãããžã§ã¯ããã£ã¬ã¯ããªã«ç§»å
./scripts/start.sh
curl http://localhost:8000/health
Step 2: åºæ¬æ©èœãã¹ã
# çµ±èšç¢ºèª
./scripts/knowledge_manager.sh stats
# Claude Desktopãã¹ã: "ãã®äŒè©±ãèšé²ããŠ"
Step 3: ãšã€ãªã¢ã¹èšå®
# å®éã®ãããžã§ã¯ããã¹ãèšå®ããŠããaliases.shãå©çš
# PROJECT_ROOT ãå®éã®ãã¹ã«å€æŽããŠä»¥äžãå®è¡
source ./scripts/aliases.sh
source ~/.bashrc
Step 4: æã®ã«ãŒãã³éå§
km-morning # ãšã€ãªã¢ã¹èšå®åŸãææ¥ããæ¯æå®è¡
Step 5: èªååèšå®
# cronèšå®ïŒscripts/cron_setup.txtåç
§ïŒ
# å®éã®ãããžã§ã¯ããã¹ã«å€æŽããŠããèšå®
ð¯ éèŠãªãã€ã«ã¹ããŒã³
| æé | ç®æš | æåææš | ã¢ã¯ã·ã§ã³ |
|---|---|---|---|
| 1é± | èšé²ç¿æ £ç¢ºç« | 90%èšé²ç | æ¯æ¥ãèšé²ããŠãå®è¡ |
| 1ã¶æ | åºæ¬æŽ»çšãã¹ã¿ãŒ | 鱿¬¡ã¬ãã¥ãŒå®è¡ | ãã¿ãŒã³åæéå§ |
| 3ã¶æ | å°éç¥èäœç³»å | åéå¥é²æå¯èŠå | æŠç¥ç掻çšéå§ |
| 6ã¶æ | ç¥èãããã¯ãŒã¯æ§ç¯ | åµé çæŽå¯çºèŠ | 飿³åŠç¿å®çŸ |
| 1幎 | 10xçç£æ§éæ | 質åå質åçæ¹å | å®å šæé©åéæ |
ð ããã§çã®ç¥èè€å©ã·ã¹ãã ã皌åããŸãïŒ
MCPãµãŒããŒã䜿ããã¢ããªããã®ãèšé²ããŠãã³ãã³ãã§èªåä¿åã5段éã®ããŒã¿æŽ»çšæŠç¥ã§èç©ãããç¥èãææ°é¢æ°çã«äŸ¡å€ãçã¿åºããŸãã
æ¯åã®äŒè©±ãæªæ¥ã®æŽå¯å質ãåäžãããæ°žç¶çãªãµã€ã¯ã«ã確ç«ãããŠããŸããç¥ççç£æ§ã®é©åœçåäžãäœéšããŠãã ããã