പ്രധാന ഉള്ളടക്കത്തിലേക്ക് കടക്കുക
PYDANTIC AI ഇന്റഗ്രേഷൻ

Pydantic AI പേയ്മെന്റ് സംയോജനം.

Pydantic AI പാക്കേജ് ഇല്ല, നിങ്ങൾക്ക് ഒന്നും ആവശ്യമില്ല. @agent.tool_plain-ൽ ഒരു ടൈപ്പ് ചെയ്ത ഫംഗ്ഷൻ രജിസ്റ്റർ ചെയ്യുക, യഥാർത്ഥ blockchain0x ക്ലയന്റിനെ വിളിക്കുക, നിങ്ങളുടെ ഏജന്റ് Base-ൽ USDC നീക്കാൻ കഴിയും.

ചുരുക്കം ഉത്തരം

Pydantic AI-യ്ക്ക് പ്രത്യേക package ഒന്നുമില്ല, അതിനാൽ നിങ്ങൾക്ക് അതിന്റെ ആവശ്യമില്ല. Pydantic AI ഉപയോഗിച്ച് ഒരു function-നെ validated tool ആക്കുന്നതിനാൽ, real Python client-നെ ഒരു typed function-ൽ wrap ചെയ്യുക, അതിലൂടെ agent-ന് USDC അയക്കാനും, invoices settle ചെയ്യാനും, wallets വായിക്കാനും കഴിയും. ഇത് OpenAI, Anthropic, Google, Mistral, Groq, കൂടാതെ മറ്റു എല്ലാ Pydantic AI provider-കളിലുമായി പ്രവർത്തിക്കുന്നു, കാരണം tool model അല്ല, HTTP API-യെ ആണ് വിളിക്കുന്നത്. Payments Base-ൽ settle ചെയ്യും.

TYPED PAYMENT TOOLS ന്റെ കാരണം

Pydantic AI-യുടെ ടൈപ്പിംഗ് വിജയിക്കുന്നു. പേമന്റുകൾക്കായി ഇത് ഉപയോഗിക്കുക.

Pydantic AI-യുടെ മുഴുവൻ ലക്ഷ്യം ശക്തമായ ടൈപ്പിംഗാണ്: ഏജന്റ് ഇൻപുട്ടുകൾ ടൈപ്പുചെയ്യുന്നു, ഔട്ട്പുട്ടുകൾ ടൈപ്പുചെയ്യുന്നു, ആശ്രിതങ്ങൾ ടൈപ്പുചെയ്യുന്നു, റിട്രൈകൾ ടൈപ്പുചെയ്യുന്നു. ഫ്രെയിംവർക്കുകൾ LLM വിളിയിൽ ഇത് പ്രചരിക്കാൻ അനുവദിക്കാതെ അതിന്റെ അതിർത്തിയിൽ തെറ്റായ ഡാറ്റ തള്ളുന്നു. നിങ്ങളുടെ വാലറ്റ് ഉപകരണം അതിൽ കയറുന്നു - ആർഗ്യുമെന്റുകൾ ടൈപ്പുകളോടെ പ്രഖ്യാപിക്കുക, Pydantic AI മോഡൽ വിളിക്കാൻ അനുവദിക്കപ്പെടുന്നതിന് മുമ്പ് സിഗ്നേച്ചർ, ഡോക്‌സ്റ്റ്രിംഗ് എന്നിവയിൽ നിന്ന് ഒരു സാധൂകരിച്ച സ്കീമ നിർമ്മിക്കുന്നു.

