
Astraアシスタントは、ストリーミング、永続的なスレッド、ファイル、Vector_stores、アシスタント、検索、機能呼び出しなどをサポートしています(AstadB(Apache CassandraとJvectorが搭載したサービスとしてDataStaxのDB)を使用しています。
完了と埋め込み(Litellmを搭載)の両方で、数十のサードパーティLLMプロバイダー(またはローカルモデル)をサポートします。
ホストされたAstra Assistantsサービスを使用するか、オープンソースAPIサーバーを自分でホストすることができます。
Astra Asistants Serviceを使用するアプリを構築するには、お気に入りのパッケージマネージャーにAstra-Assistants Pythonライブラリをインストールします。 Astra-Assistantsのコードは(クライアント/) [/クライアント/]の下にあります。
poetry add astra_assistants
Astraにサインアップして、管理者APIトークンを取得します。
環境変数を設定します(使用するLLMSに応じて)。例については、.env.bkpファイルを参照してください。
#!/bin/bash
# AstraDB -> https://astra.datastax.com/ --> tokens --> administrator user --> generate
export ASTRA_DB_APPLICATION_TOKEN=""
# OpenAI Models - https://platform.openai.com/api-keys --> create new secret key
export OPENAI_API_KEY=""
# Groq Models - https://console.groq.com/keys
export GROQ_API_KEY=""
# Anthropic claude models - https://console.anthropic.com/settings/keys
export ANTHROPIC_API_KEY=""
# Gemini models -> https://makersuite.google.com/app/apikey
export GEMINI_API_KEY=""
# Perplexity models -> https://www.perplexity.ai/settings/api --> generate
export PERPLEXITYAI_API_KEY=""
# Cohere models -> https://dashboard.cohere.com/api-keys
export COHERE_API_KEY=""
# Bedrock models -> https://docs.aws.amazon.com/bedrock/latest/userguide/setting-up.html
export AWS_REGION_NAME=""
export AWS_ACCESS_KEY_ID=""
export AWS_SECRET_ACCESS_KEY=""
# vertexai models https://console.cloud.google.com/vertex-ai
export GOOGLE_JSON_PATH=""
export GOOGLE_PROJECT_ID=""
# ... for all models see the .env.bkp file
次に、クライアントをインポートしてパッチを当てます。
from openai import OpenAI
from astra_assistants import patch
client = patch ( OpenAI ())システムはお客様に代わってDBを作成し、トークンを使用してassistant_api_dbに名前を付けます。これは、DBの準備ができるまで最初のリクエストが掛かることを意味します(数分になる可能性があります)。これは一度だけ起こります。
これで、アシスタントを作成する準備ができました
assistant = client.beta.assistants.create(
instructions="You are a personal math tutor. When asked a math question, write and run code to answer the question.",
model="gpt-4-1106-preview",
tools=[{"type": "retrieval"}]
)
デフォルトでは、このサービスはAstradbをデータベース/ベクトルストアとして、Openaiを埋め込みとチャットの完了に使用します。
Litellmのおかげで、埋め込みと完成の両方について多くのサードパーティモデルをサポートしています。 api-keyおよびembedding-modelヘッダーを使用して、サービスのAPIキーを渡します。
さまざまなモデルに合格することができます。環境に適切なAPIキーがあることを確認してください。
model="gpt-4-1106-preview"
#model="gpt-3.5-turbo"
#model="cohere_chat/command-r"
#model="perplexity/mixtral-8x7b-instruct"
#model="perplexity/llama-3-sonar-large-32k-online"
#model="anthropic.claude-v2"
#model="gemini/gemini-1.5-pro-latest"
#model = "meta.llama2-13b-chat-v1"
assistant = client.beta.assistants.create(
name="Math Tutor",
instructions="You are a personal math tutor. Answer questions briefly, in a sentence or less.",
model=model,
)
サードパーティの埋め込みモデルについては、 client.files.createでembedding_modelをサポートしています:
file = client.files.create(
file=open(
"./test/language_models_are_unsupervised_multitask_learners.pdf",
"rb",
),
purpose="assistants",
embedding_model="text-embedding-3-large",
)
詩を使用して例を実行するには、秘密を備えたこのディレクトリに.ENVファイルを作成して実行します。
poetry install
.envファイルを作成し、キーを追加します。
cp .env.bkp .env
そして
poetry run python examples/python/chat_completion/basic.py
poetry run python examples/python/retrieval/basic.py
poetry run python examples/python/streaming_retrieval/basic.py
poetry run python examples/python/function_calling/basic.py
Dockerを使用して、最初にDocker Hubから画像を引き出します
docker pull datastax/astra-assistants
または最新のものが必要ない場合は特定のバージョン:
docker pull datastax/astra-assistants:v0.2.12
次に、実行します(-pでDockerポート8080をホストポート8080にマッピングしてください):
docker run -p 8080:8080 datastax/astra-assistants
または詩を持って地元で:
poetry install
poetry run python run.py
または、Ollamaとの統合のためのDocker-Composeを使用します
cd examples/ollama/gpu # or examples/ollama/cpu for cpu only for gpu you need docker-toolkit
docker-compose up -d
使用する前にオラマをするモデルをプルする必要があります
curl http://localhost:11434/api/pull -d '{ "name": "deepseek-coder-v2" }'
アシスタントのクライアントは、Ollama_api_base_urlを設定するOllama Containerにルーティングする必要があります。 ollama_api_base_urlは、docker-composeを使用している場合はhttp:// ollama:11434に設定する必要があります。 LocalHostでOllamaを使用している場合は、http:// localhost:11434に設定できます。
ヘルプまたはフィードバックのために問題をファイルするか、不一致で私たちに連絡してください
寄稿ガイドをご覧ください
こちらの報道レポートをご覧ください
このプロジェクトは、Openaiまたは当社がサポートするサードパーティモデルのいずれにも関連していません。これは、OpenAIアシスタントAPIにドロップイン互換サービスを提供することを目的としたオープンソースプロジェクトです。