我必须将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; }
答案 0 :(得分:1)
我已经解决了这个问题。
同义词集合(RepeatedField)已作为空集合存在。因此,您只需向其中添加项目即可!