പ്രായോഗിക നേട്ടം ഇതാണ്: model send_usdc-നെ base-unit string-ിനു പകരം float ഉപയോഗിച്ച് വിളിക്കാൻ ശ്രമിച്ചാൽ, ഞങ്ങളിലേക്കുള്ള ഏതൊരു HTTP call-ിനും മുമ്പേ failure Pydantic-ന്റെ validation layer-ൽ തന്നെ സംഭവിക്കും. API-യിൽ നിന്നുള്ള cryptic field paths ഉള്ള 422-ന് പകരം, ഉപയോഗപ്രദമായ message-ോടുകൂടിയ വ്യക്തമായ ValidationError നിങ്ങൾക്ക് കാണാം. generic adapter-നായി പോകുന്നതിന് പകരം client സ്വയം wrap ചെയ്യാനുള്ള മുഴുവൻ കാരണം ഇതാണ് - typing wire വരെ നിലനിർത്താൻ കഴിയും.

സ്ഥാപനം

Pydantic AI ഇൻസ്റ്റാൾ ചെയ്യുക, കൂടാതെ കോർ SDK. രണ്ട് കീകൾ.

ചേർക്കാൻ blockchain0x Pydantic AI പാക്കേജ് ഇല്ല. നിങ്ങൾ Pydantic AI (Python 3.10+) ഇൻസ്റ്റാൾ ചെയ്യുന്നു, യഥാർത്ഥ blockchain0x കോർ SDK, പിന്നെ താഴെ ഫംഗ്ഷൻ എഴുതുന്നു. അത് മുഴുവൻ ആശ്രിതങ്ങളുടെ പട്ടികയാണ്.

ഇൻസ്റ്റാൾ ചെയ്യുക
pip install pydantic-ai blockchain0x
പരിസ്ഥിതി മാറ്റങ്ങൾ
export OPENAI_API_KEY=sk-...
export BLOCKCHAIN0X_API_KEY=sk_test_...   # sk_test_ = Base Sepolia, sk_live_ = Base mainnet

OPENAI_API_KEY (അല്ലെങ്കിൽ നിങ്ങൾ ഉപയോഗിക്കുന്ന ഏത് provider-ിന്റെയും സമാനമായത്). BLOCKCHAIN0X_API_KEY നിങ്ങളുടെ dashboard-ലുള്ള sk_test_ testnet അല്ലെങ്കിൽ sk_live_ mainnet കീ ആണ്; client അതിനെ environment-ൽ നിന്ന് വായിക്കുന്നു. നിങ്ങളുടെ agent-ിന് money സ്വീകരിക്കാനുമുണ്ടെങ്കിൽ, webhook handler-ിന് കൂടാതെ BLOCKCHAIN0X_WEBHOOK_SECRET ആവശ്യമാണ്.

രുചികരമായ വിഭവം

ഒരു ടൈപ്പ് ചെയ്ത ഫംഗ്ഷൻ, ഉപകരണമായി രജിസ്റ്റർ ചെയ്യുന്നു.

താഴെ മുഴുവൻ സംയോജനം ആണ്. send_usdc യഥാർത്ഥ blockchain0x ക്ലയന്റ് വിളിക്കുന്നു; @agent.tool_plain ഇത് തരം സൂചനകൾ, ഡോക്സ്ട്രിംഗ് എന്നിവയിൽ നിന്നുള്ള സ്കീമയുമായി രജിസ്റ്റർ ചെയ്യുന്നു. ഇത് പ്രവർത്തിപ്പിക്കുക, ഏജന്റ് Base-ൽ USDC കൈമാറുന്നു, വിളിക്കുന്നതിന് മുമ്പ് വാദങ്ങൾ സ്ഥിരീകരിക്കപ്പെടുന്നു.

AGENT.PY
from pydantic_ai import Agent
from blockchain0x import Client

blockchain0x = Client()  # reads BLOCKCHAIN0X_API_KEY from the environment

agent = Agent(
    "openai:gpt-4o",
    system_prompt="You pay vendor invoices in USDC within owner-set limits.",
)

