İşlemleri Tanımlayın (Dialogflow)

İşlemler, uygulamanızın çağrı ve keşif modelini tanımlayan uygulamanızda bulunan giriş noktalarıdır. İşlemleri İşlem paketi olarak bilinen bir JSON dosyasında tanımlarsınız. Bu dosyayı, daha sonra Actions projenizi test etmek veya onay için göndermek istediğinizde geliştirici projenize yüklersiniz. Eylem paketi, Actions projenizdeki İşlemler'i tanımlayan bir JSON dosyasıdır.

İşlem paketinizde İşlemleri tanımlamak için İşlemin nasıl çağrıldığını ve amaç tetiklendiğinde ilgili istek karşılama uç noktasını tanımlayan bir niyet oluşturursunuz. Aşağıdaki İşlem türlerini oluşturabilirsiniz:

  • Varsayılan İşlem: Her Actions projesinin, kullanıcıların görüşme başlatması için giriş noktası görevi gören bir karşılama amacı olmalıdır. Karşılama amacı, kullanıcılar bir işlemi açıkça söyleyerek bir işlemi çağırdığında tetiklenir (örneğin, "Ok Google, Ornekİşlem ile konuş"). Bu karşılama amacı, actions.intent.MAIN amaç adıyla tanımlanır.
  • Derin bağlantı için Ek İşlemler: İşlem paketinizde, kendi tanımladığınız niyetlerle ek işlemler oluşturabilirsiniz. Bu, kullanıcıların bir amaçla birlikte bir işlem adı söyleyerek belirli işlevleri çağırmalarına olanak tanır (örneğin: "Ok Google, ayakkabı bulmak için Örnekİşlem ile konuş").

Bu çağrı modellerinin işleyiş şekli hakkında daha fazla bilgi edinmek için Amaçlar ve çağrı bölümüne bakın.

Varsayılan İşlem tanımlama

Her İşlem paketinde, actions.intent.MAIN amacını işleyen yalnızca bir tane amaç olmalıdır. Bu amaç, kullanıcılar İşleminizi ada göre çağırdığında (örneğin, "Ok Google, Ornekİşlem ile konuş") tetiklenir.

action.json adlı bir ortak işlem paketi dosyası oluşturmak için aşağıdaki adımları uygulayın:

  1. gactions CLI dosyasını indirin.
  2. İşlem projenizin kaynak dosyaları için yerel bir dizin oluşturun.
  3. Terminalde aşağıdaki komutları çalıştırın:

    $ cd PROJECT_DIRECTORY
    $ gactions init

İşlem paketi dosyası oluşturulduktan sonra yer tutucu içeriği kendi değerlerinizle değiştirin. ExampleAction için değişiklikleri içeren bir action.json örneği aşağıda verilmiştir:

{
  "actions": [
    {
      "description": "Default welcome intent",
      "name": "MAIN",
      "fulfillment": {
        "conversationName": "ExampleAction"
      },
      "intent": {
        "name": "actions.intent.MAIN",
        "trigger": {
          "queryPatterns": [
            "talk to ExampleAction"
          ]
        }
      }
    }
  ],
  "conversations": {
    "ExampleAction": {
      "name": "ExampleAction",
      "url": "https://www.example.com/ExampleAction"
    }
  },
  "locale": "en"
}

Ek İşlemler tanımlayın

Giriş noktası görevi gören ek işlemler sağlayabilirsiniz. Bu, kullanıcıların ne yapmak istedikleriyle ilgili daha fazla ayrıntı belirtmelerine izin vererek amaçlarını ayırt etmelerine olanak tanır (örneğin, "Ok Google, bana ayakkabı bulmak için Örnekİşlem ile konuşun.").

Ek İşlemler tanımlamak için:

  1. actions dizisinde her giriş noktası için bir İşlem belirtin.

    Örneğin, aşağıdaki kod aşağıdakileri tanımlayan ek bir "satın alma" işlemini gösterir:
    • com.example.ExampleAction.BUY amaç adı
    • Bu niyet tetiklendiğinde kullanıcı girişinden ayrıştırmak için parameters. Bu, kullanıcılar İşlemi çağırdığında İşlem ifadesinden belirli verilere ihtiyacınız olduğunda faydalıdır.
    • queryPatterns: Kullanıcıların niyeti tetiklemek için söylemeleri gerekenleri tanımlar. Sorgu kalıpları, ayrıştırılacak parametreleri tanımlayan Schema.org türlerini içerebilir.
    {
      "description": "Direct access",
      "name": "BUY",
      "fulfillment": {
        "conversationName": "ExampleAction"
      },
      "intent": {
        "name": "com.example.ExampleAction.BUY",
        "parameters": [
          {
            "name": "color",
            "type": "org.schema.type.Color"
          }
        ],
        "trigger": {
          "queryPatterns": [
            "find some $org.schema.type.Color:color sneakers",
            "buy some blue suede shoes",
            "get running shoes"
          ]
        }
      }
    }
          
  2. conversations nesnesindeki bir öğeye karşılık gelen bir conversationName belirterek bu amacın karşılanmasını belirtin.

    {
      "conversations": {
        "ExampleAction": {
          "name": "ExampleAction",
          "url": "https://www.example.com/ExampleAction"
        }
      }
    }
        

Aşağıda tam bir Action paketi örneği verilmiştir:

{
  "actions": [
    {
      "description": "Default welcome intent",
      "name": "MAIN",
      "fulfillment": {
        "conversationName": "ExampleAction"
      },
      "intent": {
        "name": "actions.intent.MAIN",
        "trigger": {
          "queryPatterns": [
            "talk to ExampleAction"
          ]
        }
      }
    },
    {
      "description": "Direct access",
      "name": "BUY",
      "fulfillment": {
        "conversationName": "ExampleAction"
      },
      "intent": {
        "name": "com.example.ExampleAction.BUY",
        "parameters": [
          {
            "name": "color",
            "type": "org.schema.type.Color"
          }
        ],
        "trigger": {
          "queryPatterns": [
            "find some $org.schema.type.Color:color sneakers",
            "buy some blue suede shoes",
            "get running shoes"
          ]
        }
      }
    }
  ],
  "conversations": {
    "ExampleAction": {
      "name": "ExampleAction",
      "url": "https://www.example.com/ExampleAction"
    }
  },
  "locale": "en"
}