? Спросите клиента Sage Python v1.2.4
Добро пожаловать в репозиторий обзора Ask Sage! ?
Этот репозиторий находится в стадии разработки? и представляет собой набор примеров кода и документации. о взаимодействии с Ask Sage через API Ask Sage. Дополнительный контент может включать фактические шаги? на платформе Ask Sage, но по большей части этот репозиторий будет сосредоточен на использовании API и создании мини-проектов для проверки концепции.
Предоставленные примеры будут охватывать широкий круг тем, связанных с генеративным ИИ, и будут предназначены для пользователей с разным уровнем опыта работы с ИИ и программированием. На данный момент мы предоставили список идей того, что будет отражено в этом репозитории, и он будет обновляться по мере добавления нового контента.
Примечание. Платным подписчикам доступен только API Ask Sage. ??
Это попытка сообщества предоставить дополнительные ресурсы и примеры для пользователей Ask Sage.
Посетите официальный сайт AskSage здесь.
Если вы заинтересованы в пополнении этого репозитория, дополнительную информацию см. в Руководстве по участию.
Если у вас есть какие-либо вопросы или вам нужна помощь, не стесняйтесь обращаться к сопровождающим этого репозитория или напрямую к команде Ask Sage.
Дополнительные ресурсы:
Примечание. Содержимое этого репозитория может быть устаревшим или неверным, поэтому самую актуальную информацию можно найти в официальной документации AskSage.
AskSage — это независимая платформа генеративного искусственного интеллекта, которая предоставляет доступ к широкому спектру моделей и инструментов искусственного интеллекта. Платформа спроектирована так, чтобы ее было легко использовать и интегрировать в существующие рабочие процессы, которые можно дополнительно настроить в соответствии с потребностями пользователя/организации.
Ask Sage, уникально разработанный для независимого подхода, предоставляет доступ к широкому спектру моделей, которые можно использовать для самых разных задач. Некоторые из доступных моделей включают, помимо прочего:
Название модели | Описание |
---|---|
Azure OpenAI | Передовые языковые модели, разработанные OpenAI и размещенные на платформе Azure. |
Управление Azure OpenAI | Передовые языковые модели, разработанные OpenAI и размещенные на платформе Azure Gov. |
Гугл Близнецы Про | Языковые модели, разработанные Google и оптимизированные для различных задач обработки естественного языка. |
LLMA3 | Большая языковая модель, разработанная Meta, которая превосходно генерирует высококачественный текст. |
Мистраль | Мощная языковая модель, разработанная Mistral, которая может генерировать креативный и связный текст. |
Клод 3 | Языковая модель, разработанная Anthropic и ориентированная на генерацию кода и текста, связанного с программированием. |
Согласовать | Языковая модель, разработанная компанией Cohere Technologies, которая специализируется на генерации кода. |
OpenAI Шепот | Языковая модель, разработанная OpenAI, которая обеспечивает возможности преобразования речи в текст. |
ДАЛЛ-Э v3 | Языковая модель, разработанная OpenAI, которая специализируется на создании изображений. |
Вот фактический список доступных моделей на платформе Ask Sage по состоянию на 22 октября 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' ]
Команда Ask Sage может добавить больше моделей, соответствующих потребностям пользователя. (может взиматься дополнительная плата)
Примечание. Перечисленные выше модели могут быть изменены, и в будущем могут быть добавлены новые модели.
Существует два основных способа взаимодействия с Ask Sage:
API Ask Sage предоставляет интерфейс RESTful для взаимодействия с моделями, доступными через платформу. Пользователи могут отправлять запросы к API и получать ответы в формате JSON. API разработан таким образом, чтобы его было легко использовать и интегрировать в существующие рабочие процессы.
В целом, этот репозиторий предоставит инструкции по настройке, примеры и другие ресурсы, которые помогут вам начать изучать возможности генеративного ИИ и то, как его можно использовать в реальных сценариях.
API Ask Sage документируется с использованием Swagger, который предоставляет подробную информацию о доступных конечных точках, параметрах запроса, форматах ответов и методах аутентификации.
В следующей таблице показаны доступные конечные точки в User API:
Конечная точка | Описание |
---|---|
/get-token-with-api-key | Получите токен доступа с помощью ключа API и электронной почты. |
/get-user-логины | Получите ваши последние входы в систему (по умолчанию ограничено 5) |
/get-user-logs | Получите последние подсказки |
/добавить-набор данных | Добавить новый набор данных |
/назначить-набор данных | Назначение набора данных |
/delete-datasets | Удаляет набор данных |
Эта информация используется для взаимодействия с API Ask Sage. Пользователь может запрашивать модели, выбирать/получать персонажей, получать наборы данных, обучать модели и многое другое.
В следующей таблице показаны доступные конечные точки в API сервера:
Конечная точка | Описание |
---|---|
/get-модели | Возвращает список доступных моделей через сервисы Ask Sage. |
/запрос | Основная конечная точка для генерации завершений на основе ввода пользователя. |
/query_with_file | Запрос с конечной точкой файла для создания дополнений на основе ввода пользователя. |
/query-плагин | Запрос с конечной точкой плагина для генерации дополнений на основе ввода пользователя |
/execute-плагин | Запустите плагин с предоставленным контентом |
/follow_up_questions | Конечная точка для создания дополнительных вопросов на основе ввода пользователя. |
/токенизатор | Конечная точка для получения токенов строкового значения |
/get-personas | Конечная точка для получения токенов строки |
/get-наборы данных | Возвращает список доступных наборов данных |
/get-плагины | Возвращает список доступных плагинов |
/получить-поезд | Обучает модель на основе ввода пользователя |
/файл | Преобразует поддерживаемый файл в обычный/текстовый. |
Клиент Python API документируется и управляется по следующей ссылке: https://pypi.org/project/asksageclient/.
Имя функции | Описание |
---|---|
get_models | Получите доступные модели в сервисе Ask Sage. |
add_dataset | Добавляет новый набор данных |
delete_dataset | Удаляет указанный набор данных |
assign_dataset | Назначает набор данных |
get_user_logs | Получает все журналы для пользователя |
get_user_logins | Получает информацию для входа в систему для конкретного пользователя |
query | Взаимодействуйте с конечной точкой /query API Ask Sage. |
query_with_file | Выполняет запрос с использованием файла |
query_plugin | Выполняет запрос с использованием определенного плагина |
execute_plugin | Запускает плагин с предоставленным контентом |
follow_up_questions | Взаимодействуйте с конечной точкой /follow-up-questions API Ask Sage. |
tokenizer | Взаимодействуйте с конечной точкой /tokenizer API Ask Sage. |
get_personas | Получите доступных персон из сервиса Ask Sage. |
get_datasets | Получите доступные наборы данных из сервиса Ask Sage. |
get_plugins | Получите доступные плагины в сервисе Ask Sage. |
count_monthly_tokens | Получите количество ежемесячных жетонов обучения, потраченных этим пользователем, с помощью сервиса Ask Sage. |
count_monthly_teach_tokens | Подсчитывает количество жетонов обучения, использованных за месяц. |
train | Обучите модель на основе предоставленного контента. |
train_with_file | Обучите набор данных на основе предоставленного файла. |
file | Загрузите файл в сервис Ask Sage. |
В разделе «Пример» мы предоставим примеры того, как использовать эти конечные точки для взаимодействия с API Ask Sage и генерации текста с использованием моделей, доступных на платформе.
Пользователи могут получить ключ API на платформе Ask Sage и использовать его для создания токена доступа. Ключ API — это уникальный идентификатор, который используется для аутентификации пользователя и предоставления доступа к конечным точкам API.
Перейдите к опциям меню и выберите опцию «Учетная запись и токены».
Прокрутите вниз до раздела «Ключи API» и нажмите кнопку «Создать ключ API».
Создайте новый ключ API, нажав кнопку «Создать новый ключ API». Укажите уникальное имя для ключа API и нажмите кнопку «Отправить».
Ключ API будет сгенерирован и отображен на экране. Скопируйте ключ API и сохраните его в безопасном месте.
Существует три метода аутентификации пользователя с помощью конечных точек Ask Sage:
Ключ API и адрес электронной почты можно использовать для аутентификации пользователя и предоставления доступа через клиент Ask Sage Python. Ключ API и адрес электронной почты пользователя будут включены в заголовки запроса.
Например, следующий фрагмент кода демонстрирует, как создать экземпляр класса AskSageClient и выполнить аутентификацию с помощью API Ask Sage, используя ключ API и адрес электронной почты:
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
После этой настройки пользователь теперь может взаимодействовать с API Ask Sage, используя объект AskSageClient.
Токен доступа создается с использованием ключа API и адреса электронной почты с конечной точкой «/get-token-with-api-key». Токен доступа действителен в течение 24 часов и может использоваться для аутентификации запросов к API Ask Sage.
Это более безопасный метод аутентификации, поскольку токен доступа действителен только в течение ограниченного времени и должен периодически обновляться.
Вот пример фрагмента кода на Python, который демонстрирует, как получить токен доступа, используя ваш адрес электронной почты и ключ 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 )
Сгенерированный токен доступа можно использовать для аутентификации запросов к API Ask Sage в течение следующих 24 часов. Вот пример того, как использовать токен доступа для аутентификации запроса к любой из конечных точек 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 } " )
Вместо того, чтобы генерировать токен доступа каждый раз, когда вам нужно получить доступ к API, вы можете передать статический ключ API там, где ожидается токен. Это не так безопасно, как создание токена доступа на 24 часа, но в некоторых случаях это допустимый вариант.
Примечание. Ожидаемая переменная заголовка —
x-access-tokens
, а значение — ключ API. Срок действия ключа API не ограничен, но из соображений безопасности рекомендуется периодически его восстанавливать.
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 } " )
Эти примеры будут больше сосредоточены на том, как можно взаимодействовать с API Ask Sage и чего ожидать в ответ. Кроме того, будет создано несколько мини-проектов для демонстрации возможностей генеративного искусственного интеллекта и того, как его можно использовать в реальных сценариях. Хотя этот репозиторий ориентирован на API Ask Sage, примеры будут достаточно общими, чтобы их можно было применить к другим платформам, которые предоставляют аналогичные услуги, но могут иметь другие конечные точки или параметры.
Примечание. На данный момент примеры больше ориентированы на текстовые модели, но будут расширены до взаимодействия LLM с другими типами данных, такими как изображения, аудио и видео (мультимодальные модели). Изучение этих примеров приведет к более сложным проектам и потребует больше ресурсов и времени для завершения.
После установки пакетов из requirements.txt
вам может потребоваться перезапустить ядро Jupyter, чтобы использовать обновленные пакеты. Это гарантирует правильную загрузку вновь установленных библиотек.
✅ Готово ✅
На самом деле это не пример, а скорее дискуссия об этических последствиях использования ИИ и о том, как смягчить любые потенциальные риски. Мы уделяем большое внимание тому, что пользователь должен быть хорошо обучен тому, как работает ИИ, но также даем четкое понимание того, что то, что создается с помощью инструментов GenAI, не всегда может быть правильным.
✅ Готово ✅
В этом примере будет показано, как использовать конечные точки API Ask Sage и чего ожидать от ответов на высоком уровне. Следующие примеры покажут, как конечные точки можно использовать в реальных сценариях для создания полезных приложений, инструментов или сервисов.
? В строительстве? --> Полная версия скоро появится!
В этом примере будет показано, как взаимодействовать с моделью LLM и как использовать быстрое проектирование для создания высококачественного текста, который будет использоваться в качестве руководства для модели при получении желаемого результата. Быстрое проектирование — это мощный и необходимый навык, который можно использовать для управления выводом языковой модели и создания текста, отвечающего определенным критериям или требованиям.
? В строительстве?
По большей части модели LLM обучаются на больших наборах данных, которые содержат широкий спектр текста из различных источников и не гарантируют соответствия конкретным потребностям пользователя. Однако в Ask Sage пользователи могут создавать собственные наборы данных, содержащие текст, имеющий отношение к их предметной области или варианту использования, и использовать их с такими методами, как поисково-дополненная генерация (RAG), для повышения производительности модели. Таким образом, в этом примере будет показано, как создать собственный набор данных и использовать его с моделью LLM для создания текста, более соответствующего потребностям пользователя. В примере будет предоставлена более подробная информация о том, как модель работает/интегрируется с набором данных.
? В строительстве?
Количество моделей LLM, доступных сегодня, огромно и будет продолжать расти по мере проведения новых исследований в области генеративного искусственного интеллекта. В этом примере будет показано, как сравнивать различные модели LLM с использованием независимого API-метода Ask Sage и оценивать их производительность на основе различных критериев, таких как качество текста, связность, креативность и многое другое. Пользователи могут использовать эту информацию, чтобы выбрать лучшую модель для своих нужд и принять обоснованное решение о том, какую модель использовать в своих проектах.
Чтобы перейти в этот раздел, нажмите «Сравнение моделей LLM».
? В строительстве?
Это уникальный проект, и он, вероятно, устареет в будущем, но LLM — это текстовые модели, которые генерируют текст на основе введенных пользователем данных, но что, если мы хотим сгенерировать диаграмму без необходимости создавать ее вручную? Например, предположим, что нам нужна блок-схема, интеллектуальная карта, диаграмма Ганта или диаграмма любого другого типа. В этом примере будет показано, как мы используем mermaid.js — инструмент создания текстовых диаграмм для создания диаграмм на основе текста, сгенерированного моделью LLM.
Чтобы перейти в этот раздел, нажмите «Создание диаграмм с помощью LLM».
? В строительстве?
А как насчет возможности развернуть модель LLM на периферийном устройстве, таком как Raspberry Pi или Jetson Nano? В этом примере будет показано, как развернуть модель LLM на периферийном устройстве и сгенерировать текст с помощью API Ask Sage.
Чтобы перейти в этот раздел, нажмите «Развертывание LLM на периферийном устройстве».
? В строительстве?
Как мы оцениваем эффективность модели LLM и отслеживаем ее прогресс с течением времени? В этом примере будет показано, как создать панель мониторинга, отображающую ключевые показатели и информацию о модели LLM. Пользователи могут использовать эту панель мониторинга, чтобы отслеживать производительность модели и принимать обоснованные решения о том, как ее улучшить с течением времени.
Но сначала мы воспользуемся инструментом с открытым исходным кодом @arize-ai phoenix, чтобы создать панель мониторинга, которая отображает ключевые показатели и информацию о модели LLM.
? В строительстве?
Давайте создадим сеть чат-ботов, которые смогут общаться друг с другом и генерировать текст на основе результатов друг друга. В этом примере будет показано, как создать сеть чат-ботов с использованием моделей LLM и смоделировать разговор между чат-ботами. Пользователи могут использовать эту сеть для создания креативного и привлекательного текста, который можно использовать в различных приложениях, сценариях и вариантах моделирования.
Чтобы перейти в этот раздел, нажмите Сеть чат-ботов LLM.
Здесь мы предоставляем список дополнительных примеров, предоставленных пользователями, запрашивающими конкретные примеры или варианты использования. Если у вас есть конкретный пример или вариант использования, который вы хотели бы увидеть, свяжитесь с нами, и мы сделаем все возможное, чтобы создать пример, отвечающий вашим потребностям. Лучший способ связаться с нами — присоединиться к нашему серверу Discord и разместить там свой запрос Discord — Ask Sage:
API AskSage может возвращать ошибки в определенных ситуациях, например, когда сделан неверный запрос или превышен предел скорости. Пользователи должны быть знакомы с кодами ошибок и сообщениями, возвращаемыми API, и соответствующим образом обрабатывать их в своем коде.
Вот несколько рекомендаций, которые следует учитывать при работе с API Ask Sage:
Мы предоставим дополнительные документы в формате PDF, которые будут содержать ресурсы, связанные с GenerativeAI (GenAI). Этот документ будет включать ссылки на статьи, книги, учебные пособия, видео и другой контент, который может быть полезен пользователям, которые хотят узнать больше о генеративном ИИ и о том, как его эффективно использовать.
Наша цель — предоставить полный список ресурсов, охватывающих широкий спектр тем, связанных с генеративным искусственным интеллектом, включая обработку естественного языка, компьютерное зрение, обучение с подкреплением и многое другое. Мы также включим ресурсы, охватывающие конкретные модели и инструменты, которые обычно используются в области генеративного искусственного интеллекта.
Если у вас есть какие-либо предложения по ресурсам для включения в этот документ, свяжитесь с нами, и мы сделаем все возможное, чтобы добавить их в список.
Приятного обучения! ?
Мы предоставим список словарного запаса, который важно знать при работе с генеративным искусственным интеллектом или машинным обучением. Эти термины помогут пользователям понять терминологию, используемую в области искусственного интеллекта/машинного обучения, и способы ее применения в своих проектах.
Например, вот некоторые термины, которые следует знать при работе с генеративным ИИ:
Чтобы просмотреть полный список определений, нажмите «Определения, которые нужно знать».
Вот некоторые функции или улучшения, которые мы хотели бы видеть в API Ask Sage:
Каждый элемент будет иметь ссылку на пример, который будет создан для демонстрации того, где можно использовать эту функцию или улучшение.
О любых ошибках или проблемах, обнаруженных в API Ask Sage, следует сообщать непосредственно команде Ask Sage. Если у вас возникнут какие-либо проблемы с API, обратитесь за помощью к команде Ask Sage. Кроме того, вы можете сообщать об ошибках или проблемах в этом репозитории, и мы протестируем и проверим их, прежде чем отправить их команде Ask Sage.
Этот репозиторий лицензируется по лицензии MIT. Дополнительную информацию смотрите в файле LICENSE.