# Register a plain function as a tool. No dedicated package needed.
@agent.tool_plain
def send_usdc(agent_id: str, to: str, amount_wei: str) -> str:
    """Send a USDC payment from an agent wallet.

    amount_wei is USDC base units (6 decimals), so "10000" is 0.01 USDC.
    """
    return str(
        blockchain0x.payments.create(body={"agentId": agent_id, "to": to, "amountWei": amount_wei})
    )

result = agent.run_sync(
    "Pay 0.01 USDC from agent agt_123 to 0xVendor for the dataset."
)
print(result.output)

When the agent decides to pay, it calls send_usdc, the SDK submits the transfer, and you get a transaction hash back. amount_wei is base units, so 0.01 USDC is "10000". A sk_test_ key keeps it on Base Sepolia until you switch to sk_live_. Want a typed result object instead of a string? Set the agent's output_type to your own Pydantic model and return it from the tool. Add read and settle functions the same way.

വെബ്‌ഹുക്ക് കൈകാര്യം ചെയ്യൽ

ഒരു ഒപ്പിട്ട വെബ് ഹുക്ക് ഉപയോഗിച്ച് വരവേൽപ്പു പണമടച്ചുകൾ സ്ഥിരീകരിക്കുക.

നിങ്ങളുടെ ഏജന്റ് USDC സ്വീകരിക്കുന്നുവെങ്കിൽ, polling വഴി അല്ലാതെ വെബ്‌ഹുക്ക് ഉപയോഗിച്ച് ഇത് സ്ഥിരീകരിക്കുക. verify സഹായി Node SDK-യിൽ എത്തിക്കുന്നു; ഒരു Python സേവനത്തിൽ, രേഖപ്പെടുത്തിയ HMAC-ന് എതിരായും നിങ്ങൾ കൈകൊണ്ടു സ്ഥിരീകരിക്കുന്നു. നിങ്ങൾ ടൈപ്ഡ് ഇവന്റുകൾ ആഗ്രഹിക്കുന്നുവെങ്കിൽ, നിങ്ങളുടെ സ്വന്തം Pydantic മോഡൽ നിർവചിക്കുക, ഒപ്പിടൽ പരിശോധിച്ചതിന് ശേഷം കച്ചവട ബോഡി model_validate_json ചെയ്യുക - ടൈപ്പിംഗ് നിങ്ങൾ ചേർക്കേണ്ടതാണ്. താഴെയുള്ള FastAPI ഉദാഹരണം.

WEBHOOK.PY
import hmac, hashlib, os, time
from fastapi import FastAPI, Request, HTTPException

app = FastAPI()
SECRET = os.environ["BLOCKCHAIN0X_WEBHOOK_SECRET"].encode()

@app.post("/webhooks/payment")
async def receive(request: Request):
    raw = await request.body()  # RAW bytes - do not parse first
    sig = request.headers.get("X-Blockchain0x-Signature", "")
    ts = request.headers.get("X-Blockchain0x-Timestamp", "")
    parts = dict(p.split("=", 1) for p in sig.split(",") if "=" in p)
    t, v1 = parts.get("t", ts), parts.get("v1", sig)
    want = hmac.new(SECRET, t.encode() + b"." + raw, hashlib.sha256).hexdigest()
    if not hmac.compare_digest(want, v1) or abs(time.time() - int(t)) > 300:
        raise HTTPException(status_code=401)
    if request.headers.get("X-Blockchain0x-Event-Type") == "payment.received":
        await trigger_followup()  # USDC landed - run the next step
    return {"ok": True}

