? Demandez à Sage Python Client v1.2.4
Bienvenue dans le référentiel Ask Sage Overview ! ?
Ce référentiel est un projet en cours de réalisation ? et est destiné à être une collection d'exemples de code ? et de documentation ? sur l'interaction avec Ask Sage via l'API Ask Sage. Le contenu supplémentaire peut inclure des étapes réelles ? au sein de la plateforme Ask Sage, mais pour l'essentiel, ce référentiel se concentrera sur l'utilisation de l'API et la création de mini projets de validation de principe.
Les exemples fournis couvriront un large éventail de sujets liés à l'IA générative et seront conçus pour être accessibles aux utilisateurs ayant différents niveaux d'expérience en IA et en programmation. Pour le moment, nous avons fourni une liste d'idées sur ce qui sera couvert dans ce référentiel et sera mise à jour au fur et à mesure que du contenu sera ajouté.
Remarque : Seule l'API Ask Sage est disponible pour les abonnés payants. ??
Il s'agit d'un effort communautaire visant à fournir des ressources et des exemples supplémentaires aux utilisateurs d'Ask Sage.
Visitez le site Web officiel d'AskSage ici.
Si vous souhaitez contribuer à ce référentiel, veuillez consulter les directives de contribution pour plus d'informations.
Si vous avez des questions ou avez besoin d'aide, n'hésitez pas à contacter directement les responsables de ce référentiel ou l'équipe Ask Sage.
Ressources supplémentaires :
Remarque : le contenu de ce référentiel peut être obsolète ou incorrect, veuillez donc vous référer à la documentation officielle d'AskSage pour obtenir les informations les plus récentes.
AskSage est une plateforme d'IA générative agnostique qui donne accès à une large gamme de modèles et d'outils d'IA. La plateforme est conçue pour être facile à utiliser et à intégrer dans les flux de travail existants qui peuvent être davantage personnalisés pour répondre aux besoins de l'utilisateur/de l'organisation.
Conçu de manière unique pour être agnostique, Ask Sage donne accès à une large gamme de modèles qui peuvent être utilisés pour une variété de tâches. Certains des modèles disponibles incluent, sans toutefois s'y limiter :
Nom du modèle | Description |
---|---|
Azure OpenAI | Modèles de langage de pointe développés par OpenAI et hébergés sur la plateforme Azure. |
Azure Gouvernement OpenAI | Modèles de langage de pointe développés par OpenAI et hébergés sur la plateforme Azure Gov. |
Google Gémeaux Pro | Modèles de langage développés par Google et optimisés pour diverses tâches de traitement du langage naturel. |
LLMA3 | Un grand modèle de langage développé par Meta qui excelle dans la génération de texte de haute qualité. |
Mistral | Un modèle de langage puissant développé par Mistral capable de générer un texte créatif et cohérent. |
Claude 3 | Un modèle de langage développé par Anthropic qui se concentre sur la génération de code et de texte lié à la programmation. |
Adhérer | Un modèle de langage développé par Cohere Technologies spécialisé dans la génération de code. |
Murmure OpenAI | Un modèle de langage développé par OpenAI qui permet des capacités de synthèse vocale. |
DALL-E v3 | Un modèle de langage développé par OpenAI spécialisé dans la génération d'images. |
Voici la liste actuelle des modèles disponibles sur la plateforme Ask Sage au 22 octobre 2024 :
models = [ 'aws-bedrock-titan' , 'llma3' , 'claude2' , 'claude-3-opus' , 'claude-3-sonnet' , 'claude-35-sonnet' , 'cohere' , 'mistral-large' , 'gpt-gov' , 'gpt4-gov' , 'gpt' , 'gpt4' , 'gpt4-32k' , 'gpt35-16k' , 'gpt4-vision' , 'gpt-4o' , 'gpt-4o-mini' , 'dall-e-2' , 'dall-e-3' , 'google-bison' , 'google-gemini-pro' , 'gpt-4o-gov' , 'groq-70b' , 'gpt-o1' , 'gpt-o1-mini' , 'xai-grok' ]
D'autres modèles peuvent être ajoutés par l'équipe Ask Sage qui sont spécifiques aux besoins d'un utilisateur. (des frais supplémentaires peuvent s'appliquer)
Remarque : Les modèles répertoriés ci-dessus sont susceptibles d'être modifiés et d'autres modèles pourraient être ajoutés à l'avenir.
Il existe deux manières principales d'interagir avec Ask Sage :
L'API Ask Sage fournit une interface RESTful pour interagir avec les modèles disponibles via la plateforme. Les utilisateurs peuvent envoyer des requêtes à l'API et recevoir des réponses au format JSON. L'API est conçue pour être facile à utiliser et à intégrer dans les flux de travail existants.
Dans l'ensemble, ce référentiel fournira des instructions de configuration, des exemples et d'autres ressources à mesure que l'on commence à explorer les capacités de l'IA générative et comment elle peut être utilisée dans des scénarios du monde réel.
L'API Ask Sage est documentée à l'aide de Swagger, qui fournit des informations détaillées sur les points de terminaison disponibles, les paramètres de requête, les formats de réponse et les méthodes d'authentification.
Le tableau suivant présente les points de terminaison disponibles dans l'API utilisateur :
Point de terminaison | Description |
---|---|
/get-token-with-api-key | Obtenez un jeton d'accès avec la clé API et l'e-mail |
/get-user-logins | Récupérez vos dernières connexions (limitées à 5 par défaut) |
/get-user-logs | Obtenez vos dernières invites |
/ajouter-un ensemble de données | Ajouter un nouvel ensemble de données |
/assign-dataset | Attribuer un ensemble de données |
/supprimer-ensembles de données | Supprime un ensemble de données |
Ces informations sont utilisées pour interagir avec l'API Ask Sage. L'utilisateur peut interroger des modèles, sélectionner/obtenir des personnages, obtenir des ensembles de données, former des modèles et bien plus encore.
Le tableau suivant présente les points de terminaison disponibles dans l'API du serveur :
Point de terminaison | Description |
---|---|
/get-models | Renvoie une liste des modèles disponibles via les services Ask Sage |
/requête | Point de terminaison principal pour générer des complétions en fonction de la saisie de l'utilisateur |
/query_with_file | Requête avec point de terminaison de fichier pour générer des complétions en fonction de la saisie de l'utilisateur |
/plugin-de-requête | Requête avec le point de terminaison du plugin pour générer des complétions en fonction de la saisie de l'utilisateur |
/exécuter-plugin | Exécuter un plugin avec le contenu fourni |
/follow_up_questions | Point de terminaison pour générer des questions de suivi en fonction de la saisie de l'utilisateur |
/tokenizer | Point de terminaison pour obtenir des jetons de valeur de chaîne |
/get-personas | Point de terminaison pour obtenir les jetons de la chaîne |
/get-datasets | Renvoie une liste des ensembles de données disponibles |
/get-plugins | Renvoie une liste des plugins disponibles |
/prendre le train | Entraîne le modèle en fonction de la saisie de l'utilisateur |
/déposer | Convertit un fichier pris en charge en brut/texte |
Le client API Python est documenté et géré via le lien suivant : https://pypi.org/project/asksageclient/
Nom de la fonction | Description |
---|---|
get_models | Obtenez les modèles disponibles auprès du service Ask Sage. |
add_dataset | Ajoute un nouvel ensemble de données |
delete_dataset | Supprime un ensemble de données spécifié |
assign_dataset | Attribue un ensemble de données |
get_user_logs | Récupère tous les journaux pour l'utilisateur |
get_user_logins | Récupère les informations de connexion pour un utilisateur spécifique |
query | Interagissez avec le point de terminaison /query de l’API Ask Sage. |
query_with_file | Exécute une requête à l'aide d'un fichier |
query_plugin | Exécute une requête à l'aide d'un plugin spécifique |
execute_plugin | Exécute un plugin avec le contenu fourni |
follow_up_questions | Interagissez avec le point de terminaison /follow-up-questions de l’API Ask Sage. |
tokenizer | Interagissez avec le point de terminaison /tokenizer de l’API Ask Sage. |
get_personas | Obtenez les personnages disponibles auprès du service Ask Sage. |
get_datasets | Obtenez les ensembles de données disponibles auprès du service Ask Sage. |
get_plugins | Obtenez les plugins disponibles sur le service Ask Sage. |
count_monthly_tokens | Obtenez le nombre de jetons de formation mensuels dépensés pour cet utilisateur à partir du service Ask Sage. |
count_monthly_teach_tokens | Compte le nombre de jetons d'apprentissage utilisés au cours d'un mois |
train | Entraînez le modèle en fonction du contenu fourni. |
train_with_file | Entraînez l'ensemble de données en fonction du fichier fourni. |
file | Téléchargez un fichier sur le service Ask Sage. |
Dans la section Exemple, nous fournirons des exemples de la façon d'utiliser ces points de terminaison pour interagir avec l'API Ask Sage et générer du texte à l'aide des modèles disponibles sur la plateforme.
Les utilisateurs peuvent obtenir une clé API depuis la plateforme Ask Sage et l'utiliser pour générer un jeton d'accès. La clé API est un identifiant unique utilisé pour authentifier l'utilisateur et accorder l'accès aux points de terminaison de l'API.
Accédez aux options du menu et sélectionnez l'option « Compte et jetons ».
Faites défiler jusqu'à la section « Clés API » et cliquez sur le bouton « Générer une clé API ».
Créez une nouvelle clé API en sélectionnant le bouton « Créer une nouvelle clé API ». Fournissez un nom unique pour la clé API et cliquez sur le bouton « Soumettre ».
La clé API sera générée et affichée à l'écran. Copiez la clé API et stockez-la dans un emplacement sécurisé.
Il existe trois méthodes auprès desquelles un utilisateur peut s'authentifier auprès des points de terminaison Ask Sage :
La clé API et l'e-mail peuvent être utilisés pour authentifier l'utilisateur et accorder l'accès via le client Python Ask Sage. La clé API et l'e-mail de l'utilisateur seront inclus dans les en-têtes de demande.
Par exemple, l'extrait de code suivant montre comment créer une instance de la classe AskSageClient et s'authentifier auprès de l'API Ask Sage à l'aide de la clé API et de l'e-mail :
import json # Import the json module to work with JSON data
import requests # Import the requests library to send HTTP requests
from asksageclient import AskSageClient # Import the AskSageClient class from the asksageclient module
# Function to load credentials from a JSON file
def load_credentials ( filename ):
try :
with open ( filename ) as file :
return json . load ( file )
except FileNotFoundError :
raise FileNotFoundError ( "The credentials file was not found." )
except json . JSONDecodeError :
raise ValueError ( "Failed to decode JSON from the credentials file." )
# Load the credentials
credentials = load_credentials ( '../../credentials.json' )
# Extract the API key, and email from the credentials to be used in the API request
api_key = credentials [ 'credentials' ][ 'api_key' ]
email = credentials [ 'credentials' ][ 'Ask_sage_user_info' ][ 'username' ]
"""
class AskSageClient(
email: email, # The email address of the user
api_key: api_key, # The API key for the Ask Sage API, which can be obtained from the Ask Sage website
user_base_url: str = 'https://api.asksage.ai/user', # The base URL for the user API
server_base_url: str = 'https://api.asksage.ai/server' # The base URL for the server API
)
"""
ask_sage_client = AskSageClient ( email , api_key ) # Create an instance of the AskSageClient class with the email and api_key
Suite à cette configuration, l'utilisateur peut désormais interagir avec l'API Ask Sage à l'aide de l'objet AskSageClient.
Un jeton d'accès est généré à l'aide de la clé API et de l'adresse e-mail avec le point de terminaison « /get-token-with-api-key ». Le jeton d'accès est valable 24 heures et peut être utilisé pour authentifier les demandes adressées à l'API Ask Sage.
Il s'agit d'une méthode d'authentification plus sécurisée car le jeton d'accès n'est valable que pour une durée limitée et doit être régénéré périodiquement.
Voici un exemple d'extrait de code en Python qui montre comment obtenir un jeton d'accès à l'aide de votre adresse e-mail et de votre clé API :
import requests
# Define the endpoint URL
url = "https://api.asksage.ai/user/get-token-with-api-key"
# Define the payload with the user's email and API key
payload = {
"email" : "your_email@your_domain.com" ,
"api_key" : "sdfsdfsfr23456789" # Your API key generated from the Ask Sage platform
}
# Set the headers, if required (e.g., Content-Type)
headers = {
"Content-Type" : "application/json"
}
# Make the POST request
response = requests . post ( url , json = payload , headers = headers )
# Check if the request was successful
if response . status_code == 200 :
# Parse the JSON response
data = response . json ()
# raw response
print ( data )
# Extract the access token only from the response
access_token = data [ 'response' ][ 'access_token' ]
print ( access_token )
Le jeton d'accès généré peut être utilisé pour authentifier les demandes adressées à l'API Ask Sage pour les prochaines 24 heures. Voici un exemple d'utilisation du jeton d'accès pour authentifier une requête auprès de l'un des points de terminaison de l'API Ask Sage :
import requests
# Define the access token obtained from the previous request - Note: You would want to store this securely and not hardcode it in your script/file.
access_token = "fghjkl4567890" # Replace with the actual access token
# Define the endpoint URL
url = "https://api.asksage.ai/user/get-user-logins" # Replace with the actual base URL of the API
# Define the payload with the limit parameter
payload = {
"limit" : 1 # Replace with the desired limit (max is 100)
}
# Set the headers, including the Authorization header with the Bearer token
headers = {
"x-access-tokens" : access_token ,
"Content-Type" : "application/json"
}
# Make the POST request
response = requests . post ( url , json = payload , headers = headers )
# Check if the request was successful
if response . status_code == 200 :
# Parse the JSON response
data = response . json ()
print ( "User Logins:" , data )
else :
print ( f"Failed to get user logins. Status code: { response . status_code } " )
print ( f"Response: { response . text } " )
Au lieu de générer un jeton d'accès à chaque fois que vous devez accéder à l'API, vous pouvez transmettre la clé API statique à l'endroit où le jeton est attendu. Ce n'est pas aussi sécurisé que de générer un jeton d'accès 24 heures sur 24, mais c'est une option valable pour certains cas d'utilisation.
Remarque : La variable d'en-tête attendue est
x-access-tokens
et la valeur est la clé API. Il n'y a pas de limite de durée sur la clé API, mais il est recommandé de la régénérer périodiquement pour des raisons de sécurité.
import requests
# Define the access token obtained from the previous request - Note: You would want to store this securely and not hardcode it in your script/file.
access_token = api_key #
# Define the endpoint URL
url = "https://api.asksage.ai/user/get-user-logins" # Replace with the actual base URL of the API
# Define the payload with the limit parameter
payload = {
"limit" : 1 # Replace with the desired limit (max is 100)
}
# Set the headers, including the Authorization header with the Bearer token
headers = {
"x-access-tokens" : access_token ,
"Content-Type" : "application/json"
}
# Make the POST request
response = requests . post ( url , json = payload , headers = headers )
# Check if the request was successful
if response . status_code == 200 :
# Parse the JSON response
data = response . json ()
print ( "User Logins:" , data )
else :
print ( f"Failed to get user logins. Status code: { response . status_code } " )
print ( f"Response: { response . text } " )
Ces exemples seront davantage axés sur la manière dont on peut interagir avec l'API Ask Sage et sur ce à quoi s'attendre dans la réponse. De plus, certains mini-projets seront créés pour démontrer les capacités de l’IA générative et comment elle peut être utilisée dans des scénarios réels. Bien que ce référentiel se concentre sur l'API Ask Sage, les exemples seront suffisamment généraux pour être appliqués à d'autres plates-formes fournissant des services similaires mais pouvant avoir des points de terminaison ou des paramètres différents.
Remarque : Pour le moment, les exemples sont davantage axés sur les modèles basés sur du texte, mais seront étendus à l'interaction des LLM avec d'autres types de données tels que les images, l'audio et la vidéo (modèles multimodaux). Entrer dans ces exemples mènera à des projets plus complexes et nécessitera plus de ressources et de temps pour les réaliser.
Après avoir installé les packages à partir de requirements.txt
, vous devrez peut-être redémarrer votre noyau Jupyter pour utiliser les packages mis à jour. Cela garantit que les bibliothèques nouvellement installées sont chargées correctement.
✅ Terminé ✅
Il ne s’agit pas vraiment d’un exemple mais plutôt d’une discussion sur les implications éthiques de l’utilisation de l’IA et sur la manière d’atténuer les risques potentiels. Nous insistons fortement sur le fait qu'un utilisateur doit être bien formé sur le fonctionnement de l'IA, mais nous devons également comprendre clairement que ce qui est généré via les outils GenAI n'est pas toujours correct.
✅ Terminé ✅
Cet exemple expliquera comment utiliser les points de terminaison de l'API Ask Sage et à quoi s'attendre dans les réponses à un niveau élevé. Les exemples suivants montreront comment les points de terminaison peuvent être utilisés dans des scénarios réels pour créer des applications, des outils ou des services utiles.
? Dans le bâtiment ? --> Sortie complète à venir !
Cet exemple expliquera comment interagir avec un modèle LLM et comment utiliser l'ingénierie rapide pour générer un texte de haute qualité à utiliser pour guider le modèle dans la génération du résultat souhaité. L'ingénierie rapide est une compétence puissante et nécessaire qui peut être utilisée pour contrôler la sortie d'un modèle de langage et générer un texte répondant à des critères ou à des exigences spécifiques.
? Dans le bâtiment ?
Pour la plupart, les modèles LLM sont formés sur de grands ensembles de données contenant un large éventail de textes provenant de diverses sources et il n'est pas garanti qu'ils soient pertinents par rapport aux besoins spécifiques de l'utilisateur. Cependant, sur Ask Sage, les utilisateurs peuvent créer des ensembles de données personnalisés contenant du texte pertinent pour leur domaine ou cas d'utilisation et les utiliser avec des méthodes telles que la génération augmentée par récupération (RAG) pour améliorer les performances du modèle. Ainsi, cet exemple expliquera comment créer un ensemble de données personnalisé et l'utiliser avec un modèle LLM pour générer un texte plus adapté aux besoins de l'utilisateur. Des informations plus détaillées seront fournies dans l'exemple sur la façon dont le modèle fonctionne/s'intègre à l'ensemble de données.
? Dans le bâtiment ?
Le nombre de modèles LLM disponibles aujourd’hui est vaste et continuera de croître à mesure que de nouvelles recherches seront effectuées dans le domaine de l’IA générative. Cet exemple expliquera comment comparer différents modèles LLM à l'aide de la méthode API agnostique Ask Sage et évaluer leurs performances en fonction de divers critères tels que la qualité du texte, la cohérence, la créativité, etc. Les utilisateurs peuvent utiliser ces informations pour sélectionner le modèle le mieux adapté à leurs besoins et prendre des décisions éclairées sur le modèle à utiliser dans leurs projets.
Pour accéder à cette section, cliquez sur Comparaison des modèles LLM
? Dans le bâtiment ?
Il s'agit d'un projet unique et sera probablement obsolète à l'avenir, mais les LLM sont des modèles basés sur du texte qui génèrent du texte en fonction des entrées fournies par l'utilisateur, mais que se passerait-il si nous voulions générer un diagramme sans avoir à le créer manuellement ? Par exemple, disons que nous voulions un organigramme, une carte mentale, un diagramme de Gantt ou tout autre type de diagramme. Cet exemple expliquera comment nous utilisons mermaid.js, un outil de création de diagrammes basé sur du texte, pour générer des diagrammes basés sur le texte généré par le modèle LLM.
Pour accéder à cette section, cliquez sur Création de diagramme avec LLM.
? Dans le bâtiment ?
Que diriez-vous de pouvoir déployer un modèle LLM sur un appareil Edge comme un Raspberry Pi ou un Jetson Nano ? Cet exemple expliquera comment déployer un modèle LLM sur un appareil Edge et générer du texte à l'aide de l'API Ask Sage.
Pour accéder à cette section, cliquez sur Déploiement LLM sur un appareil Edge.
? Dans le bâtiment ?
Comment évaluer les performances d’un modèle LLM et suivre sa progression au fil du temps ? Cet exemple expliquera comment créer un tableau de bord qui affiche des mesures et des informations clés sur le modèle LLM. Les utilisateurs peuvent utiliser ce tableau de bord pour suivre les performances du modèle et prendre des décisions éclairées sur la manière de l'améliorer au fil du temps.
Mais d'abord, nous utiliserons l'outil open source @arize-ai phoenix pour créer un tableau de bord qui affiche les mesures et informations clés sur le modèle LLM.
? Dans le bâtiment ?
Créons un réseau de chatbots capables de communiquer entre eux et de générer du texte en fonction des résultats de chacun. Cet exemple expliquera comment créer un réseau de chatbots à l'aide de modèles LLM et simuler une conversation entre les chatbots. Les utilisateurs peuvent utiliser ce réseau pour générer du texte créatif et attrayant qui peut être utilisé dans diverses applications, scénarios et cas d'utilisation de modélisation.
Pour accéder à cette section, cliquez sur LLM Chatbot Network
Nous fournissons ici une liste d'exemples supplémentaires provenant d'utilisateurs demandant des exemples ou des cas d'utilisation spécifiques. Si vous avez un exemple ou un cas d'utilisation spécifique que vous aimeriez voir, veuillez nous contacter et nous ferons de notre mieux pour créer un exemple qui répond à vos besoins. La meilleure façon de nous contacter est de rejoindre notre serveur Discord et d'y publier votre demande Discord - Ask Sage :
L'API AskSage peut renvoyer des erreurs dans certaines situations, par exemple lorsqu'une demande non valide est effectuée ou lorsque la limite de débit est dépassée. Les utilisateurs doivent se familiariser avec les codes d'erreur et les messages renvoyés par l'API et les gérer de manière appropriée dans leur code.
Voici quelques bonnes pratiques à garder à l’esprit lorsque vous travaillez avec l’API Ask Sage :
Nous fournirons des documents PDF supplémentaires qui contiendront des ressources liées à GenerativeAI (GenAI). Ce document comprendra des liens vers des articles, des livres, des didacticiels, des vidéos et d'autres contenus pouvant être utiles aux utilisateurs souhaitant en savoir plus sur l'IA générative et sur la façon de l'utiliser efficacement.
Notre objectif est de fournir une liste complète de ressources couvrant un large éventail de sujets liés à l'IA générative, notamment le traitement du langage naturel, la vision par ordinateur, l'apprentissage par renforcement, etc. Nous inclurons également des ressources qui couvrent des modèles et des outils spécifiques couramment utilisés dans le domaine de l'IA générative.
Si vous avez des suggestions de ressources à inclure dans ce document, n'hésitez pas à nous contacter et nous ferons de mon mieux pour les ajouter à la liste.
Bon apprentissage ! ?
Nous fournirons une liste de vocabulaire qu'il est important de connaître lorsque l'on travaille avec l'IA générative ou l'apprentissage automatique. Ces termes aideront les utilisateurs à comprendre la terminologie utilisée dans le domaine de l'IA/Machine Learning et comment l'appliquer dans leurs projets.
Par exemple, voici quelques termes à connaître lorsque vous travaillez avec l'IA générative :
Pour afficher la liste complète des définitions, cliquez sur Définitions à connaître.
Voici quelques fonctionnalités ou améliorations que nous aimerions voir ajoutées à l'API Ask Sage :
Chaque élément aura un lien vers l'exemple qui sera créé pour montrer où la fonctionnalité ou l'amélioration peut être utilisée.
Tout bug ou problème trouvé dans l’API Ask Sage doit être signalé directement à l’équipe Ask Sage. Si vous rencontrez des problèmes avec l'API, veuillez contacter l'équipe Ask Sage pour obtenir de l'aide. De plus, vous pouvez signaler des bugs ou des problèmes dans ce référentiel et nous les testerons et les vérifierons avant de les transmettre à l'équipe Ask Sage.
Ce référentiel est sous licence MIT. Voir le fichier LICENSE pour plus d'informations.