跳到正文

快速上手

从安装到第一条回答,几分钟内完成——覆盖 Python、TypeScript、Go、Rust、Java、C#/.NET、Ruby 和 PHP。

Python

安装 SDK(CLI 内置其中):

bash
pip install infrai

激活一次,之后即可调用任意模块。激活是唯一的入驻入口:它会创建匿名账户、生成项目密钥并发放试用额度。

python
from infrai import infra, ai

infra.activate()              # anonymous account + $2 trial credit, zero-config

reply = ai.chat("Explain React useEffect in one sentence")
print(reply["content"])
print(reply["_metadata"])     # cost_usd, latency_ms, vendor, cache_hit

选择中国区模型即享 0% 加价、发送邮件,或安排定时任务——全部在同一把密钥之下:

python
# China-region model → 0% markup
ai.chat("写一个快速排序", vendor="deepseek")

# Send an email
infra.email.send(to="x@y.com", subject="Hi", body="...")

# Schedule a cron job
infra.cron.create(
    cron_expr="0 9 * * *",
    task="https://api.myapp.com/daily",
    idempotency_key="daily-digest-v1",
)

TypeScript

安装依赖包:

bash
npm install @infrai/sdk

用你的项目密钥创建客户端并调用模块:

typescript
import { InfraiClient } from "@infrai/sdk";

const client = new InfraiClient({ apiKey: process.env.INFRAI_API_KEY! });

const r = await client.ai.chat({ messages: "Explain React useEffect" });
console.log(r.content);
console.log(r.metadata);      // cost_usd, latency_ms, vendor, cache_hit

按到达顺序流式接收 token:

typescript
for await (const chunk of client.ai.streamChat({ messages: "Tell me a story" })) {
  process.stdout.write(chunk.delta.content ?? "");
}

更多语言 —— Go、Rust、Java、C#/.NET、Ruby、PHP

以下语言核心调用已正式可用。下面是各自的最小对话补全示例。

Go

bash
go get github.com/infrailab/infrai-go
go
package main

import (
	"context"
	"fmt"
	"log"
	"os"
	"time"

	"github.com/infrailab/infrai-go"
	"github.com/infrailab/infrai-go/modules/ai"
)

func main() {
	c := infrai.New(
		infrai.WithAPIKey(os.Getenv("INFRAI_API_KEY")),
		infrai.WithTimeout(30*time.Second),
	)
	ctx := context.Background()
	res, err := c.AI().Chat(ctx, &ai.ChatRequest{
		Messages: []ai.ChatMessage{{Role: "user", Content: "Why is the sky blue?"}},
	})
	if err != nil {
		log.Fatal(err)
	}
	fmt.Println(res.Data.Content)
}

Rust

bash
cargo add infrai
rust
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let client = infrai::Client::builder()
        .api_key(std::env::var("INFRAI_API_KEY")?)
        .build()?;

    let resp = client
        .ai_runtime()
        .chat()
        .user("What is the capital of Japan?")
        .send()
        .await?;

    println!("{:?}", resp.choices);
    Ok(())
}

Java

bash
io.infrailab:infrai-sdk:0.2.0
java
import io.infrailab.Client;
import io.infrailab.Infrai;
import com.fasterxml.jackson.databind.JsonNode;

public class BasicChat {
    public static void main(String[] args) throws Exception {
        Client client = Infrai.builder()
            .apiKey(System.getenv("INFRAI_API_KEY"))
            .build();
        JsonNode resp = client.aiRuntime().chat()
            .user("What is the capital of Japan?")
            .send();
        System.out.println(resp.toPrettyString());
    }
}

下一步