Расширение инструментария ИИ
Обзор
Extend AI Toolkit предоставляет реализацию инструментов на основе Python для интеграции с API Extend для нескольких фреймворков AI, включая Anthropic Model Context Protocol (MCP) , OpenAI , LangChain и CrewAI . Он позволяет пользователям делегировать определенные действия в потоке управления расходами агентам AI или MCP-совместимым клиентам, таким как Claude Desktop.
Эти инструменты предназначены для существующих пользователей Extend с ключами API. Если вы не зарегистрированы в Extend и хотите узнать больше о нашей современной, простой в использовании виртуальной карте и платформе управления расходами для малого и среднего бизнеса, вы можете проверить нас на paywithextend.com .
Related MCP server: Flutterwave MCP Server
Функции
Поддержка нескольких фреймворков ИИ : работает с протоколом контекста антропной модели, агентами OpenAI, LangChain LangGraph и ReAct, а также фреймворками CrewAI
Комплексный набор инструментов : поддерживает все основные функции API Extend, охватывающие наши конечные точки управления кредитными картами, виртуальными картами, транзакциями и расходами.
Установка
Вам не нужен этот исходный код, если вы не хотите изменить пакет. Если вы просто хотите использовать пакет, выполните:
pip install extend_ai_toolkitТребования
Python : версия 3.10 или выше
Продлить ключ API : зарегистрируйтесь на paywithextend.com , чтобы получить ключ API
Требования, специфичные для фреймворка :
LangChain: пакеты
langchainиlangchain-openaiOpenAI: пакет
openaiCrewAI: пакет
crewaiAnthropic: пакет
anthropic(для Клода)
Конфигурация
Библиотеку необходимо настроить с помощью ключа Extend API и API, используя переменные среды или аргументы командной строки:
--api-key=your_api_key_here --api-secret=your_api_secret_here или через переменные среды:
EXTEND_API_KEY=your_api_key_here
EXTEND_API_SECRET=your_api_secret_hereДоступные инструменты
Инструментарий предоставляет полный набор инструментов, организованных по функциональности:
Виртуальные карты
get_virtual_cards: Извлечение виртуальных карт с дополнительными фильтрамиget_virtual_card_detail: Получить подробную информацию о конкретной виртуальной карте
Кредитные карты
get_credit_cards: Список всех кредитных картget_credit_card_detail: Получить подробную информацию о конкретной кредитной карте
Транзакции
get_transactions: Извлечение транзакций с различными фильтрамиget_transaction_detail: Получить подробную информацию о конкретной транзакцииupdate_transaction_expense_data: обновление данных, связанных с расходами для транзакции
Управление расходами
get_expense_categories: Список всех категорий расходовget_expense_category: Получить сведения о конкретной категории расходовget_expense_category_labels: Получить метки для категории расходовcreate_expense_category: Создать новую категорию расходовcreate_expense_category_label: Добавить метку к категории расходовupdate_expense_category: Изменить существующую категорию расходовcreate_receipt_attachment: загрузить квитанцию (и при желании прикрепить к транзакции)automatch_receipts: Инициировать асинхронное задание для автоматического сопоставления загруженных квитанций с транзакциямиget_automatch_status: Получить статус задания автосоответствияsend_receipt_reminder: Отправить напоминание (по электронной почте) о транзакции, для которой отсутствует чек
Примеры использования
Модель контекстного протокола
Набор инструментов предоставляет ресурсы в пакете extend_ai_toolkit.modelcontextprotocol , которые помогут вам создать сервер MCP.
Разработка
Протестируйте сервер Extend MCP локально с помощью MCP Inspector:
npx @modelcontextprotocol/inspector python extend_ai_toolkit/modelcontextprotocol/main.py --tools=allИнтеграция рабочего стола Клода
Добавьте этот инструмент в качестве сервера MCP в Claude Desktop, отредактировав файл конфигурации:
В MacOS: ~/Library/Application\ Support/Claude/claude_desktop_config.json В Windows: %APPDATA%/Claude/claude_desktop_config.json
Если вы хотите использовать инструмент create_receipt_attachment с claude desktop, вам нужно будет установить сервер файловой системы mcp с помощью npm install @modelcontextprotocol/server-filesystem add, а затем добавить его в файл конфигурации.
Обратите внимание: из-за текущих ограничений изображения, загруженные непосредственно в Claude Desktop, не могут быть загружены в Extend из-за того, что приложение Claude Desktop не имеет доступа к базовым данным изображения. Вот почему необходим Filesystem MCP Server .
С добавлением Filesystem вы можете настроить специальную папку для чеков и сказать Claude загрузить чек и автоматически сопоставить его с наиболее вероятной транзакцией. В качестве альтернативы, если вы знаете транзакцию, к которой хотите прикрепить чек, вы можете сказать Claude загрузить чек для этой транзакции (и пропустить процесс автоматического сопоставления).
{
"extend-mcp": {
"command": "python",
"args": [
"-m",
"extend_ai_toolkit.modelcontextprotocol.main",
"--tools=all"
],
"env": {
"EXTEND_API_KEY": "apik_XXXX",
"EXTEND_API_SECRET": "XXXXX"
}
},
// optional: if you want to use the create_receipt_attachment tool
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/path/to/receipts/folder"
]
}
}Удаленное исполнение
Вы также можете запустить свой сервер удаленно и обмениваться данными через транспорт SSE:
python -m extend_ai_toolkit.modelcontextprotocol.main_sse --tools=all --api-key="apikey" --api-secret="apisecret"и при желании подключиться с помощью терминального клиента MCP:
python -m extend_ai_toolkit.modelcontextprotocol.client.mcp_client --mcp-server-host localhost --mcp-server-port 8000 --llm-provider=anthropic --llm-model=claude-3-5-sonnet-20241022OpenAI
import os
from langchain_openai import ChatOpenAI
from extend_ai_toolkit.openai.toolkit import ExtendOpenAIToolkit
from extend_ai_toolkit.shared import Configuration, Scope, Product, Actions
# Initialize the OpenAI toolkit
extend_openai_toolkit = ExtendOpenAIToolkit.default_instance(
api_key=os.environ.get("EXTEND_API_KEY"),
api_secret=os.environ.get("EXTEND_API_SECRET"),
configuration=Configuration(
scope=[
Scope(Product.VIRTUAL_CARDS, actions=Actions(read=True)),
Scope(Product.CREDIT_CARDS, actions=Actions(read=True)),
Scope(Product.TRANSACTIONS, actions=Actions(read=True)),
]
)
)
# Create an agent with the tools
extend_agent = Agent(
name="Extend Agent",
instructions="You are an expert at integrating with Extend",
tools=extend_openai_toolkit.get_tools()
)LangChain
import os
from langchain_openai import ChatOpenAI
from langgraph.prebuilt import create_react_agent
from extend_ai_toolkit.langchain.toolkit import ExtendLangChainToolkit
from extend_ai_toolkit.shared import Configuration, Scope, Product, Actions
# Initialize the LangChain toolkit
extend_langchain_toolkit = ExtendLangChainToolkit.default_instance(
api_key=os.environ.get("EXTEND_API_KEY"),
api_secret=os.environ.get("EXTEND_API_SECRET"),
configuration=Configuration(
scope=[
Scope(Product.VIRTUAL_CARDS, actions=Actions(read=True)),
Scope(Product.CREDIT_CARDS, actions=Actions(read=True)),
Scope(Product.TRANSACTIONS, actions=Actions(read=True)),
]
)
)
# Create tools for the agent
tools = extend_langchain_toolkit.get_tools()
# Create the agent executor
langgraph_agent_executor = create_react_agent(
ChatOpenAI(model="gpt-4"),
tools
)CrewAI
import os
from extend_ai_toolkit.crewai.toolkit import ExtendCrewAIToolkit
from extend_ai_toolkit.shared import Configuration, Scope, Product, Actions
# Initialize the CrewAI toolkit
toolkit = ExtendCrewAIToolkit.default_instance(
api_key=os.environ.get("EXTEND_API_KEY"),
api_secret=os.environ.get("EXTEND_API_SECRET"),
configuration=Configuration(
scope=[
Scope(Product.VIRTUAL_CARDS, actions=Actions(read=True)),
Scope(Product.CREDIT_CARDS, actions=Actions(read=True)),
Scope(Product.TRANSACTIONS, actions=Actions(read=True)),
]
)
)
# Configure the LLM (using Claude)
toolkit.configure_llm(
model="claude-3-opus-20240229",
api_key=os.environ.get("ANTHROPIC_API_KEY")
)
# Create the Extend agent
extend_agent = toolkit.create_agent(
role="Extend Integration Expert",
goal="Help users manage virtual cards, view credit cards, and check transactions efficiently",
backstory="You are an expert at integrating with Extend, with deep knowledge of virtual cards, credit cards, and transaction management.",
verbose=True
)
# Create a task for handling user queries
query_task = toolkit.create_task(
description="Process and respond to user queries about Extend services",
agent=extend_agent,
expected_output="A clear and helpful response addressing the user's query",
async_execution=True
)
# Create a crew with the agent and task
crew = toolkit.create_crew(
agents=[extend_agent],
tasks=[query_task],
verbose=True
)
# Run the crew
result = crew.kickoff()Внося вклад
Вклады приветствуются! Пожалуйста, не стесняйтесь отправлять запрос на включение.
Лицензия
Данный проект лицензирован по лицензии MIT — подробности см. в файле LICENSE.