? Pregúntele al cliente Sage Python v1.2.4
¡Bienvenido al repositorio de descripción general de Ask Sage! ?
¿Este repositorio es un proyecto de trabajo en progreso? y pretende ser una colección de código de muestra y documentación. sobre cómo interactuar con Ask Sage a través de la API de Ask Sage. ¿El contenido adicional puede incluir pasos reales? dentro de la plataforma Ask Sage, pero en su mayor parte este repositorio se centrará en utilizar la API y crear miniproyectos de prueba de concepto.
Los ejemplos proporcionados cubrirán una amplia gama de temas relacionados con la IA generativa y estarán diseñados para que sean accesibles a usuarios con distintos niveles de experiencia con IA y programación. Por el momento, hemos proporcionado una lista de ideas de lo que se cubrirá en este repositorio y se actualizará a medida que se agregue más contenido.
Nota: Solo la API Ask Sage está disponible para suscriptores pagos. ??
Este es un esfuerzo impulsado por la comunidad para proporcionar recursos y ejemplos adicionales para los usuarios de Ask Sage.
Visite el sitio web oficial de AskSage aquí.
Si está interesado en contribuir a este repositorio, consulte las Pautas de contribución para obtener más información.
Si tiene alguna pregunta o necesita ayuda, no dude en comunicarse con los encargados de este repositorio o directamente con el equipo de Ask Sage.
Recursos adicionales:
Nota: el contenido de este repositorio puede estar desactualizado o ser incorrecto, así que consulte la documentación oficial de AskSage para obtener la información más actualizada.
AskSage es una plataforma de IA generativa agnóstica que brinda acceso a una amplia gama de modelos y herramientas de IA. La plataforma está diseñada para ser fácil de usar e integrarse en flujos de trabajo existentes que se pueden personalizar aún más para satisfacer las necesidades del usuario/organización.
Ask Sage, diseñado exclusivamente para ser agnóstico, brinda acceso a una amplia gama de modelos que se pueden utilizar para una variedad de tareas. Algunos de los modelos disponibles incluyen, entre otros:
Nombre del modelo | Descripción |
---|---|
Azure abierto AI | Modelos de lenguaje de vanguardia desarrollados por OpenAI y alojados en la plataforma Azure. |
Gobierno de Azure OpenAI | Modelos de lenguaje de vanguardia desarrollados por OpenAI y alojados en la plataforma Azure Gov. |
Google Géminis Pro | Modelos de lenguaje desarrollados por Google y optimizados para diversas tareas de procesamiento del lenguaje natural. |
LLMA3 | Un modelo de lenguaje grande desarrollado por Meta que destaca en la generación de texto de alta calidad. |
Mistral | Un poderoso modelo de lenguaje desarrollado por Mistral que puede generar texto creativo y coherente. |
claudio 3 | Un modelo de lenguaje desarrollado por Anthropic que se centra en generar código y texto relacionado con la programación. |
Adherirse | Un modelo de lenguaje desarrollado por Cohere Technologies que se especializa en generar código. |
Susurro de OpenAI | Un modelo de lenguaje desarrollado por OpenAI que permite capacidades de conversión de voz a texto. |
DALL-E v3 | Un modelo de lenguaje desarrollado por OpenAI que se especializa en generar imágenes. |
Aquí está la lista real de modelos disponibles en la plataforma Ask Sage al 22 de octubre de 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' ]
El equipo de Ask Sage puede agregar más modelos que sean específicos de las necesidades del usuario. (pueden aplicarse costos adicionales)
Nota: Los modelos enumerados anteriormente están sujetos a cambios y es posible que se agreguen más modelos en el futuro.
Hay dos formas principales de interactuar con Ask Sage:
La API Ask Sage proporciona una interfaz RESTful para interactuar con los modelos disponibles a través de la plataforma. Los usuarios pueden enviar solicitudes a la API y recibir respuestas en formato JSON. La API está diseñada para ser fácil de usar e integrarse en los flujos de trabajo existentes.
En general, este repositorio proporcionará instrucciones de configuración, ejemplos y otros recursos a medida que uno comienza a explorar las capacidades de la IA generativa y cómo se puede utilizar en escenarios del mundo real.
La API Ask Sage está documentada mediante Swagger, que proporciona información detallada sobre los puntos finales disponibles, parámetros de solicitud, formatos de respuesta y métodos de autenticación.
La siguiente tabla muestra los puntos finales disponibles en la API de usuario:
Punto final | Descripción |
---|---|
/obtener-token-con-clave-api | Obtenga un token de acceso con clave API y correo electrónico |
/obtener-inicios-de-usuario | Obtenga sus últimos inicios de sesión (limitados a 5 de forma predeterminada) |
/obtener-registros-de-usuario | Recibe tus últimas indicaciones |
/agregar-conjunto de datos | Agregar un nuevo conjunto de datos |
/asignar-conjunto de datos | Asignar un conjunto de datos |
/eliminar-conjuntos de datos | Elimina un conjunto de datos |
Esta información se utiliza para interactuar con la API Ask Sage. El usuario puede consultar modelos, seleccionar/obtener personas, obtener conjuntos de datos, entrenar modelos y más.
La siguiente tabla muestra los puntos finales disponibles en Server API:
Punto final | Descripción |
---|---|
/obtener-modelos | Devuelve una lista de modelos disponibles a través de los servicios Ask Sage |
/consulta | Punto final principal para generar finalizaciones basadas en la entrada del usuario |
/consulta_con_archivo | Consulta con punto final de archivo para generar finalizaciones basadas en la entrada del usuario |
/complemento de consulta | Consulta con punto final del complemento para generar finalizaciones basadas en la entrada del usuario |
/ejecutar-complemento | Ejecutar un complemento con el contenido proporcionado. |
/preguntas_de_seguimiento | Punto final para generar preguntas de seguimiento basadas en la entrada del usuario |
/tokenizador | Punto final para obtener tokens de valor de cadena |
/get-personas | Punto final para obtener los tokens de la cadena |
/obtener-conjuntos de datos | Devuelve una lista de conjuntos de datos disponibles |
/obtener-complementos | Devuelve una lista de complementos disponibles |
/obtener-tren | Entrena el modelo en función de la entrada del usuario. |
/archivo | Convierte un archivo compatible a texto sin formato |
El cliente API de Python se documenta y administra a través del siguiente enlace: https://pypi.org/project/asksageclient/
Nombre de la función | Descripción |
---|---|
get_models | Obtenga los modelos disponibles en el servicio Ask Sage. |
add_dataset | Agrega un nuevo conjunto de datos |
delete_dataset | Elimina un conjunto de datos especificado |
assign_dataset | Asigna un conjunto de datos |
get_user_logs | Recupera todos los registros del usuario. |
get_user_logins | Recupera información de inicio de sesión para un usuario específico |
query | Interactuar con el punto final /query de la API Ask Sage. |
query_with_file | Ejecuta una consulta usando un archivo. |
query_plugin | Ejecuta una consulta utilizando un complemento específico. |
execute_plugin | Ejecuta un complemento con el contenido proporcionado. |
follow_up_questions | Interactúe con el punto final /follow-up-questions de la API Ask Sage. |
tokenizer | Interactuar con el punto final /tokenizer de la API Ask Sage. |
get_personas | Obtenga las personas disponibles del servicio Ask Sage. |
get_datasets | Obtenga los conjuntos de datos disponibles del servicio Ask Sage. |
get_plugins | Obtenga los complementos disponibles del servicio Ask Sage. |
count_monthly_tokens | Obtenga el recuento de tokens de capacitación mensuales gastados por este usuario desde el servicio Ask Sage. |
count_monthly_teach_tokens | Cuenta la cantidad de tokens de enseñanza utilizados en un mes. |
train | Entrene el modelo según el contenido proporcionado. |
train_with_file | Entrene el conjunto de datos según el archivo proporcionado. |
file | Sube un archivo al servicio Ask Sage. |
En la sección Ejemplo, proporcionaremos ejemplos de cómo utilizar estos puntos finales para interactuar con la API Ask Sage y generar texto utilizando los modelos disponibles en la plataforma.
Los usuarios pueden obtener una clave API de la plataforma Ask Sage y utilizarla para generar un token de acceso. La clave API es un identificador único que se utiliza para autenticar al usuario y otorgar acceso a los puntos finales de la API.
Navegue hasta las opciones del menú y seleccione la opción 'Cuenta y tokens'.
Desplácese hacia abajo hasta la sección 'Claves API' y haga clic en el botón 'Generar clave API'.
Cree una nueva clave API seleccionando el botón "Crear una nueva clave API". Proporcione un nombre único para la clave API y haga clic en el botón "Enviar".
La clave API se generará y se mostrará en la pantalla. Copie la clave API y guárdela en un lugar seguro.
Hay tres métodos en los que un usuario puede autenticarse con Ask Sage Endpoints:
La clave API y el correo electrónico se pueden utilizar para autenticar al usuario y otorgarle acceso a través del cliente Ask Sage Python. La clave API y el correo electrónico del usuario se incluirán en los encabezados de la solicitud.
Por ejemplo, el siguiente fragmento de código demuestra cómo crear una instancia de la clase AskSageClient y autenticarse con la API Ask Sage utilizando la clave API y el correo electrónico:
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
Después de esta configuración, el usuario ahora puede interactuar con la API Ask Sage utilizando el objeto AskSageClient.
Se genera un token de acceso utilizando la clave API y la dirección de correo electrónico con el punto final '/get-token-with-api-key'. El token de acceso es válido durante 24 horas y se puede utilizar para autenticar solicitudes en la API de Ask Sage.
Este es un método de autenticación más seguro ya que el token de acceso solo es válido por un tiempo limitado y debe regenerarse periódicamente.
Aquí hay un fragmento de código de muestra en Python que demuestra cómo obtener un token de acceso usando su dirección de correo electrónico y clave 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 )
El token de acceso generado se puede utilizar para autenticar solicitudes a la API de Ask Sage durante las próximas 24 horas. A continuación se muestra un ejemplo de cómo utilizar el token de acceso para autenticar una solicitud en cualquiera de los puntos finales de la API de 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 } " )
En lugar de generar un token de acceso cada vez que necesite acceder a la API, puede pasar la clave de API estática donde se espera el token. Esto no es tan seguro como generar un token de acceso de 24 horas, pero es una opción válida para algunos casos de uso.
Nota: La variable de encabezado esperada es
x-access-tokens
y el valor es la clave API. No hay límite de tiempo para la clave API, pero se recomienda regenerarla periódicamente por razones de seguridad.
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 } " )
Estos ejemplos se centrarán más en cómo se puede interactuar con la API Ask Sage y qué esperar en la respuesta. Además, se crearán algunos miniproyectos para demostrar las capacidades de la IA generativa y cómo se puede utilizar en escenarios del mundo real. Aunque este repositorio se centra en la API Ask Sage, los ejemplos serán lo suficientemente generales como para aplicarlos a otras plataformas que brindan servicios similares pero que pueden tener puntos finales o parámetros diferentes.
Nota: Los ejemplos por el momento se centran más en modelos basados en texto, pero se ampliarán a la interacción de LLM con otros tipos de datos como imágenes, audio y video (modelos multimodales). Analizar esos ejemplos conducirá a proyectos más complejos y requerirá más recursos y tiempo para completarlos.
Después de instalar paquetes desde requirements.txt
, es posible que deba reiniciar su kernel de Jupyter para usar los paquetes actualizados. Esto garantiza que las bibliotecas recién instaladas se carguen correctamente.
✅ Hecho ✅
En realidad, esto no es un ejemplo, sino más bien una discusión sobre las implicaciones éticas del uso de la IA y cómo mitigar cualquier riesgo potencial. Ponemos un fuerte énfasis en que un usuario debe estar bien capacitado sobre cómo funciona la IA, pero también brindamos una comprensión clara de que lo que se genera a través de las herramientas GenAI puede no siempre ser correcto.
✅ Hecho ✅
Este ejemplo cubrirá cómo utilizar los puntos finales de la API Ask Sage y qué esperar en las respuestas de alto nivel. Los siguientes ejemplos mostrarán cómo se pueden utilizar los puntos finales en escenarios del mundo real para crear aplicaciones, herramientas o servicios útiles.
? ¿En Construcción? --> ¡Lanzamiento completo próximamente!
Este ejemplo cubrirá cómo interactuar con un modelo LLM y cómo utilizar la ingeniería rápida para generar texto de alta calidad que se utilizará para guiar el modelo en la generación del resultado deseado. La ingeniería rápida es una habilidad poderosa y necesaria que se puede utilizar para controlar la salida de un modelo de lenguaje y generar texto que cumpla con criterios o requisitos específicos.
? ¿En Construcción?
En su mayor parte, los modelos LLM se entrenan en grandes conjuntos de datos que contienen una amplia gama de texto de diversas fuentes y no se garantiza que sean relevantes para las necesidades específicas del usuario. Sin embargo, en Ask Sage, los usuarios pueden crear conjuntos de datos personalizados que contengan texto relevante para su dominio o caso de uso y utilizarlo con métodos como recuperación-generación aumentada (RAG) para mejorar el rendimiento del modelo. Por lo tanto, este ejemplo cubrirá cómo crear un conjunto de datos personalizado y usarlo con un modelo LLM para generar texto que sea más relevante para las necesidades del usuario. En el ejemplo se proporcionará información más detallada sobre cómo funciona/se integra el modelo con el conjunto de datos.
? ¿En Construcción?
La cantidad de modelos LLM disponibles en la actualidad es enorme y seguirá creciendo a medida que se realicen más investigaciones en el campo de la IA generativa. Este ejemplo cubrirá cómo comparar diferentes modelos LLM utilizando el método API independiente de Ask Sage y evaluará su rendimiento en función de varios criterios, como la calidad del texto, la coherencia, la creatividad y más. Los usuarios pueden utilizar esta información para seleccionar el mejor modelo para sus necesidades y tomar decisiones informadas sobre qué modelo utilizar en sus proyectos.
Para ir a esta sección, haga clic en Comparar modelos LLM
? ¿En Construcción?
Este es un proyecto único y probablemente quedará obsoleto en el futuro, pero los LLM son modelos basados en texto que generan texto en función de la entrada proporcionada por el usuario, pero ¿qué pasaría si quisiéramos generar un diagrama sin tener que crearlo manualmente? Por ejemplo, digamos que queremos un diagrama de flujo, un mapa mental, un diagrama de Gantt o cualquier otro tipo de diagrama. Este ejemplo cubrirá cómo usamos mermaid.js, una herramienta de creación de diagramas basada en texto, para generar diagramas basados en el texto generado por el modelo LLM.
Para ir a esta sección, haga clic en Creación de diagramas con LLM
? ¿En Construcción?
¿Qué tal poder implementar un modelo LLM en un dispositivo periférico como Raspberry Pi o Jetson Nano? Este ejemplo cubrirá cómo implementar un modelo LLM en un dispositivo perimetral y generar texto utilizando la API Ask Sage.
Para ir a esta sección, haga clic en Implementación de LLM en un dispositivo perimetral
? ¿En Construcción?
¿Cómo evaluamos el desempeño de un modelo LLM y monitoreamos su progreso a lo largo del tiempo? Este ejemplo cubrirá cómo crear un panel que muestre métricas e información clave sobre el modelo LLM. Los usuarios pueden utilizar este panel para realizar un seguimiento del rendimiento del modelo y tomar decisiones informadas sobre cómo mejorarlo con el tiempo.
Pero primero, usaremos la herramienta de código abierto @arize-ai phoenix para crear un panel que muestre métricas clave e información sobre el modelo LLM.
? ¿En Construcción?
Creemos una red de chatbots que puedan comunicarse entre sí y generar texto basado en la producción de cada uno. Este ejemplo cubrirá cómo crear una red de chatbot utilizando modelos LLM y simulará una conversación entre los chatbots. Los usuarios pueden utilizar esta red para generar texto creativo y atractivo que se puede utilizar en una variedad de aplicaciones, escenarios y casos de uso de modelado.
Para ir a esta sección, haga clic en LLM Chatbot Network
Aquí proporcionamos una lista de ejemplos adicionales que provienen de usuarios que solicitan ejemplos o casos de uso específicos. Si tiene un ejemplo o caso de uso específico que le gustaría ver, comuníquese con nosotros y haremos todo lo posible para crear un ejemplo que satisfaga sus necesidades. La mejor manera de comunicarse con nosotros es uniéndose a nuestro servidor de Discord y publicando su solicitud allí Discord - Pregúntele a Sage:
La API AskSage puede devolver errores en determinadas situaciones, como cuando se realiza una solicitud no válida o cuando se excede el límite de velocidad. Los usuarios deben estar familiarizados con los códigos de error y los mensajes devueltos por la API y manejarlos adecuadamente en su código.
Estas son algunas de las mejores prácticas a tener en cuenta al trabajar con la API Ask Sage:
Proporcionaremos documentos pdf adicionales que contendrán recursos relacionados con GenerativeAI (GenAI). Este documento incluirá enlaces a artículos, libros, tutoriales, videos y otro contenido que puede ser útil para los usuarios interesados en aprender más sobre la IA generativa y cómo usarla de manera efectiva.
Nuestro objetivo es proporcionar una lista completa de recursos que cubran una amplia gama de temas relacionados con la IA generativa, incluido el procesamiento del lenguaje natural, la visión por computadora, el aprendizaje por refuerzo y más. También incluiremos recursos que cubran modelos y herramientas específicos que se utilizan comúnmente en el campo de la IA generativa.
Si tiene alguna sugerencia sobre recursos para incluir en este documento, no dude en comunicarse con nosotros y haremos todo lo posible para agregarlos a la lista.
¡Feliz aprendizaje! ?
Proporcionaremos una lista de vocabulario que es importante conocer cuando se trabaja con IA generativa o aprendizaje automático. Estos términos ayudarán a los usuarios a comprender la terminología utilizada en el campo de la IA/aprendizaje automático y cómo aplicarla en sus proyectos.
Por ejemplo, aquí hay algunos términos que debe conocer al trabajar con IA generativa:
Para ver la lista completa de definiciones, haga clic en Definiciones que debe conocer
A continuación se muestran algunas características o mejoras que nos gustaría que se agregaran a la API de Ask Sage:
Cada elemento tendrá un enlace al ejemplo que se creará para demostrar dónde se puede utilizar la característica o mejora.
Cualquier error o problema encontrado en la API de Ask Sage debe informarse directamente al equipo de Ask Sage. Si tiene algún problema con la API, comuníquese con el equipo de Ask Sage para obtener ayuda. Además, puede informar errores o problemas en este repositorio y los probaremos y verificaremos antes de reenviarlos al equipo de Ask Sage.
Este repositorio tiene la licencia MIT. Consulte el archivo de LICENCIA para obtener más información.