Google cloud platform 无法在对话框流知识库中创建包含原始内容的文档

Google cloud platform 无法在对话框流知识库中创建包含原始内容的文档,google-cloud-platform,dialogflow-es,Google Cloud Platform,Dialogflow Es,我使用com.google.cloud.dialogflow.v2beta1.Document通过java rpc创建文档,我们有一个setContent方法,用于创建包含原始内容的文档,当我尝试创建文档时,我遇到以下异常 原因:com.google.api.gax.rpc.InvalidArgumentException:操作 有名字 项目/agent-fa5be/operations/ks-add_文件-NDQ0NDQ3MJI5MDA3NTIXZGYNA 失败,状态为GrpcStatusCo

我使用com.google.cloud.dialogflow.v2beta1.Document通过java rpc创建文档,我们有一个setContent方法,用于创建包含原始内容的文档,当我尝试创建文档时,我遇到以下异常

原因:com.google.api.gax.rpc.InvalidArgumentException:操作 有名字 项目/agent-fa5be/operations/ks-add_文件-NDQ0NDQ3MJI5MDA3NTIXZGYNA 失败,状态为GrpcStatusCode{transportCode=无效参数} 和message=CSV文档必须正好有两列。这个 提供的文档有1列


当我查看dialogflow.v2beta1文档时,明确提到的内容不推荐使用,请使用原始内容而不是内容。但是com.google.cloud.dialogflow.v2beta1.Document中的原始内容没有受支持的方法

我正在试验类似的问题。我尝试了不同的库和技术,直到找到了一些有效的方法。在我的例子中,我必须按如下方式解析每一行:

let input = ['Question1', 'Answer1\n'];
let input2 = ['Question2', 'Answer2\n'];
let base64data = input.toString('base64') + input2.toString('base64');

const request = {
    parent: 'projects/PROJECT_ID/knowledgeBases/KNOWLEDGEBASE_ID',
    document: {
        knowledgeTypes: ['FAQ'],
        displayName: 'Echele',
        content: base64data,
        source: 'rawContent',
        mimeType: 'text/csv',
    },
};
这让我可以提交文件,希望它也能为你工作!
关于

请找到工作解决方案

String documentName="test.csv";
            try {
                byte[] bytedata = filedata.toString().getBytes();
                ByteString bytestring = ByteString.copyFrom(bytedata);
                byte[] bytedata1 = "text/csv".getBytes();
                ByteString mimestring = ByteString.copyFrom(bytedata1);
                DocumentsSettings docuemtnSettings = DocumentsSettings.newBuilder()
                        .setCredentialsProvider(FixedCredentialsProvider.create(credentials)).build();
                DocumentsClient documentsClient = DocumentsClient.create(docuemtnSettings);
                Document document = Document.newBuilder().setDisplayName(documentName).setContentBytes(bytestring)
                        .setMimeTypeBytes(mimestring).addKnowledgeTypes(KnowledgeType.FAQ).build();
                CreateDocumentRequest createDocumentRequest = CreateDocumentRequest.newBuilder().setDocument(document)
                        .setParent(knowledgeBaseName).build();
                OperationFuture<Document, KnowledgeOperationMetadata> response = documentsClient
                        .createDocumentAsync(createDocumentRequest);
                Document createdDocument = response.get();
                System.out.format(" - docuemnt created  ID: %s\n", createdDocument.getName());