Загрузка модели...
1. Зарегистрируйтесь или войдите
Создайте аккаунт, чтобы управлять биллингом и выпускать API ключи для доступа к ZvenoAI.
2. Получите API ключ
Перейдите в раздел API ключей, создайте новый ключ и сохраните его в безопасном месте — он понадобится для аутентификации запросов.
3. Отправьте первый запрос
Используйте любой OpenAI-совместимый SDK. Укажите базовый URL ZvenoAI и передайте ваш API ключ в заголовке Authorization.
Выберите подходящий пример, замените ZVENOAI_API_KEY на свой ключ и подставьте нужный slug модели (сейчас: tencent/hy-image-v3.5-preview).
curl -X POST https://api.zveno.ai/v1/chat/completions \
-H "Authorization: Bearer <ZVENOAI_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"model": "tencent/hy-image-v3.5-preview",
"messages": [
{"role": "user", "content": "Сгенерируй прекрасный закат на Волге"}
],
"modalities": ["image", "text"]
}'from openai import OpenAI
client = OpenAI(
base_url="https://api.zveno.ai/v1",
api_key="<ZVENOAI_API_KEY>",
)
response = client.chat.completions.create(
model="tencent/hy-image-v3.5-preview",
messages=[
{
"role": "user",
"content": "Сгенерируй прекрасный закат на Волге"
}
],
extra_body={"modalities": ["image", "text"]}
)
message = response.choices[0].message
if hasattr(message, 'images') and message.images:
for image in message.images:
image_url = image.url if hasattr(image, 'url') else (image.image_url.url if hasattr(image, 'image_url') else None)
if image_url:
print(f"Generated image: {image_url[:50]}...")package main
import (
"context"
"encoding/json"
"fmt"
"os"
openai "github.com/sashabaranov/go-openai"
)
func main() {
cfg := openai.DefaultConfig(os.Getenv("ZVENOAI_API_KEY"))
cfg.BaseURL = "https://api.zveno.ai/v1"
client := openai.NewClientWithConfig(cfg)
resp, err := client.CreateChatCompletion(
context.Background(),
openai.ChatCompletionRequest{
Model: "tencent/hy-image-v3.5-preview",
Messages: []openai.ChatCompletionMessage{
{
Role: openai.ChatMessageRoleUser,
Content: "Сгенерируй прекрасный закат на Волге",
},
},
ExtraBody: map[string]interface{}{
"modalities": []string{"image", "text"},
},
},
)
if err != nil {
panic(err)
}
// Изображения находятся в поле images ответа
respJSON, _ := json.Marshal(resp)
fmt.Printf("Response: %s\n", string(respJSON))
}