അൽഗോറിതം t.rawBody എന്ന വരിയിൽ HMAC-SHA256 ആണ്, സ്ഥിരമായ സമയത്ത് താരതമ്യം ചെയ്യുന്നു, 300-സെക്കൻഡ് പുനരാവൃത്തി വിൻഡോ. ഒപ്പുവെച്ചതിന്റെ അക്ഷരരൂപം നിലനിർത്താൻ await request.body() വഴി കച്ചവട ബോഡി വായിക്കുക, request.json() വീണ്ടും സീരിയലൈസ് ചെയ്യരുത്, കാരണം അത് ഒപ്പുവെച്ചതിന്റെ പരിധിയിൽ വരുന്ന ബൈറ്റുകൾ മാറ്റുന്നു. അയച്ച ഇവന്റുകൾ payment.received, payment.sent, wallet.deployed, webhook.test എന്നിവയാണ്; ബ്രാഞ്ച് ചെയ്യാൻ X-Blockchain0x-Event-Type ഹെഡറിൽ നാരോ ചെയ്യുക.

SOURCE AND DOCS

നിങ്ങൾ വ്രാപ്പ് ചെയ്യുന്ന ക്ലയന്റ് തുറന്നതാണ്. അത് വായിക്കുക.

clone ചെയ്യാൻ വേറെ Pydantic AI starter package ഇല്ല - മുകളിലെ recipe തന്നെയാണ് integration. blockchain0x SDKs GitHub-ൽ open source ആണ്; ഈ recipe Python SDK (blockchain0x-python) wrap ചെയ്യുന്നു, പൂർണ്ണമായ method surface docs-ൽ ഉണ്ട്. function bodies-ക്കുള്ള reference ആയി അത് വായിക്കുക.

github.com/tosh-labs/blockchain0x-python

പൂർണ്ണമായ SDK method surface ഉം scopes ഉം the docs ൽ രേഖപ്പെടുത്തിയിരിക്കുന്നു. Base Sepolia-യിൽ sk_test_ key ഉപയോഗിച്ച് ആരംഭിക്കുക, തുടർന്ന് function നിങ്ങൾ പ്രതീക്ഷിക്കുന്നതു പോലെ പ്രവർത്തിക്കുമ്പോൾ sk_live_ ആയി മാറുക.

സാധാരണ പിഴവുകൾ

എടുപ്പിക്കേണ്ട അഞ്ചു Pydantic AI-നിഷ്‌ഠമായ തട്ടിപ്പുകൾ.

Pydantic AI-യുടെ ശക്തമായ ടൈപ്പിംഗ് അതിന്റെ അതിർത്തിയിൽ കൂടുതലായും സംയോജനം പിശകുകൾ പിടികൂടുന്നു; ഇവയാണ് കുറച്ച് കടന്നുപോകുന്നത്.

PITFALL 1

Pydantic AI പാക്കേജ് ഇല്ല - നിങ്ങൾ ഒരു ഉപകരണം രജിസ്റ്റർ ചെയ്യുന്നു

Blockchain0x LangChain, CrewAI, MCP സെർവറിന് അഡാപ്റ്ററുകൾ അയക്കുന്നു; പ്രത്യേക Pydantic AI പാക്കേജ് ഇല്ല. മുകളിൽ നൽകിയ റെസിപ്പി വഴി: യഥാർത്ഥ blockchain0x ക്ലയന്റ് വിളിക്കുന്ന @agent.tool_plain-ൽ അലങ്കരിച്ച ഒരു സാധാരണ typed ഫംഗ്ഷൻ. Pydantic AI സിഗ്നേച്ചർ, ഡോക്സ്ട്രിംഗ് എന്നിവ വായിച്ച് ഒരു സ്ഥിരീകരിച്ച ഉപകരണം സ്കീമ നിർമ്മിക്കുന്നു, ഇത് നിങ്ങൾ Pydantic AI-യ്ക്ക് വന്നതിന്റെ തരം വിജയമാണ്.

PITFALL 2

തുക ഒരു സ്ട്രിംഗായി സൂക്ഷിക്കുക; Pydantic വരി പിടിക്കാൻ അനുവദിക്കുക

payments.create takes amountWei: a string of USDC base units (6 decimals), so 0.01 USDC is "10000" and 5 USDC is "5000000". Type the tool argument as str and Pydantic AI rejects a float at the boundary with a clear ValidationError, before any HTTP call. That is the whole point of doing this in Pydantic AI - the malformed value never reaches the API.

