Loading
Configuration d'une API Gateway pour la recherche de stockage externe

Configuration d'une API Gateway pour la recherche de stockage externe

Exposer Amazon Bedrock ou Amazon Kendra via une API AWS qui accepte les requêtes de recherche Salesforce et renvoie les résultats de recherche pris en charge.

Avant de commencer, configurez et testez une base de connaissances Amazon Bedrock Knowledge ou un index Amazon Kendra.

  1. Créez une fonction Lambda qui accepte la requête Recherche de stockage externe.
  2. Configurez la fonction pour accepter une requête en langage naturel, des ID de Salesforce ContentDocument, des filtres supplémentaires, un nombre maximal de résultats et une poignée de recherche, selon le cas.
  3. Configurez la fonction pour interroger le service de recherche AWS sélectionné et appliquer les filtres pris en charge.
  4. Transformez chaque résultat en champs de réponse attendus par Salesforce.

    La réponse doit inclure les valeurs suivantes, selon le cas :

    Champ Type Description
    contentDocumentIds Tableau de chaînes ID normalisés du champ de métadonnées contentDocumentId
    contentType Chaîne ou nul Type de fichier
    excerpt Chaîne Correspondance de chunk content.text
    externalDocumentInfo2 Chaîne URI Amazon S3
    relevanceScore Numérique Score de pertinence renvoyé par le service de recherche
    sourceUrl Chaîne URI Amazon S3
    title Chaîne Nom de fichier dérivé de l'URI Amazon S3
    pageNumber Chaîne ou nul Numéro de page des métadonnées fragmentées
    startTimeMs Numérique ou nul Heure de début du média pertinente en millisecondes
    endTimeMs Numérique ou nul Heure de fin du média pertinente en millisecondes

    Consultez Exemple de réponse d'entrée et de sortie.

  5. Accordez l'autorisation de rôle d'exécution Lambda pour interroger le service de recherche sélectionné.
  6. Dans Passerelle d'API, créez une API REST.
  7. Créez une ressource de recherche, par exemple /search.
  8. Créez une méthode POST qui utilise la fonction Lambda comme cible d'intégration.
  9. Activez l'intégration de proxy Lambda.
  10. Définissez l'autorisation de la méthode sur AWS_IAM.
  11. Déployez l'API à une étape, par exemple prod.
  12. Enregistrez l'URL d'invocation.
  13. Créez un principal IAM avec l'autorisation d'invoquer l'API de la passerelle.
  14. Envoyez une demande de test.
  15. Vérifiez le schéma de réponse, les ID de fichier Salesforce, les scores de pertinence, les extraits et les emplacements sources.
  16. L'API de la passerelle est prête à se connecter à Salesforce.

Exemple de réponse d'entrée et de sortie

Here is a sample input:
{
  "searchQuery": "Jason image",
  "contentDocumentIds": [
    "069xx0000004Dea",
    "069LT000001BuuL",
    "069xx0000004Deb",
    "069LT000001Bv41"
  ],
  "additionalFilters": {},
  "maxResults": 100,
  "searchHandle": null
}

Here is a sample output:
{
    "executionTimeMs": 1720,
    "hasMore": false,
    "nextSearchHandle": null,
    "results": [
        {
            "contentDocumentIds": [
                "069xx0000004Dea",
                "069xx0000004CIi"
            ],
            "contentType": "PDF",
            "excerpt": "Jason...",
            "externalDocumentInfo2": "s3://my-bucket/Stockholm-Resume-Template-Simple.pdf",
            "relevanceScore": 0.3837699,
            "sourceUrl": "s3://my-bucket/Stockholm-Resume-Template-Simple.pdf",
            "title": "Stockholm-Resume-Template-Simple.pdf",
            "pageNumber": "1",
            "startTimeMs": null,
            "endTimeMs": null
        },
                {
            "contentDocumentIds": [
                "069LT000001BuuL"
            ],
            "contentType": "MP3",
            "excerpt": "",
            "externalDocumentInfo2": "s3://my-bucket/__sfdcroot__/Case/500LT00000K5Ty5YAF/Hyde_1783590525379.mp3",
            "relevanceScore": 0.3344161,
            "sourceUrl": "s3://my-bucket/__sfdcroot__/Case/500LT00000K5Ty5YAF/Hyde_1783590525379.mp3",
            "title": "Hyde_1783590525379.mp3",
            "pageNumber": null,
            "startTimeMs": 730,
            "endTimeMs": 55110
        },
        {
            "contentDocumentIds": [
                "069xx0000004Deb"
            ],
            "contentType": "MP4",
            "excerpt": "",
            "externalDocumentInfo2": "s3://my-bucket/Multi-File Edit.mp4",
            "relevanceScore": 0.34692305,
            "sourceUrl": "s3://my-bucket/Multi-File Edit.mp4",
            "title": "Multi-File Edit.mp4",
            "pageNumber": null,
            "startTimeMs": 0,
            "endTimeMs": 27849
        },
        {
            "contentDocumentIds": [
                "069LT000001Bv41"
            ],
            "contentType": "PNG",
            "excerpt": "The image describes...",
            "externalDocumentInfo2": "s3://my-bucket/__sfdcroot__/Case/500LT00000K5Ty5YAF/image_1783590602375.png",
            "relevanceScore": 0.3374139,
            "sourceUrl": "s3://my-bucket/__sfdcroot__/Case/500LT00000K5Ty5YAF/image_1783590602375.png",
            "title": "image_1783590602375.png",
            "pageNumber": null,
            "startTimeMs": null,
            "endTimeMs": null
        }
    ]
}

Pour des instructions détaillées sur le service Bedrock, consultez les références suivantes à la documentation AWS :

Pour des instructions détaillées sur le service Kendra, consultez les références suivantes à la documentation AWS :

 
Chargement
Salesforce Help | Article