- Создание хранилища данных GCP, которое я выполнил в соответствии с этой документацией. Я настроил все необходимые параметры доступа и установил для параметра CONFIG значение CONTENT REQUIRED.
- Создайте сегмент облачного хранилища GCP, который содержит 4 документа PDF (на данный момент) и файл метаданных .jsonl, которые находятся в корне моего сегмента.
- Заполнение хранилища данных запросом на импорт документов с использованием документов из сегмента облачного хранилища Google.
client_options = (
ClientOptions(api_endpoint=f"{LOCATION}-discoveryengine.googleapis.com")
if LOCATION != "global"
else None
)
# Create a client
client = discoveryengine.DocumentServiceClient(client_options=client_options)
parent = client.branch_path(
project=PROJECT_ID,
location=LOCATION,
data_store=DATA_STORE_ID,
branch="default_branch",
)
request = discoveryengine.ImportDocumentsRequest(
parent=parent,
gcs_source=discoveryengine.GcsSource(
# Multiple URIs are supported
input_uris=[GCS_URI],
# Options:
# - `content` - Unstructured documents (PDF, HTML, DOC, TXT, PPTX)
# - `custom` - Unstructured documents with custom JSONL metadata
# - `document` - Structured documents in the discoveryengine.Document format.
# - `csv` - Unstructured documents with CSV metadata
data_schema="custom",
),
id_field="id",
# Options: `FULL`, `INCREMENTAL`
reconciliation_mode=discoveryengine.ImportDocumentsRequest.ReconciliationMode.FULL,
)
# Make the request
operation = client.import_documents(request=request)
print(f"Waiting for operation to complete: {operation.operation.name}")
response = operation.result()
print(response)
Переменная GCS_URI — это ссылка на URI gsutil файла метаданных.jsonl (gs://meta-data-testing/metadata.jsonl), и этот файл выглядит так:
{"id": "1", "structData": {"title": "Coldsmokesubmittal", "category": "212027"}, "content": {"mimeType": "application/pdf", "uri": "gs://meta-data-testing/ColdSmokeSubmittal.pdf"}}
{"id": "2", "structData": {"title": "Defssubmittal", "category": "212027"}, "content": {"mimeType": "application/pdf", "uri": "gs://meta-data-testing/DEFSSubmittal.pdf"}}
{"id": "3", "structData": {"title": "Cmu Submittal", "category": "222039"}, "content": {"mimeType": "application/pdf", "uri": "gs://meta-data-testing/CMU_Submittal.pdf"}}
{"id": "4", "structData": {"title": "Concrete Mix Submittal", "category": "222039"}, "content": {"mimeType": "application/pdf", "uri": "gs://meta-data-testing/Concrete_Mix_Submittal.pdf"}}
Когда я запускаю свой код, я получаю такой ответ:
error_samples {
code: 3
message: "To create document without content, content config of data store must be NO_CONTENT."
details {
type_url: "type.googleapis.com/google.rpc.ResourceInfo"
value: "\022\'gs://meta-data-testing/metadata.jsonl:1"
}
}
Это повторяется еще 3 раза для каждой строки моего файла .jsonl.
Пожалуйста, если кто-нибудь пробовал добавлять неструктурированные документы с метаданными, сообщите мне, где я ошибаюсь, или метод, который вы смогли использовать для успешного выполнения этого процесса.
Попытки моего решения
Изменить хранилище данных Конфигурация
Я вижу, что мне предлагается изменить конфигурацию хранилища данных на NO_CONTENT, но когда я это делаю, в хранилище данных загружаются только метаданные, и я не могу фактически выполнить поиск в документах через приложение Vertex AI. Я думаю, что эта ошибка может быть вторичным результатом реальной проблемы.
Загрузка через GCP
Я пробовал вручную загрузить на сам GCP:

но при попытке я получаю эту ошибку:
message: "INVALID_FORMAT gcsInputuri"
status: {
@type: "type.googleapis.com/google.rpc.Status"
code: 3
message: "The provided GCS URI has invalid unstructured data format. Please provide a valid GCS path in either NDJSON(.ndjson) or JSON Lines(.jsonl) format."
}
Подробнее здесь: https://stackoverflow.com/questions/796 ... platform-d
Мобильная версия