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.
go get -u github.com/wit-ai/wit-go
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)
}
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",
},
})
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")
Add:
client.AddEntityValue("favorite_city", witai.EntityValue{
Value: "HCMC",
Expressions: ["HoChiMinh", "HCMC"],
})
Delete:
client.DeleteEntityValue("favorite_city", "HCMC")
Add:
client.AddEntityValueExpression("favorite_city", "HCMC", "HoChiMinh")
Delete:
client.DeleteEntityValueExpression("favorite_city", "HCMC", "HoChiMinh")
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)
downloadURL := client.Export()
Both Unit / Integration tests are executed by TravisCI.
go test -race -v
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
The license for wit-go can be found in LICENSE file in the root directory of this source tree.