? Sage Python クライアント v1.2.4 に質問する
Ask Sage 概要リポジトリへようこそ! ?
このリポジトリは進行中のプロジェクトですか?サンプル コード ? とドキュメント ? のコレクションであることを目的としています。 Ask Sage API を介した Ask Sage との対話について。追加コンテンツには実際の手順が含まれる場合があります。 Ask Sage プラットフォーム内にありますが、ほとんどの場合、このリポジトリは API の利用とミニ概念実証プロジェクトの作成に焦点を当てます。
提供される例は、生成 AI に関連する幅広いトピックをカバーしており、AI とプログラミングのさまざまなレベルの経験を持つユーザーがアクセスできるように設計されています。現時点では、このリポジトリで取り上げられる内容のアイデアのリストが提供されており、コンテンツが追加されるたびに更新されます。
注: 有料サブスクライバーが利用できるのは、Ask Sage API のみです。 ??
これは、Ask Sage のユーザーに追加のリソースと例を提供するコミュニティ主導の取り組みです。
AskSageの公式ウェブサイトはこちらからご覧ください。
このリポジトリに貢献することに興味がある場合は、詳細については貢献ガイドラインを参照してください。
ご質問がある場合やサポートが必要な場合は、お気軽にこのリポジトリの管理者または Ask Sage チームに直接お問い合わせください。
追加のリソース:
注: このリポジトリのコンテンツは古いか間違っている可能性があるため、最新情報については公式の AskSage ドキュメントを参照してください。
AskSage は、幅広い AI モデルとツールへのアクセスを提供する、不可知論的な生成 AI プラットフォームです。このプラットフォームは使いやすく、既存のワークフローに統合できるように設計されており、ユーザーや組織のニーズに合わせてさらにカスタマイズできます。
Ask Sage は、依存しないように独自に設計されており、さまざまなタスクに使用できる幅広いモデルへのアクセスを提供します。利用可能なモデルには次のようなものがありますが、これらに限定されません。
モデル名 | 説明 |
---|---|
Azure OpenAI | OpenAI によって開発され、Azure プラットフォームでホストされる最先端の言語モデル。 |
Azure Gov OpenAI | OpenAI によって開発され、Azure Gov プラットフォームでホストされる最先端の言語モデル。 |
Google ジェミニ プロ | Google によって開発され、さまざまな自然言語処理タスク向けに最適化された言語モデル。 |
LLMA3 | Meta によって開発された大規模な言語モデルで、高品質のテキストの生成に優れています。 |
ミストラル | ミストラルによって開発された強力な言語モデルで、創造的で一貫したテキストを生成できます。 |
クロード3 | Anthropic によって開発された言語モデルで、コードとプログラミング関連のテキストの生成に重点を置いています。 |
コヒア | コード生成に特化した Cohere Technologies によって開発された言語モデル。 |
OpenAI ウィスパー | OpenAI によって開発された言語モデル。音声からテキストへの機能を可能にします。 |
ダルイー 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 と対話するには、主に 2 つの方法があります。
Ask Sage API は、プラットフォームを通じて利用可能なモデルと対話するための RESTful インターフェイスを提供します。ユーザーは API にリクエストを送信し、JSON 形式でレスポンスを受信できます。 API は使いやすく、既存のワークフローに統合できるように設計されています。
全体として、このリポジトリは、Generative AI の機能と現実世界のシナリオでの使用方法を探索し始める際のセットアップ手順、例、その他のリソースを提供します。
Ask Sage API は Swagger を使用して文書化されており、利用可能なエンドポイント、リクエスト パラメータ、応答形式、認証方法に関する詳細情報が提供されます。
次の表は、ユーザー API で利用可能なエンドポイントを示しています。
終点 | 説明 |
---|---|
/get-token-with-API-key | APIキーとメールアドレスでアクセストークンを取得する |
/get-user-logins | 最後のログインを取得します (デフォルトでは 5 に制限されています) |
/get-user-logs | 最後のプロンプトを取得する |
/追加-データセット | 新しいデータセットを追加する |
/assign-データセット | データセットを割り当てる |
/delete-データセット | データセットを削除します |
この情報は、Ask Sage API と対話するために使用されます。ユーザーはモデルのクエリ、ペルソナの選択/取得、データセットの取得、モデルのトレーニングなどを行うことができます。
次の表は、サーバー API で利用可能なエンドポイントを示しています。
終点 | 説明 |
---|---|
/get-models | Ask Sage サービス経由で利用可能なモデルのリストを返します。 |
/クエリ | ユーザーの入力に基づいて補完を生成するためのメインエンドポイント |
/query_with_file | ユーザーの入力に基づいて補完を生成するためのファイル エンドポイントを使用したクエリ |
/クエリプラグイン | ユーザーの入力に基づいて補完を生成するためのプラグイン エンドポイントを使用したクエリ |
/実行プラグイン | 提供されたコンテンツを使用してプラグインを実行します |
/follow_up_questions | ユーザーの入力に基づいてフォローアップの質問を生成するためのエンドポイント |
/トークナイザー | 文字列値のトークンを取得するためのエンドポイント |
/get-ペルソナ | 文字列のトークンを取得するためのエンドポイント |
/get-データセット | 利用可能なデータセットのリストを返します。 |
/get-プラグイン | 利用可能なプラグインのリストを返します。 |
/get-train | ユーザーの入力に基づいてモデルをトレーニングします |
/ファイル | サポートされているファイルをプレーン/テキストに変換します |
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 エンドポイントで認証できる方法は 3 つあります。
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 と対話できるようになります。
アクセス トークンは、エンドポイント「/get-token-with-api-key」の API キーと電子メール アドレスを使用して生成されます。アクセス トークンは 24 時間有効で、Ask Sage API へのリクエストを認証するために使用できます。
アクセス トークンは限られた期間のみ有効であり、定期的に再生成する必要があるため、これはより安全な認証方法です。
以下は、電子メール アドレスと API キーを使用してアクセス トークンを取得する方法を示す Python のサンプル コード スニペットです。
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 と対話する方法と、応答で何が期待されるかに重点を置きます。さらに、Generative AI の機能とそれが現実世界のシナリオでどのように使用できるかを実証するために、いくつかのミニ プロジェクトが作成されます。このリポジトリは Ask Sage API に焦点を当てていますが、サンプルは同様のサービスを提供するが、エンドポイントやパラメータが異なる可能性がある他のプラットフォームにも適用できるほど一般的です。
注: 現時点の例はテキストベースのモデルに重点を置いていますが、画像、音声、ビデオなどの他のデータ型と LLM の相互作用 (マルチモーダル モデル) まで拡張される予定です。これらの例を検討すると、プロジェクトがより複雑になり、完了するまでにより多くのリソースと時間が必要になります。
requirements.txt
からパッケージをインストールした後、更新されたパッケージを使用するには、Jupyter カーネルを再起動する必要がある場合があります。これにより、新しくインストールされたライブラリが正しくロードされることが保証されます。
✅完了✅
これは実際には例ではなく、AI を使用することの倫理的影響と、潜在的なリスクを軽減する方法についての議論です。ユーザーは AI の仕組みについて十分なトレーニングを受ける必要があることを強調していますが、同時に GenAI ツールを通じて生成されたものが必ずしも正しいとは限らないことも明確に理解してもらいたいと考えています。
✅完了✅
この例では、Ask Sage API エンドポイントの使用方法と、応答で何が期待されるかを高レベルで説明します。次の例では、実際のシナリオでエンドポイントを使用して有用なアプリケーション、ツール、またはサービスを作成する方法を示します。
?建設中? --> フルリリースは近日公開予定!
この例では、LLM モデルを操作する方法と、プロンプト エンジニアリングを使用して、モデルが目的の出力を生成するようにガイドするために使用される高品質のテキストを生成する方法について説明します。プロンプト エンジニアリングは、言語モデルの出力を制御し、特定の基準や要件を満たすテキストを生成するために使用できる強力で必要なスキルです。
?建設中?
ほとんどの場合、LLM モデルは、さまざまなソースからの幅広いテキストを含む大規模なデータセットでトレーニングされており、ユーザーの特定のニーズに関連しているかどうかは保証されていません。ただし、Ask Sage では、ユーザーは自分のドメインまたはユースケースに関連するテキストを含むカスタム データセットを作成し、それを検索拡張生成 (RAG) などのメソッドで使用してモデルのパフォーマンスを向上させることができます。したがって、この例では、カスタム データセットを作成し、それを LLM モデルで使用して、ユーザーのニーズにより適切なテキストを生成する方法について説明します。モデルがどのように機能し、データセットと統合されるかについては、サンプル内でさらに詳細な情報が提供されます。
?建設中?
現在利用可能な LLM モデルの数は膨大であり、生成 AI の分野で研究が進むにつれて増え続けるでしょう。この例では、Ask Sage に依存しない API メソッドを使用してさまざまな LLM モデルを比較し、テキストの品質、一貫性、創造性などのさまざまな基準に基づいてパフォーマンスを評価する方法について説明します。ユーザーはこの情報を使用して、ニーズに最適なモデルを選択し、プロジェクトでどのモデルを使用するかについて情報に基づいた決定を下すことができます。
このセクションに進むには、「LLM モデルの比較」をクリックしてください。
?建設中?
これはユニークなプロジェクトであり、将来的には時代遅れになる可能性がありますが、LLM はユーザーが提供した入力に基づいてテキストを生成するテキストベースのモデルですが、手動で作成せずに図を生成したい場合はどうすればよいでしょうか?たとえば、フローチャート、マインド マップ、ガント チャート、またはその他の種類の図が必要だとします。この例では、テキストベースの図作成ツールである mermaid.js を使用して、LLM モデルによって生成されたテキストに基づいて図を生成する方法について説明します。
このセクションに移動するには、[LLM を使用した図の作成] をクリックします。
?建設中?
Raspberry Pi や Jetson Nano などのエッジ デバイスに LLM モデルをデプロイできるようになるとはどうでしょうか?この例では、LLM モデルをエッジ デバイスにデプロイし、Ask Sage API を利用してテキストを生成する方法について説明します。
このセクションに移動するには、「エッジ デバイスへの LLM 展開」をクリックします。
?建設中?
LLM モデルのパフォーマンスを評価し、その進行状況を長期的に監視するにはどうすればよいでしょうか?この例では、LLM モデルに関する主要なメトリクスと洞察を表示するダッシュボードを作成する方法について説明します。ユーザーは、このダッシュボードを使用してモデルのパフォーマンスを追跡し、時間の経過とともにモデルを改善する方法について情報に基づいた決定を下すことができます。
まず、@arize-ai phoenix オープン ソース ツールを使用して、LLM モデルに関する主要なメトリクスと洞察を表示するダッシュボードを作成します。
?建設中?
相互に通信し、互いの出力に基づいてテキストを生成できるチャットボットのネットワークを作成しましょう。この例では、LLM モデルを使用してチャットボット ネットワークを作成し、チャットボット間の会話をシミュレートする方法について説明します。ユーザーはこのネットワークを使用して、さまざまなアプリケーション、シナリオ、モデリングのユースケースで使用できる創造的で魅力的なテキストを生成できます。
このセクションに移動するには、LLM チャットボット ネットワークをクリックしてください
ここでは、特定の例や使用例を求めるユーザーからの追加の例のリストを提供します。ご覧になりたい特定の例や使用例がある場合は、当社までご連絡ください。お客様のニーズを満たす例を作成できるよう最善を尽くします。私たちに連絡する最善の方法は、Discord サーバーに参加し、そこにリクエストを投稿することです Discord - Ask Sage :
AskSage API は、無効なリクエストが行われたときやレート制限を超えたときなど、特定の状況でエラーを返すことがあります。ユーザーは、API によって返されるエラー コードとメッセージを理解し、コード内で適切に処理する必要があります。
Ask Sage API を使用する際に留意すべきベスト プラクティスをいくつか示します。
GenerativeAI (GenAI) に関連するリソースを含む追加の PDF ドキュメントを提供する予定です。このドキュメントには、生成 AI とそれを効果的に使用する方法について詳しく知りたいユーザーに役立つ記事、書籍、チュートリアル、ビデオ、その他のコンテンツへのリンクが含まれます。
私たちの目標は、自然言語処理、コンピューター ビジョン、強化学習などを含む、生成 AI に関連する幅広いトピックをカバーするリソースの包括的なリストを提供することです。生成 AI の分野で一般的に使用される特定のモデルやツールをカバーするリソースも含まれます。
この文書に含めるべきリソースに関するご提案がございましたら、お気軽にお問い合わせください。リストに追加できるよう最善を尽くします。
楽しく学習しましょう! ?
生成 AI または機械学習を使用する際に知っておくことが重要な語彙のリストを提供します。これらの用語は、ユーザーが AI/機械学習の分野で使用される用語を理解し、それをプロジェクトに適用する方法を理解するのに役立ちます。
たとえば、Generative AI を使用する際に知っておくべきいくつかの用語を次に示します。
定義の完全なリストを表示するには、「知っておくべき定義」をクリックします。
Ask Sage API に追加してほしい機能や拡張機能は次のとおりです。
各項目には、機能または拡張機能を使用できる場所を示すために作成される例へのリンクが含まれています。
Ask Sage API で見つかったバグや問題は、Ask Sage チームに直接報告する必要があります。 API で問題が発生した場合は、Ask Sage チームにお問い合わせください。さらに、このリポジトリ内のバグや問題を報告することができます。Ask Sage チームに転送する前に、それらをテストして検証します。
このリポジトリは、MIT ライセンスに基づいてライセンスされています。詳細については、LICENSE ファイルを参照してください。