
Створіть мультимодального штучного інтелектуального агента за допомогою GPU-Bridge (LLMs + зображення + аудіо)
https://ift.tt/05YHqSw
Створіть мультимодального АІ-агента за допомогою GPU-Bridge (LLMs + зображення + аудіо)
Мультимодальні АІ-агенти, які вміють бачити, чути, говорити та мислити, є одним із найцікавіших розвитку в області штучного інтелекту. У цьому туторіалі ми побудуємо один з нуля за допомогою GPU-Bridge.
До кінця ви отримаєте Python-агента, який:
- аналізує зображення за допомогою LLaVA-34B (візуальне Q&A)
- розшифровує аудіо за допомогою Whisper Large v3
- генерує відповідь за допомогою Llama 3.1 70B
- перетворює відповіду на мову за допомогою XTTS v2 клонування голосу
Усе працює на реальних графічних процесорах через API GPU-Bridge.
Передумови
pip install requests x402-client # x402-client optional
Отримайте ключ API на gpubridge.xyz.
Повний агент
import requests, base64, json
from pathlib import Path
API_KEY = "your_gpu_bridge_api_key"
BASE_URL = "https://api.gpubridge.xyz/v1"
headers = {"Authorization: f"Bearer {API_KEY}", "Content-Type: "application/json"}
def gpu_run(service: str, input_data: dict) -> dict:
resp = requests.post(f"{BASE_URL}/run", headers=headers,
json={"service: service, "input: input_data})
resp.raise_for_status()
return resp.json()
def analyze_image(image_path: str) -> str:
"""Use LLaVA 34B on RTX 4090 for visual Q&A."""
with open(image_path, "rb") as f:
img_b64 = base64.b64encode(f.read()).decode()
result = gpu_run("llava-4090", {
"image: img_b64,
"question: "Describe this image in detail",
"max_tokens": 500
})
return result["answer"]
def transcribe_audio(audio_path: str) -> str:
"""Use Whisper Large v3 on L4 GPU for transcription."""
with open(audio_path, "rb") as f:
audio_b64 = base64.b64encode(f.read()).decode()
result = gpu_run("whisper-l4", {"audio: audio_b64, "language: "auto"})
return result["text"]
def generate_response(image_desc: str, transcript: str) -> str:
"""Use Llama 3.1 70B on RTX 4090 to synthesize a response."""
result = gpu_run("llm-4090", {
"messages": [
{"role": "system", "content": "You are a helpful multi-modal AI assistant."},
{"role": "user", "content": f"Image: {image_desc}\n\nAudio: {transcript}\n\nProvide a helpful response."}
],
"max_tokens": 600
})
return result["choices"][0]["message"]["content"]
def text_to_speech(text: str, output_path: str = "response.wav",
voice_sample: str = None) -> str:
"""Use XTTS v2 on L4 GPU for voice synthesis (with optional voice cloning)."""
input_data = {"text: text, "language: "en"}
if voice_sample and Path(voice_sample).exists():
with open(voice_sample, "rb") as f:
input_data["voice_sample"] = base64.b64encode(f.read()).decode()
result = gpu_run("tts-l4", input_data)
audio_bytes = base64.b64decode(result["audio"])
with open(output_path, "wb") as f:
f.write(audio_bytes)
return output_path
# Run the complete pipeline
def run_agent(image_path: str, audio_path: str, voice_sample: str = None):
print("📸 Step 1: Analyzing image with LLaVA-34B...")
image_desc = analyze_image(image_path)
print("🎤 Step 2: Transcribing audio with Whisper Large v3...")
transcript = transcribe_audio(audio_path)
print("🤖 Step 3: Generating response with Llama 3.1 70B...")
response = generate_response(image_desc, transcript)
print("🗣️ Step 4: Converting to speech with XTTS v2...")
audio_out = text_to_speech(response, voice_sample=voice_sample)
print(f"✅ Done! Response saved to: {audio_out}")
return response
if __name__ == "__main__":
result = run_agent("input_image.jpg", "input_audio.mp3")
Використання x402 для автономних платежів
Хочете, щоб ваш агент працював без будь-якої людської налаштування? Використовуйте протокол x402:
from x402.client import PaymentClient
# Замініть клієнта на основі заголовків на x402
x402_client = PaymentClient(
private_key="0xYOUR_BASE_L2_PRIVATE_KEY",
chain="base",
max_payment="0.10" # Безпекова межа за запитом
)
def gpu_run_x402(service: str, input_data: dict) -> dict:
"""x402-підтримуваний gpu_run — без потреби у API-ключі."""
response = x402_client.request(
"POST", f"{BASE_URL}/run",
json= {"service: service, "input: input_data}
)
return response.json()
Просто замініть gpu_run на gpu_run_x402. Ваш агент тепер автономно оплачуватиме кожен виклик GPU за допомогою USDC на Base L2 (менше за <1 цент газу, приблизно 2 секунди підтвердження).
Аналіз витрат
| Крок | Сервіс | Приблизна вартість |
|---|---|---|
| Аналіз зображення | llava-4090 |
$0.02 |
| Транскрипція аудіо (1 хв) | whisper-l4 |
$0.005 |
| Відповідь LLM | llm-4090 |
$0.01 |
| TTS (100 слів) | tts-l4 |
$0.005 |
| Всього за запуск | ~$0.04 |
25 повних запусків конвеєра за $1.
Також доступно: MCP-сервер для Claude
GPU-Bridge також має MCP-сервер, який надає Claude прямий доступ до всіх 26 сервісів:
{
"mcpServers": {
"gpu-bridge": {
"command": "npx",
"args": ["-y", "@gpu-bridge/mcp-server"],
"env": { "GPUBRIDGE_API_KEY": "your_key" }
}
}
}
Посилання
- 🔑 Отримати ключ API: gpubridge.xyz
- 📖 Документація: gpubridge.xyz/docs
- 🐙 MCP Server: github.com/gpu-bridge/mcp-server
Маєте запитання? залишайте їх у коментарях!
HI-FI News
через DEV Community https://dev.to
14 березня 2026 о 12:47 AM
March 14, 2026 at 12:47AM

Залишити відповідь