?询问 Sage Python 客户端 v1.2.4
欢迎来到 Ask Sage 概述存储库! ?
该存储库是一个正在进行的项目吗?旨在成为示例代码 ? 和文档 ? 的集合。关于通过 Ask Sage API 与 Ask Sage 进行交互。附加内容可能包括实际步骤?在 Ask Sage 平台内,但该存储库的大部分内容将专注于利用 API 和创建小型概念验证项目。
提供的示例将涵盖与生成式人工智能相关的广泛主题,并且旨在供具有不同人工智能和编程经验水平的用户使用。目前,我们已经提供了此存储库中将涵盖的内容的想法列表,并将随着更多内容的添加而更新。
注意:只有 Ask Sage API 可供付费订阅者使用。 ??
这是社区驱动的一项工作,旨在为 Ask Sage 用户提供额外的资源和示例。
请访问 AskSage 官方网站。
如果您有兴趣为此存储库做出贡献,请参阅贡献指南以获取更多信息。
如果您有任何问题或需要帮助,请随时联系此存储库的维护人员或直接联系 Ask Sage 团队。
其他资源:
注意:此存储库中的内容可能已过时或不正确,因此请参阅官方 AskSage 文档以获取最新信息。
AskSage 是一个不可知的生成式人工智能平台,可以访问各种人工智能模型和工具。该平台旨在易于使用并集成到现有工作流程中,可以进一步定制以满足用户/组织的需求。
Ask Sage 的设计独特,具有不可知性,可以访问可用于各种任务的各种模型。一些可用的模型包括但不限于:
型号名称 | 描述 |
---|---|
Azure 开放人工智能 | 由 OpenAI 开发并托管在 Azure 平台上的尖端语言模型。 |
Azure Gov OpenAI | 由 OpenAI 开发并托管在 Azure Gov 平台上的尖端语言模型。 |
谷歌双子座专业版 | 由 Google 开发并针对各种自然语言处理任务进行优化的语言模型。 |
LLMA3 | Meta 开发的大型语言模型,擅长生成高质量文本。 |
米斯特拉尔 | Mistral 开发的强大语言模型,可以生成富有创意且连贯的文本。 |
克劳德 3 | Anthropic 开发的语言模型,专注于生成代码和编程相关文本。 |
连贯性 | 由 Cohere Technologies 开发的专门用于生成代码的语言模型。 |
OpenAI 耳语 | OpenAI 开发的一种语言模型,可实现语音转文本功能。 |
达尔-E v3 | OpenAI开发的专门用于生成图像的语言模型。 |
以下是截至 2024 年 10 月 22 日 Ask Sage 平台上可用模型的实际列表:
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 互动的主要方式有两种:
Ask Sage API 提供了一个 RESTful 接口,用于与平台上可用的模型进行交互。用户可以向 API 发送请求并接收 JSON 格式的响应。该 API 旨在易于使用并集成到现有工作流程中。
总的来说,当人们开始探索生成式人工智能的功能以及如何在现实场景中使用它时,该存储库将提供设置说明、示例和其他资源。
Ask Sage API 使用 Swagger 进行记录,它提供了有关可用端点、请求参数、响应格式和身份验证方法的详细信息。
下表显示了用户 API 中的可用端点:
端点 | 描述 |
---|---|
/get-token-with-api-key | 使用 API 密钥和电子邮件获取访问令牌 |
/获取用户登录名 | 获取您上次登录的信息(默认限制为 5 次) |
/获取用户日志 | 获取最后的提示 |
/添加数据集 | 添加新数据集 |
/分配数据集 | 分配数据集 |
/删除数据集 | 删除数据集 |
此信息用于与 Ask Sage API 进行交互。用户可以查询模型、选择/获取角色、获取数据集、训练模型等。
下表显示了服务器 API 中的可用端点:
端点 | 描述 |
---|---|
/获取模型 | 通过 Ask Sage 服务返回可用模型的列表 |
/询问 | 用于根据用户输入生成补全的主要端点 |
/query_with_file | 使用文件端点进行查询,以根据用户的输入生成补全 |
/查询插件 | 使用插件端点进行查询,以根据用户的输入生成补全 |
/执行插件 | 使用提供的内容执行插件 |
/后续问题 | 用于根据用户输入生成后续问题的端点 |
/分词器 | 用于获取字符串值标记的端点 |
/获取角色 | 获取字符串标记的端点 |
/获取数据集 | 返回可用数据集的列表 |
/获取插件 | 返回可用插件的列表 |
/ 乘火车 | 根据用户的输入训练模型 |
/文件 | 将支持的文件转换为纯文本/文本 |
Python API 客户端通过以下链接进行记录和管理:https://pypi.org/project/asksageclient/
函数名称 | 描述 |
---|---|
get_models | 从 Ask Sage 服务获取可用模型。 |
add_dataset | 添加新数据集 |
delete_dataset | 删除指定数据集 |
assign_dataset | 分配数据集 |
get_user_logs | 检索用户的所有日志 |
get_user_logins | 检索特定用户的登录信息 |
query | 与 Ask Sage API 的 /query 端点交互。 |
query_with_file | 使用文件执行查询 |
query_plugin | 使用特定插件执行查询 |
execute_plugin | 使用提供的内容执行插件 |
follow_up_questions | 与 Ask Sage API 的 /follow-up-questions 端点交互。 |
tokenizer | 与 Ask Sage API 的 /tokenizer 端点交互。 |
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 服务。 |
在示例部分,我们将提供如何使用这些端点与 Ask Sage API 交互并使用平台上可用的模型生成文本的示例。
用户可以从Ask Sage平台获取API密钥并使用它来生成访问令牌。 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
完成此设置后,用户现在可以使用 AskSageClient 对象与 Ask Sage API 进行交互。
使用 API 密钥和电子邮件地址以及端点“/get-token-with-api-key”生成访问令牌。访问令牌的有效期为 24 小时,可用于验证对 Ask Sage API 的请求。
这是一种更安全的身份验证方法,因为访问令牌仅在有限时间内有效,并且必须定期重新生成。
以下是 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 )
生成的访问令牌可用于验证接下来 24 小时内向 Ask Sage API 发出的请求。以下是如何使用访问令牌对任何 Ask Sage 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 = "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 } " )
这些示例将更侧重于如何与 Ask Sage API 交互以及期望得到的响应。此外,还将创建一些迷你项目来展示生成式人工智能的功能以及如何在现实场景中使用它。尽管此存储库专注于 Ask Sage API,但这些示例足够通用,可以应用于提供类似服务但可能具有不同端点或参数的其他平台。
注意:目前的示例更侧重于基于文本的模型,但将扩展到 LLM 与图像、音频和视频(多模式模型)等其他数据类型的交互。研究这些示例将导致更复杂的项目,并且需要更多的资源和时间来完成。
从requirements.txt
安装软件包后,您可能需要重新启动Jupyter内核才能使用更新的软件包。这可确保正确加载新安装的库。
✅ 完成了 ✅
这并不是一个真正的例子,而是更多关于使用人工智能的道德影响以及如何减轻任何潜在风险的讨论。我们非常强调用户需要接受关于人工智能如何工作的良好培训,但也让用户清楚地认识到通过 GenAI 工具生成的内容可能并不总是正确的。
✅ 完成了 ✅
此示例将介绍如何使用 Ask Sage API 端点以及高层响应中的预期内容。以下示例将展示如何在现实场景中使用端点来创建有用的应用程序、工具或服务。
?在建筑业? --> 完整版本即将推出!
此示例将介绍如何与 LLM 模型交互以及如何使用提示工程生成高质量文本以用于指导模型生成所需的输出。即时工程是一项强大且必要的技能,可用于控制语言模型的输出并生成满足特定标准或要求的文本。
?在建筑业?
在大多数情况下,LLM 模型是在包含来自各种来源的各种文本的大型数据集上进行训练的,并且不能保证与用户的特定需求相关。然而,在 Ask Sage 上,用户可以创建包含与其领域或用例相关的文本的自定义数据集,并将其与检索增强生成 (RAG) 等方法一起使用,以提高模型的性能。因此,本示例将介绍如何创建自定义数据集并将其与 LLM 模型一起使用来生成与用户需求更相关的文本。示例中将提供有关模型如何与数据集一起工作/集成的更详细信息。
?在建筑业?
当今可用的法学硕士模型数量巨大,并且随着生成式人工智能领域的更多研究的进行,该模型的数量将继续增长。本示例将介绍如何使用 Ask Sage 不可知 API 方法比较不同的 LLM 模型,并根据文本质量、连贯性、创造力等各种标准评估其性能。用户可以使用此信息来选择最适合其需求的模型,并就在其项目中使用哪个模型做出明智的决定。
要转到此部分,请单击比较 LLM 模型
?在建筑业?
这是一个独特的项目,将来可能会过时,但是,LLM 是基于文本的模型,可以根据用户提供的输入生成文本,但是如果我们想生成图表而无需手动创建它怎么办?例如,假设我们想要流程图、思维导图、甘特图或任何其他类型的图表。此示例将介绍我们如何使用基于文本的图表创建工具 mermaid.js 来根据 LLM 模型生成的文本生成图表。
要转到此部分,请单击“使用法学硕士创建图表”
?在建筑业?
能够在 Raspberry Pi 或 Jetson Nano 等边缘设备上部署 LLM 模型怎么样?此示例将介绍如何在边缘设备上部署 LLM 模型并利用 Ask Sage API 生成文本。
要转到此部分,请单击边缘设备上的 LLM 部署
?在建筑业?
我们如何评估法学硕士模型的表现并监控其随时间的进展?此示例将介绍如何创建一个仪表板来显示有关 LLM 模型的关键指标和见解。用户可以使用此仪表板来跟踪模型的性能,并就如何随着时间的推移改进模型做出明智的决策。
但首先,我们将使用 @arize-ai phoenix 开源工具创建一个仪表板,显示有关 LLM 模型的关键指标和见解。
?在建筑业?
让我们创建一个聊天机器人网络,它们可以相互通信并根据彼此的输出生成文本。此示例将介绍如何使用 LLM 模型创建聊天机器人网络并模拟聊天机器人之间的对话。用户可以使用该网络生成创意且引人入胜的文本,这些文本可用于各种应用程序、场景和建模用例。
要转到此部分,请单击 LLM Chatbot Network
在这里,我们提供了来自要求特定示例或用例的用户的附加示例列表。如果您有想要查看的特定示例或用例,请与我们联系,我们将尽力创建一个满足您需求的示例。联系我们的最佳方式是加入我们的 Discord 服务器并在那里发布您的请求 Discord - Ask Sage :
AskSage API 在某些情况下可能会返回错误,例如发出无效请求或超出速率限制时。用户应该熟悉 API 返回的错误代码和消息,并在代码中适当处理它们。
以下是使用 Ask Sage API 时需要牢记的一些最佳实践:
我们将提供额外的 pdf 文档,其中包含与 GenerativeAI (GenAI) 相关的资源。本文档将包含文章、书籍、教程、视频和其他内容的链接,这些内容可能对有兴趣了解更多有关生成式 AI 以及如何有效使用它的用户有所帮助。
我们的目标是提供全面的资源列表,涵盖与生成人工智能相关的广泛主题,包括自然语言处理、计算机视觉、强化学习等。我们还将提供涵盖生成人工智能领域常用的特定模型和工具的资源。
如果您对本文档中包含的资源有任何建议,请随时与我们联系,我们将尽力将它们添加到列表中。
快乐学习! ?
我们将提供使用生成人工智能或机器学习时需要了解的重要词汇列表。这些术语将帮助用户理解人工智能/机器学习领域使用的术语以及如何将其应用到他们的项目中。
例如,以下是使用生成式人工智能时需要了解的一些术语:
要查看完整的定义列表,请单击要了解的定义
以下是我们希望添加到 Ask Sage API 中的一些功能或增强功能:
每个项目都有一个指向示例的链接,该示例将被创建以演示可以在何处使用该功能或增强功能。
Ask Sage API 中发现的任何错误或问题应直接向 Ask Sage 团队报告。如果您在使用 API 时遇到任何问题,请联系 Ask Sage 团队寻求帮助。此外,您可以报告此存储库中的错误或问题,我们将在将它们转发给 Ask Sage 团队之前对其进行测试和验证。
该存储库已根据 MIT 许可证获得许可。有关详细信息,请参阅许可证文件。