PITFALL 3

send_payment തുടക്കത്തിൽ 503 മറുപടി നൽകാം

payments.create ഡിഫോൾട്ടായി വീണ്ടും ശ്രമിക്കില്ല, കൂടാതെ നിങ്ങളുടെ network-നായി chain adapter ബന്ധിപ്പിക്കുന്നതുവരെ 503 തിരികെ നൽകാം. agent loop ചെയ്യാൻ വിടാതെ, നിങ്ങളുടെ tool-ൽ തന്നെ error പിടിച്ച് model പ്രവർത്തിക്കാനാവുന്ന വ്യക്തമായ സന്ദേശം മടക്കുക. സ്വയമേവ സൃഷ്ടിച്ച idempotency key ഉള്ളതിനാൽ മാനുവൽ retry double-pay ഉണ്ടാക്കില്ല.

PITFALL 4

പ്രവൈഡർ-പ്രിഫിക്സ് മോഡൽ സ്ട്രിംഗുകൾ

Pydantic AI പ്രൈവിഡർ-പ്രിഫിക്സ് മോഡൽ സ്ട്രിംഗുകൾ ഉപയോഗിക്കുന്നു: 'openai:gpt-4o', 'anthropic:claude-3-5-sonnet-latest', 'google-gla:gemini-1.5-pro'. പ്രിഫിക്സ് ഒഴിവാക്കുന്നത് ഒരു രഹസ്യമായ 'അറിയാത്ത മോഡൽ' പിഴവ് നൽകുന്നു. നിങ്ങളുടെ ഉപകരണം പ്രൊവൈഡർ-അഗ്നോസ്റ്റിക് ആണ്, കാരണം അത് HTTP API-നെ വിളിക്കുന്നു, മോഡൽ അല്ല - പ്രിഫിക്സ് സ്വതന്ത്രമായി മാറ്റുക, വാലറ്റ് ഫംഗ്ഷൻ മാറ്റമില്ല.

PITFALL 5

tool_plain vs tool (RunContext)

ഫംഗ്ഷൻ റണ്ണിൽ നിന്ന് ഒന്നും ആവശ്യമില്ലെങ്കിൽ @agent.tool_plain ഉപയോഗിക്കുക, മുകളിൽ പറഞ്ഞതുപോലെ. നിങ്ങൾക്ക് ടൂളിൽ ഏജന്റിന്റെ ആശ്രിതങ്ങൾ (ഒരു അപേക്ഷയിലേക്കുള്ള ക്ലയന്റ് ഐഡി, ഒരു ചെലവ് കപ്പ്) ഉൾപ്പെടുത്തണമെന്ന് ആഗ്രഹിച്ചാൽ, @agent.tool ഉപയോഗിക്കുക, ctx.deps വായിക്കാൻ ctx: RunContext[Deps] എന്ന ആദ്യ വാദം പ്രഖ്യാപിക്കുക. രണ്ടിനെല്ലാം മിശ്രിതമാക്കുന്നത് - tool_plain-ൽ ctx വാദം പ്രഖ്യാപിക്കുന്നത് - രജിസ്ട്രേഷനിൽ TypeError ഉയർത്തുന്നു.

അവലംബമായി ചോദിച്ച

മൂന്ന് Pydantic AI-നിർദ്ദിഷ്ട ചോദ്യങ്ങൾ.

ഇൻസ്റ്റാൾ ചെയ്യാൻ ഒരു സമർപ്പിത Pydantic AI പാക്കേജ് ഉണ്ടോ?

