그렇다면 Anakin AI를 놓칠 수 없습니다!
Anakin AI는 모든 워크플로우 자동화를 위한 올인원 플랫폼이며, 사용하기 쉬운 코드 없이 AI 앱 빌더로 강력한 AI 앱을 만들 수 있습니다. Deepseek, OpenAI의 o3-mini-high, Claude 3.7 Sonnet, FLUX, Minimax Video, Hunyuan 등을 통해 가능합니다...
Anakin AI를 사용하여 몇 분 안에 당신의 꿈의 AI 앱을 만드세요, 몇 주가 아니라!

소개
Dolphin-MCP는 Anthropic의 모델 컨텍스트 프로토콜(MCP)을 확장하는 오픈 소스 구현으로, Claude를 넘어 다양한 언어 모델과 함께 작동합니다. 이 기술 가이드는 OpenAI의 API와 함께 Dolphin-MCP를 설정하고 활용하는 방법을 안내합니다. 이를 통해 MCP 아키텍처를 통해 GPT 모델을 활용할 수 있습니다.
기술 개요
Dolphin-MCP는 MCP 사양과 다양한 LLM API 간의 변환 계층으로 작동합니다. OpenAI 통합을 위해:
- MCP 프로토콜 메시지를 OpenAI API 형식으로 변환합니다.
- 모델 간의 토큰 매핑 차이를 처리합니다.
- 대화 상태 및 이력을 관리합니다.
- 모델에 구애받지 않는 방식으로 도구 실행 기능을 제공합니다.
사전 요구사항
시작하기 전에 다음을 확인하세요:
- Python 3.8+
- pip (패키지 관리자)
- OpenAI API 키
- Git 설치됨
- LLM 및 API 개념에 대한 기본 이해
설치 단계
# Dolphin-MCP 리포지토리 클론
git clone https://github.com/cognitivecomputations/dolphin-mcp.git
cd dolphin-mcp
# 가상 환경 생성
python -m venv venv
source venv/bin/activate # Windows에서는: venv\Scripts\activate
# 의존성 설치
pip install -r requirements.txt
# 개발 모드에서 패키지 설치
pip install -e .
구성
1. 환경 변수 설정
프로젝트 루트에 .env
파일을 생성하세요:
OPENAI_API_KEY=sk-your-openai-api-key-here
MCP_MODEL=gpt-4-0125-preview
MCP_PROVIDER=openai
2. 구성 파일 생성
config.json
파일을 생성하세요:
{
"provider": "openai",
"model_settings": {
"model": "gpt-4-0125-preview",
"temperature": 0.7,
"max_tokens": 2048
},
"api_config": {
"api_key": "sk-your-openai-api-key-here",
"base_url": "https://api.openai.com/v1",
"timeout": 120
}
}
기본 사용 예제
예제 1: 간단한 대화
from dolphin_mcp import DolphinMCP
# 클라이언트 초기화
mcp_client = DolphinMCP.from_config("./config.json")
# 대화 생성
conversation = mcp_client.create_conversation()
# 시스템 메시지 추가
conversation.add_system_message("당신은 Python 프로그래밍에 전문화된 유용한 AI 어시스턴트입니다.")
# 사용자 메시지를 보내고 응답 받기
response = conversation.add_user_message("Python에서 이진 검색 트리를 구현하는 방법은 무엇인가요?")
# 응답 출력
print(response.content)
예제 2: OpenAI와 도구 사용하기
from dolphin_mcp import DolphinMCP
from dolphin_mcp.tools import WebSearchTool, CodeExecutionTool
# 도구와 함께 클라이언트 초기화
mcp_client = DolphinMCP.from_config("./config.json")
# 도구 등록
mcp_client.register_tool(WebSearchTool(api_key="your-search-api-key"))
mcp_client.register_tool(CodeExecutionTool())
# 도구가 활성화된 대화 생성
conversation = mcp_client.create_conversation()
# 도구에 대한 시스템 지침 추가
conversation.add_system_message("""
당신은 다음 도구에 접근할 수 있는 AI 어시스턴트입니다:
- web_search: 현재 정보를 검색하십시오
- code_execution: 샌드박스에서 안전하게 Python 코드를 실행하십시오
정확하고 유용한 응답을 제공하기 위해 이 도구를 적절히 사용하십시오.
""")
# 도구가 필요한 사용자 쿼리
response = conversation.add_user_message(
"뉴욕의 현재 날씨는 어떤가요? 또한 Python에서 숫자의 팩토리얼을 계산하는 방법을 보여줄 수 있나요?"
)
# 응답에는 도구 사용이 자동으로 포함됩니다.
print(response.content)
print("\n도구 실행 결과:")
for tool_name, tool_result in response.tool_results.items():
print(f"{tool_name}: {tool_result}")
고급 구성
OpenAI 호환 엔드포인트 사용하기
대체 OpenAI 호환 엔드포인트(예: Azure OpenAI 또는 자체 호스팅 모델)를 사용하려는 경우 구성을 수정하십시오:
{
"provider": "openai",
"model_settings": {
"model": "your-custom-model-deployment",
"temperature": 0.7,
"max_tokens": 2048
},
"api_config": {
"api_key": "your-api-key",
"base_url": "https://your-custom-endpoint.com/v1",
"api_version": "2023-07-01-preview", // Azure의 경우
"api_type": "azure" // Azure의 경우
}
}
사용자 정의 도구 구현
Dolphin-MCP는 OpenAI 모델에 대한 사용자 정의 도구를 생성할 수 있게 해줍니다. 사용자 정의 계산기 도구를 구현하는 방법은 다음과 같습니다:
from dolphin_mcp.tools import BaseTool
import math
class CalculatorTool(BaseTool):
name = "calculator"
description = "수학 계산 수행"
async def execute(self, expression: str):
try:
# 제한된 수학 함수로 안전한 환경 생성
safe_env = {
"sqrt": math.sqrt,
"sin": math.sin,
"cos": math.cos,
"tan": math.tan,
"pi": math.pi,
"e": math.e
}
# 안전한 환경에서 수식 평가
result = eval(expression, {"__builtins__": {}}, safe_env)
return str(result)
except Exception as e:
return f"계산 오류: {str(e)}"
@property
def parameters(self):
return {
"type": "object",
"properties": {
"expression": {
"type": "string",
"description": "평가할 수학 수식"
}
},
"required": ["expression"]
}
# 사용 예시
mcp_client = DolphinMCP.from_config("./config.json")
mcp_client.register_tool(CalculatorTool())
스트리밍 응답 처리
실시간 응답이 필요한 애플리케이션의 경우:
async def stream_response():
mcp_client = DolphinMCP.from_config("./config.json")
conversation = mcp_client.create_conversation()
# 대화 설정
conversation.add_system_message("당신은 유용한 AI 어시스턴트입니다.")
# 응답 스트리밍
async for chunk in conversation.add_user_message_streaming(
"양자 컴퓨팅을 간단히 설명해 주세요."
):
if chunk.type == "content":
print(chunk.content, end="", flush=True)
elif chunk.type == "tool_start":
print(f"\n[도구 사용 시작: {chunk.tool_name}]")
elif chunk.type == "tool_result":
print(f"\n[{chunk.tool_name}의 도구 결과]: {chunk.result}")
elif chunk.type == "error":
print(f"\n오류: {chunk.error}")
print("\n응답 완료.")
# 비동기 함수 실행
import asyncio
asyncio.run(stream_response())
오류 처리
API 문제를 관리하기 위해 강력한 오류 처리를 구현하십시오:
from dolphin_mcp.exceptions import MCPAPIError, MCPConfigError, MCPTimeoutError
try:
mcp_client = DolphinMCP.from_config("./config.json")
conversation = mcp_client.create_conversation()
response = conversation.add_user_message("복잡한 응답 생성")
except MCPTimeoutError:
print("요청 시간이 초과되었습니다. 네트워크 연결을 확인하거나 시간 초과 값을 늘리세요.")
except MCPAPIError as e:
print(f"API 오류: {e.status_code} - {e.message}")
if e.status_code == 429:
print("요청 한도 초과. 지수적으로 재시도하세요.")
except MCPConfigError as e:
print(f"구성 오류: {e}")
except Exception as e:
print(f"예기치 않은 오류: {e}")
성능 최적화
생산 환경에서 다음 최적화를 고려하십시오:
# 연결 풀을 위한 세션 재사용
from dolphin_mcp import DolphinMCP
import aiohttp
async def optimized_mcp_usage():
# 연결 풀을 위한 공유 세션 생성
async with aiohttp.ClientSession() as session:
mcp_client = DolphinMCP.from_config(
"./config.json",
session=session,
request_timeout=60,
connection_pool_size=10
)
# 여러 대화를 효율적으로 처리
tasks = []
for i in range(5):
conversation = mcp_client.create_conversation()
conversation.add_system_message("당신은 유용한 어시스턴트입니다.")
tasks.append(conversation.add_user_message_async(f"질문 {i}: 기계 학습이란 무엇인가요?"))
# 모든 응답 모으기
responses = await asyncio.gather(*tasks)
for i, response in enumerate(responses):
print(f"응답 {i}: {response.content[:100]}...")
웹 애플리케이션 통합
Flask 통합 예제:
from flask import Flask, request, jsonify
from dolphin_mcp import DolphinMCP
app = Flask(__name__)
mcp_client = DolphinMCP.from_config("./config.json")
@app.route("/chat", methods=["POST"])
def chat():
data = request.json
conversation_id = data.get("conversation_id")
message = data.get("message")
# 대화 검색 또는 생성
if conversation_id and conversation_id in active_conversations:
conversation = active_conversations[conversation_id]
else:
conversation = mcp_client.create_conversation()
conversation_id = conversation.id
active_conversations[conversation_id] = conversation
conversation.add_system_message("당신은 유용한 AI 어시스턴트입니다.")
# 메시지 처리
response = conversation.add_user_message(message)
return jsonify({
"conversation_id": conversation_id,
"response": response.content,
"tool_results": response.tool_results
})
if __name__ == "__main__":
active_conversations = {}
app.run(debug=True)
일반 문제 해결
문제 | 해결책 |
---|---|
"유효하지 않은 API 키" 오류 | OpenAI API 키가 올바른지 및 적절한 권한이 있는지 확인하십시오. |
요청 한도 초과 | 지수적으로 재시도 구현 및 요청 속도 조절 |
시간 초과 오류 | 구성에서 시간 초과를 늘리거나 네트워크 연결 확인 |
모델을 찾을 수 없음 | OpenAI의 사용 가능한 모델에서 모델 이름이 존재하는지 확인 |
토큰 한도 초과 | 요청을 더 작은 조각으로 나누거나 스트리밍 사용 |
결론
Dolphin-MCP는 OpenAI 모델을 MCP 프로토콜과 함께 사용할 수 있는 유연하고 오픈 소스 방법을 제공합니다. 이 구현은 개발자를 공급업체 종속성에서 해방시키면서도 다양한 LLM 제공업체 간에 일관된 인터페이스를 유지할 수 있게 해줍니다. 이 가이드의 단계를 따르면 당신은 표준화된 MCP 아키텍처를 통해 GPT 모델의 힘을 활용할 수 있습니다.
philschmid.de는 다른 LLM과 유사한 통합을 보여주며, mcpadapt와 같은 도구는 Dolphin-MCP의 기능을 더욱 확장하는 데 도움이 될 수 있습니다.