Services LLM
Votre première tâche pour permettre à votre compétence d'utiliser un modèle LLM (Large Language Model) consiste à créer un service qui accède au point d'extrémité du fournisseur LLM à partir d'Oracle Digital Assistant.
Vous pouvez créer un service LLM manuellement ou en important une définition YAML. Vous pouvez également convertir un service REST existant en un service de GML en cliquant sur Convertir en GML dans l'onglet Services REST.
Si votre compétence appelle les modèles Cohere au moyen du service d'intelligence artificielle générative d'Oracle, vous devrez effectuer quelques tâches pour permettre à votre instance Oracle Digital Assistant d'accéder aux ressources de traduction, de génération de texte, de récapitulation de texte et d'intégration. Parmi ces tâches figure la création de politiques de ressources de client qui peuvent nécessiter l'aide d'Oracle Support.
Créer un service LLM
- Sélectionnez > Paramètres > Services d'API dans le menu latéral.
- Ouvrez l'onglet LLM Services. Cliquez sur +Add LLM Service.
- Terminez la boîte de dialogue en entrant un nom pour le service, son point d'extrémité, une description facultative et ses méthodes. Cliquez ensuite sur Créer.
- Pour le modèle Commande de Cohere, entrez le point d'extrémité du point d'extrémité
Co.Generate
:https://api.cohere.ai/v1/generate
- Pour Azure OpenAI, spécifiez une opération
completions
pour activer les achèvements de texte multiples nécessaires pour les affinements à plusieurs tours. Par exemple :https://{your-resource-name}.openai.azure.com/openai/deployments/{deployment-id}/completions?api-version={api-version}
- Pour les modèles de commande Cohere, de commande-lumière et de lama au moyen de l'intelligence artificielle générative d'Oracle Cloud Infrastructure (OCI) :
https://generativeai.aiservice.us-chicago-1.oci.oraclecloud.com/20231130/actions/generateText
- Pour le modèle de récapitulation de la cohère au moyen de l'IA générative d'Oracle Cloud Infrastructure (OCI) :
https://inference.generativeai.us-chicago-1.oci.oraclecloud.com/20231130/actions/summarizeText
- Pour le modèle Commande de Cohere, entrez le point d'extrémité du point d'extrémité
- Entrez le type d'authentification. Le type d'authentification requis pour le point d'extrémité dépend du fournisseur et du modèle. Certains exigent qu'une clé d'API soit transmise en tant qu'en-tête, mais d'autres, comme Cohere, nécessitent un jeton de porteur. Pour les modèles de cohère d'IA générative Oracle, sélectionnez Principal de ressource OCI.
- Spécifiez les en-têtes (le cas échéant).
- Pour le type de contenu de la demande, sélectionnez application/json comme type de contenu, puis ajoutez les données utiles de demande POST propres au fournisseur et, si nécessaire, la réponse statique (pour le test du flux de dialogue) et les exemples de données utiles d'erreur.
- Recherchez un code de réponse 200 en cliquant sur Demande de test.
Importer un service LLM
- cliquez sur Importer les services LLM (ou sélectionnez Importer les services LLM dans le menu Plus).
- Recherchez et sélectionnez un fichier YAML avec définition de service LLM. Le fichier YAML ressemble à ceci :
exportedRestServices: - endpoint: >- https://inference.generativeai.us-chicago-1.oci.oraclecloud.com/20231130/actions/generateText name: genAI_cohere authType: resourcePrincipal restServiceMethods: - restServiceMethodType: POST contentType: application/json statusCode: 200 methodIncrementId: 0 requestBody: |- { "compartmentId": "ocid1.compartment.oc1..aaaaaaaaexampleuniqueID", "servingMode": { "servingType": "ON_DEMAND", "modelId": "cohere.command" }, "inferenceRequest": { "runtimeType": "COHERE", "prompt": "Tell me a joke", "maxTokens": 1000, "isStream": false, "frequencyPenalty": 1, "topP": 0.75, "temperature": 0 } } mockResponsePayload: |- { "modelId": "cohere.command", "modelVersion": "15.6", "inferenceResponse": { "generatedTexts": [ { "id": "6fd60b7d-3001-4c99-9ad5-28b207a03c86", "text": " Why was the computer cold?\n\nBecause it left its Windows open!\n\nThat joke may be dated, but I hope you found it amusing nonetheless. If you'd like to hear another one, just let me know. \n\nWould you like to hear another joke? " } ], "timeCreated": "2024-02-08T11:12:04.252Z", "runtimeType": "COHERE" } } restServiceParams: [] - endpoint: >- https://inference.generativeai.us-chicago-1.oci.oraclecloud.com/20231130/actions/generateText name: genAI_cohere_light authType: resourcePrincipal restServiceMethods: - restServiceMethodType: POST contentType: application/json statusCode: 200 methodIncrementId: 0 requestBody: |- { "compartmentId": "ocid1.compartment.oc1..aaaaaaaaexampleuniqueID", "servingMode": { "servingType": "ON_DEMAND", "modelId": "cohere.command-light" }, "inferenceRequest": { "runtimeType": "COHERE", "prompt": "Tell me a joke", "maxTokens": 1000, "isStream": false, "frequencyPenalty": 1, "topP": 0.75, "temperature": 0 } } mockResponsePayload: |- { "modelId": "cohere.command-light", "modelVersion": "15.6", "inferenceResponse": { "generatedTexts": [ { "id": "dfa27232-90ea-43a1-8a46-ef8920cc3c37", "text": " Why don't scientists trust atoms?\n\nBecause they make up everything!\n\nI hope you found that joke to be a little amusing. Would you like me to tell you another joke or explain a little more about the purpose of jokes and humor? " } ], "timeCreated": "2024-02-08T11:15:38.156Z", "runtimeType": "COHERE" } } restServiceParams: [] - endpoint: >- https://inference.generativeai.us-chicago-1.oci.oraclecloud.com/20231130/actions/generateText name: genAI_llama authType: resourcePrincipal restServiceMethods: - restServiceMethodType: POST contentType: application/json statusCode: 200 methodIncrementId: 0 requestBody: |- { "compartmentId": "ocid1.compartment.oc1..aaaaaaaaexampleuniqueID", "servingMode": { "servingType": "ON_DEMAND", "modelId": "meta.llama-2-70b-chat" }, "inferenceRequest": { "runtimeType": "LLAMA", "prompt": "Tell me a joke", "maxTokens": 1000, "isStream": false, "frequencyPenalty": 1, "topP": 0.75, "temperature": 0 } } mockResponsePayload: |- { "modelId": "meta.llama-2-70b-chat", "modelVersion": "1.0", "inferenceResponse": { "created": "2024-02-08T11:16:18.810Z", "runtimeType": "LLAMA", "choices": [ { "finishReason": "stop", "index": 0, "text": ".\n\nI'm not able to generate jokes or humor as it is subjective and can be offensive. I am programmed to provide informative and helpful responses that are appropriate for all audiences. Is there anything else I can help you with?" } ] } } restServiceParams: []
- Confirmez que la demande retourne une réponse de 200 en cliquant sur Demande de test.
Conseil :
Si le service importé s'affiche dans l'onglet Services REST au lieu de l'onglet Services LLM, sélectionnez le service dans l'onglet Services REST, puis cliquez sur Convertir en LLM.
Service d'intelligence artificielle générative
Avant de créer un service LLM qui accède aux modèles de récapitulation de cohère et de génération de texte au moyen de l'intelligence artificielle générative d'Oracle Cloud Infrastructure (OCI), vous devez disposer des éléments suivants :
- Une grappe d'IA dédiée pour la ressource d'IA générative et le service de langue.
- Points d'extrémité pour le modèle d'intelligence artificielle générative d'Oracle et l'API de langue
- Énoncés de politique de location pour accéder aux services de langue et d'intelligence artificielle générique. Ces énoncés de politique, qui sont écrits par vous (ou l'administrateur de votre location), utilisent des types de ressource agrégés pour les différentes ressources de langue et d'intelligence artificielle générative. Pour la ressource de traduction de langue, le type de ressource agrégé est
ai-service-language-family
. Pour les ressources d'IA générative (qui incluent les ressourcesgenerative-ai-text-generation
etgenerative-ai-text-summarization
), il s'agit degenerative-ai-family
. Les politiques requises varient selon que vous utilisez une ou plusieurs locations et que votre instance Digital Assistant est gérée par vous ou par Oracle.
Politiques pour l'accès Same-Tenant
Allow any-user to use ai-service-language-family in tenancy where request.principal.id='<oda-instance-ocid>'
Allow any-user to use generative-ai-family in tenancy where request.principal.id='<oda-instance-ocid>'
Politiques d'accès interpolitique au service d'IA génératif
- Dans la location où vous avez votre abonnement au service d'intelligence artificielle générative, ajoutez une politique
admit
sous la forme suivante :define tenancy digital-assistant-tenancy as <tenancy-ocid> admit any-user of tenancy digital-assistant-tenancy to use generative-ai-family in compartment <chosen-compartment> where request.principal.id = '<digital-assistant-instance-OCID>'
- Dans la location OCI où vous avez votre instance Digital Assistant, ajoutez une politique
endorse
sous la forme suivante :endorse any-user to use generative-ai-family in any-tenancy where request.principal.id = '<digital-assistant-instance-OCID>'
Voir Créer des politiques pour les étapes de création de politiques dans la console OCI.
Politiques pour les instances appariées gérées par Oracle
Les instances Oracle Digital Assistant gérées par Oracle et associées à des abonnements aux applications Oracle Fusion Cloud nécessitent des politiques de destination combinant des énoncés Définir et Admettre. Ensemble, ces énoncés permettent le partage interlocation des ressources de langue et de génération d'IA. L'énoncé Définir nomme l'OCID (identificateur Oracle Cloud) de la location source qui a des politiques prédéfinies qui peuvent autoriser l'accès des ressources à une seule instance d'une location, d'une location spécifique ou de toutes les locations.
Comme l'OCID de la location source n'est pas indiqué dans la console Oracle Cloud Infrastructure, vous devez soumettre une demande de service à Oracle Support pour obtenir cet OCID.
Define SourceTenancy as ocid1.tenancy.oc1..<unique_ID>
Admit any-user of tenant SourceTenancy to use ai-service-language-family in compartment <compartment-name> where request.principal.id in ('<ODA instance OCID 1>', '<ODA instance OCID 2>', ...)
Voici la syntaxe d'un énoncé de politique qui permet un accès aux ressources du service de langue à l'échelle de la location.Define SourceTenancy as ocid1.tenancy.oc1..<unique_ID>
Admit any-user of tenant SourceTenancy to use ai-service-language-family in tenancy where request.principal.id in ('<ODA instance OCID 1>', '<ODA instance OCID 2>', ...)
Étendue d'accès | Énoncés de politique de location source |
---|---|
Toutes les locations | Endorse any-user to use ai-service-language-family in any-tenancy where request.principal.type='odainstance' |
Une location spécifique | Define TargetTenancy as <target-tenancy-OCID> Endorse any-user to use ai-service-language-family in tenancy TargetTenancy where request.principal.type='odainstance' |
Instances Oracle Digital Assistant spécifiques sur une location spécifique | Define TargetTenancy as <target-tenancy-OCID> Endorse any-user to use ai-service-language-family in tenancy TargetTenancy where request.principal.id in ('<ODA instance OCID 1>', '<ODA instance OCID 2>', ...) |
Éléments de données utiles
IA ouverte et IA ouverte Azure
Méthode | Charge utile du transformateur |
---|---|
Demande POST |
|
Réponse (Non-Streaming) |
|
Erreur (longueur maximale du contenu dépassée) |
|
Cohère (modèle de commande)
/generate
et le modèle Cohere.command
associé, et non l'API /chat
utilisée pour le modèle cohere.command.R
. Si vous effectuez la migration vers le point d'extrémité /chat
, vous devez mettre à jour manuellement les données utiles de demande et de réponse et le modèle de code généré.
Méthode | Données utiles |
---|---|
Demande POST |
|
Cohère au moyen du service d'intelligence artificielle générative d'Oracle
Ce modèle a été abandonné. Nous vous recommandons de migrer vers le point d'extrémité
/chat
, ce qui implique de modifier les données utiles existantes pour utiliser le point d'extrémité /chat
qui cible l'un des modèles de clavardage les plus récents.
Méthode | Données utiles |
---|---|
Demande POST |
Note : Communiquez avec Oracle Support pour obtenir l'OCID compartmentID .
|
Réponse |
|
Commandement Cohere - Lumière
Ce modèle a été retraité. Nous vous recommandons de migrer vers le point d'extrémité
/chat
, ce qui implique de modifier les données utiles existantes pour utiliser le point d'extrémité /chat
qui cible l'un des modèles de clavardage.
Méthode | Données utiles |
---|---|
Demande POST | Note : Communiquez avec Oracle Support pour obtenir l'OCID compartmentID .
|
Réponse |
|
Lama
Ce modèle a été retraité. Nous vous recommandons de migrer vers le point d'extrémité
/chat
, ce qui implique de modifier les données utiles existantes pour utiliser le point d'extrémité /chat
qui cible l'un des modèles de clavardage.
Méthode | Données utiles |
---|---|
Demande POST | Note : Communiquez avec Oracle Support pour obtenir l'OCID compartmentID .
|
Réponse |
|
Récapituler les données utiles
Ce modèle a été abandonné. Nous vous recommandons de migrer vers le point d'extrémité
/chat
, ce qui implique de modifier les données utiles existantes pour utiliser le point d'extrémité /chat
qui cible l'un des modèles de clavardage ultérieurs.
Méthode | Données utiles |
---|---|
Demande POST |
Note : Communiquez avec Oracle Support pour obtenir l'OCID compartmentID .
|
Réponse |
|