Microsoft API Golang package
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
url.go for Golang

GitHub license GoDoc Build Status

Language Understanding Intelligent Service (LUIS)

LUIS lets your app understand language

  • LUIS is in beta and free to use
  • Supported browsers: Internet Explorer 10/11, Chrome

In LUIS you can:

  • Create language understanding models.
  • Use pre-built, world-class models from Bing and Cortana.
  • Deploy your models to an HTTP endpoint.
  • Activate models on any device.

Here is some suggestion and limitation you might want to check before add all you intent. Chinese

How to get APP_ID and APP_KEY


Login and go to LUIS key page

You can see the API_KEY in "My Keys".


Create a new App (if you don't have one) and in the APP dashboard, you can get APP_ID from web URL. It might be 12341be8-8cfb-471c-b05a-636d58cd5678

Version ID (Important)

Before use this SDK, you must run follow step in dashboard.

  • Create new app
  • Add few intent
  • Add Endpoint Key (You could use your API key)
  • Publish your model.


go get

How to use it

var API_KEY string
var APPID string

func main() {
	var API_KEY string
	var APPID string

	APPID = os.Getenv("APP_ID")
	API_KEY = os.Getenv("SUB_KEY")

	if API_KEY == "" {
		fmt.Println("Please export your key to environment first, `export SUB_KEY=12234 && export APP_ID=5678`")
	if API_KEY == "" {

	e := NewLuis(API_KEY, APPID)

	res, err := e.IntelList()

	if err != nil {
		log.Error("Error happen on :", err.Err)
	fmt.Println("Got response:", string(res))
	result := NewIntentListResponse(res)
	fmt.Println("Luis Intent Ret", result)

	//Add utterances
	ex := ExampleJson{ExampleText: "test", SelectedIntentName: "test2"}
	res, err = e.AddLabel(ex)

	//Train it
	res, err = e.Train()
	if err != nil {
		log.Error("Error happen on :", err.Err)

	//Predict it, once you have train your models.
	res, err = e.Predict("test string")

	if err != nil {
		log.Error("Error happen on :", err.Err)
	fmt.Println("Got response:", string(res))
	fmt.Println("Get the best predict result:", GetBestScoreIntent(NewPredictResponse(res)))

Implemented APIs

  • actionChannels
  • intents
  • predict
  • train
  • example
  • Versions
  • Publish

Unimplement APIs (Yet)

Need your help to send your PR.


Please open up an issue on GitHub before you put a lot efforts on pull request. The code submitting to PR must be filtered with gofmt


This package is licensed under MIT license. See LICENSE for details.