ഇല്ല. Pydantic AI ഇതിനകം @agent.tool_plain (അല്ലെങ്കിൽ @agent.tool for context-aware tools) ഉപയോഗിച്ച് ഒരു ഫംഗ്ഷനെ ഒരു സ്ഥിരീകരിത ഉപകരണത്തിലേക്ക് മാറ്റുന്നു, അതിനാൽ സത്യസന്ധമായ പാത യഥാർത്ഥ blockchain0x ക്ലയന്റിനെ നിങ്ങൾ തന്നെ മൂടുക എന്നതാണ്, മുകളിൽ കാണിച്ചിരിക്കുന്നതുപോലെ. അയച്ചിട്ടുള്ള ഏക ഫ്രെയിംവർക്ക് പാക്കേജുകൾ blockchain0x-langchain, blockchain0x-crewai (രണ്ട് Python) കൂടാതെ @blockchain0x/mcp സെർവറാണ്. Pydantic AI, സമർപ്പിത അഡാപ്റ്റർ ഇല്ലാത്ത മറ്റ് ഫ്രെയിംവർക്ക് പോലെയാണ്, ഈ കുറച്ച് വരികളിലെ റെസിപ്പിയാണ്.

ഇത് LLM പ്രൊവൈഡർമാർ (OpenAI, Anthropic, Google) തമ്മിൽ പ്രവർത്തിക്കുന്നുണ്ടോ?

അതെ. ഉപകരണം പ്രൊവൈഡർ-അഗ്നോസ്റ്റിക് ആണ് - ഇത് Blockchain0x HTTP API-യെ വിളിക്കുന്നു, LLM-നിർദ്ദിഷ്ടമായ ഉപരിതലങ്ങളെല്ലാം അല്ല. Pydantic AI പ്രൊവൈഡറെ പിന്തുണയ്ക്കുന്നത്ര (OpenAI, Anthropic, Google GLA, Google VertexAI, Groq, Cohere, Mistral, Bedrock), അതേ ഫംഗ്ഷൻ പ്രവർത്തിക്കുന്നു. ഏജന്റ് കൺസ്ട്രക്ടറിൽ മോഡൽ സ്ട്രിംഗ് മാറ്റുക: 'anthropic:claude-3-5-sonnet-latest' 'openai:gpt-4o' എന്നതിന് പകരം.

എനിക്ക് ടൈപ്ഡ് ഇൻപുട്ടുകൾ എങ്ങനെ ചേർക്കാം, അല്ലെങ്കിൽ വായിക്കാനും പരിഹരിക്കാനും അയയ്ക്കാനും?

കൂടുതൽ കർശനമായ inputs-ന്, tool argument ആയി ഒരു Pydantic model എടുക്കുക, Pydantic AI അത് നിങ്ങൾക്കായി validate ചെയ്യും - constrained decimals, address patterns, നിങ്ങൾക്ക് ആവശ്യമുള്ളത് എന്തുമാകാം. വായിക്കാനും settle ചെയ്യാനും, അതേ രീതിയിൽ കൂടുതൽ functions register ചെയ്യുക: blockchain0x.transactions.get ഒരു transaction വായിക്കുന്നു, blockchain0x.agents.get, blockchain0x.agents.list wallets വായിക്കുന്നു, കൂടാതെ blockchain0x.payment_requests.settle dashboard-ൽ നിങ്ങൾ സൃഷ്ടിച്ച invoice on-chain proof ഉപയോഗിച്ച് settle ചെയ്യുന്നു. inbound payments താഴെയുള്ള payment.received webhook വഴി സ്ഥിരീകരിക്കുന്നു.

നിങ്ങളുടെ ഏജന്റിന് ടൈപ്പ് ചെയ്ത പണമടയ്ക്കലുകൾ ചേർക്കുക.

യഥാർത്ഥ ക്ലയന്റിനെ ചുറ്റുന്ന ചില ടൈപ്പ് ചെയ്ത വരികൾ, ഇൻസ്റ്റാൾ ചെയ്യാനുള്ള പാക്കേജ് ഇല്ല. ആരംഭിക്കാൻ സൗജന്യമാണ്.