DialogFlow V2 gRPC(c#)(更新实体等)

时间:2018-10-03 11:06:44

标签: c# dialogflow grpc

我必须将DialogFlow(以前是API.AI)从V1 API重构为新的V2 gRPC。因此,我准备了一切并开始重构。 但是立即我遇到了一些问题。尝试更新某些EntityType的实体时,请参见下面的示例。

updateEntity。同义词只读属性。

W00t ???知道为什么吗?还是有另一种(正确的?)方法吗?

var client = DialogFlowHelper.DialogFlowCreateChannelClientEntityTypes();

List<EntityEntry> input = JsonConvert.DeserializeObject<List<EntityEntry>>(jsonData);

List<EntityType.Types.Entity> updateEntities = new List<EntityType.Types.Entity>();

foreach (var e in input)
{
    var updateEntity = new EntityType.Types.Entity();
    updateEntity.Value = e.value;

    // HERE IS THE PROBLEM !!!!
    // HERE IS THE PROBLEM !!!!
    // HERE IS THE PROBLEM !!!!
    //updateEntity.Synonyms = 

    updateEntities.Add(updateEntity);
}

var res = await client.BatchUpdateEntitiesAsync(
    new EntityTypeName("no_problem", "no_problem"),
    updateEntities
    );

同义词的定义如下:

//
// Summary:
//     Required. A collection of synonyms. For `KIND_LIST` entity types this must contain
//     exactly one synonym equal to `value`.
[DebuggerNonUserCode]
public RepeatedField<string> Synonyms { get; }

1 个答案:

答案 0 :(得分:1)

我已经解决了这个问题。

同义词集合(RepeatedField)已作为空集合存在。因此,您只需向其中添加项目即可!