Google cloud platform 无法在对话框流知识库中创建包含原始内容的文档
我使用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列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
当我查看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());