
ASTRA Assistants prend en charge le streaming, les threads persistants, les fichiers, Vector_Stores, les assistants, la récupération, les appels de fonctions et plus en utilisant Astradb (DB de DataSax en tant que service offrant Apache Cassandra et JVector).
Prend en charge des dizaines de fournisseurs de LLM tiers (ou même de modèles locaux) à la fois pour l'achèvement et les incorporations (alimentées par Litellm).
Vous pouvez utiliser notre service Astra Assistants hébergé ou héberger vous-même le serveur API open source.
Pour créer une application qui utilise le service Astra Asistants, installez la bibliothèque Python Astra-Asistants avec votre gestionnaire de packages préféré. Le code pour Astra-Assistants peut être trouvé sous (Clients /)@./ Clients /]:
poetry add astra_assistants
Inscrivez-vous pour Astra et obtenez un jeton API Admin:
Définissez vos variables d'environnement (selon les LLM que vous souhaitez utiliser), consultez le fichier .env.bkp pour un exemple:
#!/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
Puis importez et corrigez votre client:
from openai import OpenAI
from astra_assistants import patch
client = patch ( OpenAI ()) Le système créera une base de données en votre nom et le nommera assistant_api_db à l'aide de votre jeton. Remarque, cela signifie que la première demande accrochera jusqu'à ce que votre DB soit prête (pourrait être quelques minutes). Cela ne se produira qu'une seule fois.
Maintenant, vous êtes prêt à créer un assistant
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"}]
)
Par défaut, le service utilise ASTRADB comme magasin de données / vectoriel et OpenAI pour les intégres et l'achèvement du chat.
Nous soutenons maintenant de nombreux modèles tiers pour les intégres et l'achèvement grâce à Litellm. Passez la clé de l'API de votre service à l'aide des en-têtes api-key et embedding-model .
Vous pouvez passer différents modèles, assurez-vous simplement d'avoir la bonne clé API correspondante dans votre environnement.
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,
)
Pour les modèles d'incorporation tiers, nous prenons en charge embedding_model dans client.files.create :
file = client.files.create(
file=open(
"./test/language_models_are_unsupervised_multitask_learners.pdf",
"rb",
),
purpose="assistants",
embedding_model="text-embedding-3-large",
)
Pour exécuter les exemples à l'aide de la poésie, créez un fichier .env dans ce répertoire avec vos secrets et exécutez:
poetry install
Créez votre fichier .env et ajoutez-y vos clés:
cp .env.bkp .env
et
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
avec docker, tirez d'abord l'image de Docker Hub
docker pull datastax/astra-assistants
ou une version spécifique si vous ne voulez pas plus tard:
docker pull datastax/astra-assistants:v0.2.12
Ensuite, exécutez (-p pour cartographier votre port Docker 8080 à votre port hôte 8080):
docker run -p 8080:8080 datastax/astra-assistants
ou localement avec la poésie:
poetry install
poetry run python run.py
ou avec Docker-Compose pour l'intégration avec Ollama
cd examples/ollama/gpu # or examples/ollama/cpu for cpu only for gpu you need docker-toolkit
docker-compose up -d
Vous devez tirer le modèle que vous souhaitez sur olllay avant de l'utiliser
curl http://localhost:11434/api/pull -d '{ "name": "deepseek-coder-v2" }'
Votre client d'assistants doit se rendre vers le réglage du conteneur Olllama OLLAMA_API_BASE_URL. OLLAMA_API_BASE_URL devrait être défini sur http: // olllama: 11434 Si vous utilisez Docker-Compose. Si vous utilisez Ollama sur votre localhost, vous pouvez le définir sur http: // localhost: 11434
Pour obtenir de l'aide ou des commentaires, liez un problème ou contactez-nous sur Discord
Consultez notre guide de contribution
Voir notre rapport de couverture ici
Ce projet n'est pas associé à OpenAI ou à l'un des modèles tiers que nous soutenons. Il s'agit d'un projet open source qui vise à fournir un service compatible pour l'Openai Assistants API.