🚀 DAY 5 OF LAUNCH WEEK: Introducing Socket Firewall Enterprise.Learn more →
Socket
Book a DemoInstallSign in
Socket

github.com/specializedgeneralist/translator

Package Overview
Dependencies
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

github.com/specializedgeneralist/translator

Source
Go
Version
v0.0.0-20210830140609-8eb1a3cba7da
Version published
Created
Source

Translator

A simple self-hostable translation service, powered by spaGO.

Some notable features:

  • it doesn't rely on external translation services
  • no fees, no strings attached
  • it's self-contained: just build and run with minimal dependencies
  • tiny executable, simple configuration
  • REST (OpenAPI) and gRPC API
  • it works with spaGO models
    • let the program automatically download and convert models from Hugging Face Hub (reference: spaGO Hugging Face Importer)
    • and/or just provide your own models

Supported models

This project uses spaGO machine-learning/NLP library behind the hood. At present, BART and Marian models for conditional generation are supported. For more information please refer to spaGO BART Machine Translation README section.

Build and Run

The primary intended usage is to run it as a standalone program. You can get the code and build it like this:

git clone https://github.com/SpecializedGeneralist/translator.git
cd translator
go build -o translator cmd/translator/main.go

The translator program requires a configuration file to run. Please refer to the file sample-configuration.yaml included with this project to see an example.

Once you are done with your configuration definition, run:

./translator -c your-config.yaml

The program will first load the configured models from the given path. If a model is not found, the program will automatically attempt to download it from Hugging Face models hub, convert it to a spaGO model, and load it as well.

Eventually, the server will start and will be ready to accept requests. The configured endpoint can be used indifferently for REST (OpenAPI-defined) requests, or as gRPC service.

The folder pkg/api from this project provides the OpenAPI definition file (api.yaml) and also protobuf and gRPC-related definitions and code.

Use as Go package

This project is a Go module, so you can get and use it from your own code:

go get -u github.com/SpecializedGeneralist/translator

For example, a typical scenario is to import and use the included gRPC client:

import "github.com/SpecializedGeneralist/translator/pkg/api"

// ...

client := api.NewApiClient(conn)

// ...

FAQs

Package last updated on 30 Aug 2021

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts