在我的脚本中,我有以下内容:
response = requests.get(list_url[0], allow_redirects=True)
s = io.BytesIO()
s.write(response.content)
s.seek(0)
mimetype="application/octet-stream"
document = {'file': s.read(), 'mime': mimetype}
request = {"name": name, "document": document}
然而,当我向服务器发送请求时:
result = client.process_document(request=request)
我得到ValueError: Protocol message Document has no "file" field
。
这是因为谷歌文档AI不接受八位字节流吗?
我检查了文档ai python客户端DocumentProcessorServiceClient
的最新版本代码,发现该函数在其request
字段上传递了一个Process Request
对象。您可以在process_document github代码页上查看该函数的详细信息。
进程请求将接受inline_document
或raw_document
(两者都是互斥的(。根据您的代码,您似乎正在传递一个raw_document,它只接受字段content
和mime_type
,而应该使用它们来代替file
和mime
。
如果你检查一下使用python库客户端进行文档ai的示例,你会发现这几行解释了它应该如何实现:
...
document = {"content": image_content, "mime_type": "application/pdf"}
# Configure the process request
request = {"name": name, "raw_document": document}
result = client.process_document(request=request)
...
有关更多详细信息,您可以查看文档ai的官方github项目和python客户端库的官方谷歌页面。