Vậy thì, bạn không thể bỏ lỡ Anakin AI!
Anakin AI là một nền tảng tất cả trong một cho tự động hóa quy trình làm việc của bạn, tạo ứng dụng AI mạnh mẽ với trình tạo ứng dụng không cần mã dễ sử dụng, với Deepseek, o3-mini-high của OpenAI, Claude 3.7 Sonnet, FLUX, Minimax Video, Hunyuan...
Xây dựng ứng dụng AI mơ ước của bạn trong vòng vài phút, không phải vài tuần với Anakin AI!

Giới thiệu
Dolphin-MCP là một triển khai mã nguồn mở mở rộng Giao thức Ngữ cảnh Mô hình (MCP) của Anthropic để làm việc với các mô hình ngôn ngữ khác nhau ngoài Claude. Hướng dẫn kỹ thuật này sẽ hướng dẫn bạn cách thiết lập và sử dụng Dolphin-MCP đặc biệt với API của OpenAI, cho phép bạn tận dụng các mô hình GPT thông qua kiến trúc MCP.
Tổng quan kỹ thuật
Dolphin-MCP hoạt động như một lớp dịch giữa thông số kỹ thuật MCP và các API LLM khác nhau. Đối với tích hợp OpenAI, nó:
- Chuyển đổi thông điệp giao thức MCP sang định dạng API của OpenAI
- Xử lý sự khác biệt về ánh xạ token giữa các mô hình
- Quản lý trạng thái và lịch sử cuộc trò chuyện
- Cung cấp khả năng thực thi công cụ theo cách không phụ thuộc vào mô hình
Yêu cầu trước
Trước khi bắt đầu, hãy đảm bảo bạn đã có:
- Python 3.8+
- pip (trình quản lý gói)
- Khóa API của OpenAI
- Cài đặt Git
- Hiểu biết cơ bản về LLM và các khái niệm API
Các bước cài đặt
# Nhân bản kho lưu trữ Dolphin-MCP
git clone https://github.com/cognitivecomputations/dolphin-mcp.git
cd dolphin-mcp
# Tạo môi trường ảo
python -m venv venv
source venv/bin/activate # Trên Windows: venv\Scripts\activate
# Cài đặt các phụ thuộc
pip install -r requirements.txt
# Cài đặt gói ở chế độ phát triển
pip install -e .
Cấu hình
1. Thiết lập Biến Môi trường
Tạo một tệp .env
trong thư mục gốc của dự án của bạn:
OPENAI_API_KEY=sk-your-openai-api-key-here
MCP_MODEL=gpt-4-0125-preview
MCP_PROVIDER=openai
2. Tạo Tệp Cấu hình
Tạo một tệp 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
}
}
Ví dụ Sử dụng Cơ bản
Ví dụ 1: Cuộc trò chuyện đơn giản
from dolphin_mcp import DolphinMCP
# Khởi tạo client
mcp_client = DolphinMCP.from_config("./config.json")
# Tạo một cuộc trò chuyện
conversation = mcp_client.create_conversation()
# Thêm một thông điệp hệ thống
conversation.add_system_message("Bạn là một trợ lý AI hữu ích chuyên về lập trình Python.")
# Gửi một thông điệp người dùng và nhận phản hồi
response = conversation.add_user_message("Làm thế nào để tôi triển khai một cây tìm kiếm nhị phân trong Python?")
# In phản hồi
print(response.content)
Ví dụ 2: Sử dụng Công cụ với OpenAI
from dolphin_mcp import DolphinMCP
from dolphin_mcp.tools import WebSearchTool, CodeExecutionTool
# Khởi tạo client với các công cụ
mcp_client = DolphinMCP.from_config("./config.json")
# Đăng ký các công cụ
mcp_client.register_tool(WebSearchTool(api_key="your-search-api-key"))
mcp_client.register_tool(CodeExecutionTool())
# Tạo cuộc trò chuyện với các công cụ được kích hoạt
conversation = mcp_client.create_conversation()
# Thêm hướng dẫn hệ thống cho các công cụ
conversation.add_system_message("""
Bạn là một trợ lý AI có quyền truy cập vào các công cụ sau:
- web_search: Tìm kiếm thông tin hiện tại trên internet
- code_execution: Thực thi mã Python một cách an toàn trong một môi trường cách ly
Sử dụng những công cụ này khi cần thiết để cung cấp phản hồi chính xác và hữu ích.
""")
# Truy vấn của người dùng yêu cầu các công cụ
response = conversation.add_user_message(
"Thời tiết hiện tại ở New York là gì? Ngoài ra, bạn có thể cho tôi xem cách tính giai thừa của một số trong Python không?"
)
# Phản hồi sẽ bao gồm công cụ sử dụng tự động
print(response.content)
print("\nKết quả công cụ:")
for tool_name, tool_result in response.tool_results.items():
print(f"{tool_name}: {tool_result}")
Cấu hình Nâng cao
Sử dụng Các Điểm cuối Tương thích với OpenAI
Nếu bạn muốn sử dụng các điểm cuối tương thích với OpenAI khác (như Azure OpenAI hoặc các mô hình tự lưu trữ), hãy chỉnh sửa cấu hình của bạn:
{
"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", // Đối với Azure
"api_type": "azure" // Đối với Azure
}
}
Triển khai Các Công cụ Tùy chỉnh
Dolphin-MCP cho phép bạn tạo các công cụ tùy chỉnh cho các mô hình OpenAI. Dưới đây là cách triển khai một công cụ máy tính tùy chỉnh:
from dolphin_mcp.tools import BaseTool
import math
class CalculatorTool(BaseTool):
name = "calculator"
description = "Thực hiện các phép toán toán học"
async def execute(self, expression: str):
try:
# Tạo môi trường an toàn với các hàm toán học hạn chế
safe_env = {
"sqrt": math.sqrt,
"sin": math.sin,
"cos": math.cos,
"tan": math.tan,
"pi": math.pi,
"e": math.e
}
# Đánh giá biểu thức trong môi trường an toàn
result = eval(expression, {"__builtins__": {}}, safe_env)
return str(result)
except Exception as e:
return f"Lỗi trong phép toán: {str(e)}"
@property
def parameters(self):
return {
"type": "object",
"properties": {
"expression": {
"type": "string",
"description": "Biểu thức toán học cần đánh giá"
}
},
"required": ["expression"]
}
# Ví dụ sử dụng
mcp_client = DolphinMCP.from_config("./config.json")
mcp_client.register_tool(CalculatorTool())
Xử lý Phản hồi Streaming
Đối với các ứng dụng yêu cầu phản hồi theo thời gian thực:
async def stream_response():
mcp_client = DolphinMCP.from_config("./config.json")
conversation = mcp_client.create_conversation()
# Thiết lập cuộc trò chuyện
conversation.add_system_message("Bạn là một trợ lý AI hữu ích.")
# Phát phản hồi
async for chunk in conversation.add_user_message_streaming(
"Giải thích tính toán lượng tử bằng các thuật ngữ đơn giản."
):
if chunk.type == "content":
print(chunk.content, end="", flush=True)
elif chunk.type == "tool_start":
print(f"\n[Bắt đầu sử dụng công cụ: {chunk.tool_name}]")
elif chunk.type == "tool_result":
print(f"\n[Kết quả công cụ từ {chunk.tool_name}]: {chunk.result}")
elif chunk.type == "error":
print(f"\nLỗi: {chunk.error}")
print("\nPhản hồi hoàn tất.")
# Chạy hàm async
import asyncio
asyncio.run(stream_response())
Xử lý Lỗi
Triển khai xử lý lỗi mạnh mẽ để quản lý các vấn đề 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("Tạo một phản hồi phức tạp")
except MCPTimeoutError:
print("Yêu cầu đã vượt quá thời gian. Kiểm tra kết nối mạng của bạn hoặc tăng giá trị thời gian chờ.")
except MCPAPIError as e:
print(f"Lỗi API: {e.status_code} - {e.message}")
if e.status_code == 429:
print("Đã vượt quá giới hạn tỷ lệ. Triển khai lại theo cấp số nhân.")
except MCPConfigError as e:
print(f"Lỗi cấu hình: {e}")
except Exception as e:
print(f"Lỗi không mong đợi: {e}")
Tối ưu hóa Hiệu suất
Đối với môi trường sản xuất, hãy xem xét những tối ưu hóa này:
# Tái sử dụng phiên để quản lý kết nối
from dolphin_mcp import DolphinMCP
import aiohttp
async def optimized_mcp_usage():
# Tạo một phiên chia sẻ để quản lý kết nối
async with aiohttp.ClientSession() as session:
mcp_client = DolphinMCP.from_config(
"./config.json",
session=session,
request_timeout=60,
connection_pool_size=10
)
# Xử lý nhiều cuộc trò chuyện một cách hiệu quả
tasks = []
for i in range(5):
conversation = mcp_client.create_conversation()
conversation.add_system_message("Bạn là một trợ lý hữu ích.")
tasks.append(conversation.add_user_message_async(f"Câu hỏi {i}: Machine learning là gì?"))
# Thu thập tất cả phản hồi
responses = await asyncio.gather(*tasks)
for i, response in enumerate(responses):
print(f"Phản hồi {i}: {response.content[:100]}...")
Tích hợp với Ứng dụng Web
Ví dụ tích hợp 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")
# Lấy lại hoặc tạo cuộc trò chuyện
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("Bạn là một trợ lý AI hữu ích.")
# Xử lý thông điệp
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)
Khắc phục sự cố Các vấn đề Thường gặp
Vấn đề | Giải pháp |
---|---|
Lỗi "Khóa API không hợp lệ" | Xác minh rằng khóa API OpenAI của bạn là chính xác và có đủ quyền hạn |
Giới hạn tỷ lệ | Triển khai lại theo cấp số nhân và throttling yêu cầu |
Lỗi thời gian chờ | Tăng thời gian chờ trong cấu hình hoặc kiểm tra kết nối mạng |
Mô hình không được tìm thấy | Xác minh tên mô hình có tồn tại trong các mô hình có sẵn của OpenAI không |
Vượt quá giới hạn token | Phân chia các yêu cầu thành các phần nhỏ hơn hoặc sử dụng streaming |
Kết luận
Dolphin-MCP cung cấp một cách linh hoạt, mã nguồn mở để sử dụng các mô hình OpenAI với giao thức MCP. Triển khai này giúp các nhà phát triển tránh bị ràng buộc với nhà cung cấp trong khi vẫn duy trì một giao diện nhất quán trên nhiều nhà cung cấp LLM khác nhau. Bằng cách làm theo các bước trong hướng dẫn này, bạn có thể tận dụng sức mạnh của các mô hình GPT thông qua kiến trúc MCP tiêu chuẩn hóa.
philschmid.de cho thấy các tích hợp tương tự với các LLM khác, và các công cụ như mcpadapt có thể giúp mở rộng khả năng của Dolphin-MCP hơn nữa.