Skip to content

hellowearemito/wit-go

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

66 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

wit.ai

Build Status GoDoc Go Report Card

This repository is community-maintained. We gladly accept pull requests. Please see the Wit HTTP Reference for all supported endpoints.

Go client for wit.ai HTTP API.

Install

go get -u github.com/wit-ai/wit-go

Usage

Parse text

package main

import (
	"os"
	"fmt"

	witai "github.com/wit-ai/wit-go"
)

func main() {
	client := witai.NewClient(os.Getenv("WIT_AI_TOKEN"))
	// Use client.SetHTTPClient() to set custom http.Client

	msg, _ := client.Parse(&witai.MessageRequest{
		Query: "hello",
	})
	fmt.Printf("%v", msg)
}

Send an audio file

file, _ := os.Open("speech.wav")

msg, _ := client.Speech(&witai.MessageRequest{
	Speech: &witai.Speech{
		File:        file,
		ContentType: "audio/raw;encoding=unsigned-integer;bits=16;rate=16k;endian=little",
	},
})

Entities

Create:

client.CreateEntity(witai.Entity{
	ID:  "favorite_city",
	Doc: "A city that I like",
})

Get:

client.GetEntity("favorite_city")

Update:

client.UpdateEntity("favorite_city", witai.Entity{
	Doc: "My favorite city",
})

Delete:

client.DeleteEntity("favorite_city")

Entity values

Add:

client.AddEntityValue("favorite_city", witai.EntityValue{
	Value: "HCMC",
	Expressions: ["HoChiMinh", "HCMC"],
})

Delete:

client.DeleteEntityValue("favorite_city", "HCMC")

Value expressions

Add:

client.AddEntityValueExpression("favorite_city", "HCMC", "HoChiMinh")

Delete:

client.DeleteEntityValueExpression("favorite_city", "HCMC", "HoChiMinh")

Training

Validate samples (sentence + entities annotations) to train your app programmatically:

client.ValidateSamples([]witai.Sample{
	Sample{
		Text: "I live in HCMC",
	},
})

Get validate samples:

limit := 10
offset := 0
client.GetSamples(limit, offset)

Export

downloadURL := client.Export()

Testing

Both Unit / Integration tests are executed by TravisCI.

Unit tests

go test -race -v

Integration tests

Integration tests are connecting to real Wit.ai API, so you need to provide a valid token:

export WITAI_INTEGRATION_TOKEN=your_secret_token_here
go test -v -tags=integration

License

The license for wit-go can be found in LICENSE file in the root directory of this source tree.

About

Go client for wit.ai HTTP API

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 100.0%