simplifyai

package module
v0.0.0-...-73919f1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 29, 2024 License: MIT Imports: 10 Imported by: 0

README

Golang sdk for SimplifyAI

SimplifyAI 接口文档地址: https://translate.simplifyai.cn/developer

使用示例

Install

go get github.com/daixijun/go-simplifyai

使用:

package main

import (
 "context"
 "log"
 "os"

 "github.com/daixijun/go-simplifyai"
)

var (
 apiKey   = os.Getenv("SIMPLIFYAI_API_KEY")
 fromLang = "English"
 toLang   = "Simplified Chinese"
 glossary = ""
 filePath = "source.pdf"
)

func main() {
    // 创建 Client
    client := simplifyai.NewClient(apiKey, nil)
    ctx := context.Background()
    req := &simplifyai.CreateTranslationTaskRequest{
    FromLang: fromLang,
    ToLang:   toLang,
    Glossary: glossary,
    File:     filePath,
    }

    // 创建翻译任务
    task, err := client.CreateTranslationTask(ctx, req)
    if err != nil {
    log.Fatalf("CreateTranslationTask() error = %v", err)
    }

    // 查询翻译任务
    res, err = client.QueryTranslationTask(ctx, task.TaskId)
    if err != nil {
        log.Fatalf("QueryTranslationTask() error = %v", err)
    }

    // 删除翻译任务
    res, err = client.DeleteTranslationTask(ctx, task.TaskId)
    if err != nil {
        log.Fatalf("DeleteTranslationTask() error = %v", err)
    }

    // 启动翻译任务
    res, err = client.StartTranslationTask(ctx, task.TaskId)
    if err != nil {
        log.Fatalf("StartTranslationTask() error = %v", err)
    }

    // 查询可用语言
    langs, err = client.ListAvailableLanguages(ctx)
    if err != nil {
        log.Fatalf("ListAvailableLanguages() error = %v", err)
    }
}

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrUnauthorized     = errors.New("没有提供正确的 API 密钥") // 401
	ErrInvalidParameter = errors.New("参数错误")           // 400
	ErrInternalError    = errors.New("服务器端内部错误")       // 500
	ErrNotFound         = errors.New("指定的任务不存在")       // 404
	ErrUnpaid           = errors.New("积分余额不足")         // 402
)
View Source
var ErrorMap = map[int]error{
	400: ErrInvalidParameter,
	401: ErrUnauthorized,
	402: ErrUnpaid,
	404: ErrNotFound,
	500: ErrInternalError,
}

Functions

This section is empty.

Types

type Client

type Client struct {
	// contains filtered or unexported fields
}

func NewClient

func NewClient(apiKey string, opts ...Option) *Client

func (*Client) CreateTranslationTask

CreateTranslationTask 创建翻译任务

func (*Client) DeleteTranslationTask

func (c *Client) DeleteTranslationTask(ctx context.Context, taskId string) error

DeleteTranslationTask 删除翻译任务

func (*Client) ListAvailableLanguages

func (c *Client) ListAvailableLanguages(ctx context.Context) ([]string, error)

ListAvailableLanguages 列出支持翻译的语言

func (*Client) QueryTranslationTask

func (c *Client) QueryTranslationTask(ctx context.Context, taskId string) (*QueryTranslationTaskResponse, error)

QueryTranslationTask 查询翻译任务

func (*Client) StartTranslationTask

func (c *Client) StartTranslationTask(ctx context.Context, taskId string) (*StartTranslationTaskResponse, error)

StartTranslationTask 启动翻译任务

type CreateTranslationTaskRequest

type CreateTranslationTaskRequest struct {
	FromLang string // 源语言
	ToLang   string // 目标语言
	Glossary string // 术语表
	File     string // 文件路径
}

type CreateTranslationTaskResponse

type CreateTranslationTaskResponse struct {
	TaskId string `json:"taskId"` // 任务 ID, 创建任务时返回
	Price  int    `json:"price"`  // 此次翻译使用的积分
}

CreateTranslationTaskResponse 创建翻译任务响应

type Option

type Option func(opts *Client)

func WithBaseUrl

func WithBaseUrl(baseUrl string) Option

WithBaseUrl 设置请求地址

func WithHttpClient

func WithHttpClient(httpClient *http.Client) Option

WithHttpClient 自定义 http.Client

func WithTimeout

func WithTimeout(timeout *time.Duration) Option

WithTimeout 设置超时时间

type QueryTranslationTaskResponse

type QueryTranslationTaskResponse struct {
	Status            TaskStatus `json:"status"`            // 任务状态
	Progress          int        `json:"progress"`          // 任务进度,0 到 100
	TranslatedFileURL string     `json:"translatedFileUrl"` // 译文文档的 URL,翻译完成才有。
	BilingualFileURL  string     `json:"bilingualFileUrl"`  // 双语文档的 URL,翻译完成才有。
	Price             int        `json:"price"`             // 此次翻译使用的积分
	TotalToken        int        `json:"totalToken"`        // 需要翻译的 token 总数
}

QueryTranslationTaskResponse 查询翻译任务返回

type StartTranslationTaskResponse

type StartTranslationTaskResponse struct {
	Status     TaskStatus `json:"status"`     // 任务状态
	Progress   int        `json:"progress"`   // 任务进度, 0 到 100
	Price      int        `json:"price"`      // 此次翻译使用的积分
	TotalToken int        `json:"totalToken"` // 需要翻译的 Token 总数
}

StartTranslationTaskResponse 启动翻译任务返回

type TaskStatus

type TaskStatus string

TaskStatus 任务状态

const (
	// TaskStatusUnpaid 未支付
	TaskStatusUnpaid TaskStatus = "Unpaid"
	// TaskStatusWaiting 等待中
	TaskStatusWaiting TaskStatus = "Waiting"
	// TaskStatusProcessing 处理中
	TaskStatusProcessing TaskStatus = "Processing"
	// TaskStatusCompleted 已完成
	TaskStatusCompleted TaskStatus = "Completed"
	// TaskStatusCancelled 已取消
	TaskStatusCancelled TaskStatus = "Cancelled"
	// TaskStatusTerminated 已终止
	TaskStatusTerminated TaskStatus = "Terminated"
	// TaskStatusNotSupported 不支持
	TaskStatusNotSupported TaskStatus = "NotSupported"
)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL