Arch est un proxy distribué de couche 7 intelligent conçu pour protéger, observer et personnaliser les agents d'IA avec vos API.
Engagée avec des LLMS spécialement conçues, Arch gère les tâches critiques mais indifférenciées liées à la manipulation et au traitement des invites, notamment en détectant et en rejetant les tentatives de jailbreak, en appelant intelligemment les API "backend" pour répondre à la demande de l'utilisateur représenté dans une invite, un routage vers et offrir une récupération de catastrophe entre les LLM en amont et la gestion de l'observabilité des invites et des interactions LLMIM dans une voie centrale.
Arch est construit sur (et par les principaux contributeurs de) l'envoyé proxy avec la conviction que:
Les invites sont des demandes d'utilisateurs nuancés et opaques, qui nécessitent les mêmes capacités que les demandes HTTP traditionnelles, y compris la manipulation sécurisée, le routage intelligent, l'observabilité robuste et l'intégration avec les systèmes backend (API) pour la personnalisation - toutes les logiques commerciales en dehors. *
Caractéristiques de base :
Sautez dans nos documents pour savoir comment utiliser Arch pour améliorer la vitesse, la sécurité et la personnalisation de vos applications Genai.
Important
Aujourd'hui, la fonction appelant LLM (arc-fonction) conçu pour les scénarios agentiques et chiffon est hébergée gratuitement dans la région américaine-centrale. Pour offrir des latences et un débit cohérents, et pour gérer nos dépenses, nous permettons d'accès à la version hébergée via les clés de développeurs et vous donnerons la possibilité d'exécuter ce LLM localement. Pour plus de détails, voir ce numéro # 258
Pour nous contacter, veuillez rejoindre notre serveur Discord. Nous surveillerons cela activement et offrirons un soutien là-bas.
Suivez ce guide pour apprendre à configurer rapidement Arch et à l'intégrer dans vos applications Génératives d'IA.
Avant de commencer, assurez-vous d'avoir ce qui suit:
Docker
& Python
installé sur votre systèmeAPI Keys
pour les fournisseurs de LLM (si vous utilisez des LLM externes)La CLI d'Arch vous permet de gérer et d'interagir efficacement avec la passerelle Arch. Pour installer la CLI, exécutez simplement la commande suivante: Conseil: Nous recommandons aux développeurs de créer un nouvel environnement virtuel Python pour isoler les dépendances avant d'installer Arch. Cela garantit que ArchGW et ses dépendances n'interfèrent pas avec d'autres packages sur votre système.
Assurez-vous que les services publics suivants ont été installés avant de continuer,
$ python -m venv venv
$ source venv/bin/activate # On Windows, use: venvScriptsactivate
$ pip install archgw
Arch fonctionne basé sur un fichier de configuration où vous pouvez définir des fournisseurs LLM, des cibles d'invite, des garde-corps, etc. Vous trouverez ci-dessous un exemple de configuration pour vous démarrer:
version : v0.1
listener :
address : 127.0.0.1
port : 8080 # If you configure port 443, you'll need to update the listener with tls_certificates
message_format : huggingface
# Centralized way to manage LLMs, manage keys, retry logic, failover and limits in a central way
llm_providers :
- name : OpenAI
provider : openai
access_key : $OPENAI_API_KEY
model : gpt-3.5-turbo
default : true
# default system prompt used by all prompt targets
system_prompt : |
You are a network assistant that helps operators with a better understanding of network traffic flow and perform actions on networking operations. No advice on manufacturers or purchasing decisions.
prompt_targets :
- name : device_summary
description : Retrieve network statistics for specific devices within a time range
endpoint :
name : app_server
path : /agent/device_summary
parameters :
- name : device_ids
type : list
description : A list of device identifiers (IDs) to retrieve statistics for.
required : true # device_ids are required to get device statistics
- name : days
type : int
description : The number of days for which to gather device statistics.
default : " 7 "
- name : reboot_devices
description : Reboot a list of devices
endpoint :
name : app_server
path : /agent/device_reboot
parameters :
- name : device_ids
type : list
description : A list of device identifiers (IDs).
required : true
- name : days
type : int
description : A list of device identifiers (IDs)
default : " 7 "
# Arch creates a round-robin load balancing between different endpoints, managed via the cluster subsystem.
endpoints :
app_server :
# value could be ip address or a hostname with port
# this could also be a list of endpoints for load balancing
# for example endpoint: [ ip1:port, ip2:port ]
endpoint : host.docker.internal:18083
# max time to wait for a connection to be established
connect_timeout : 0.005s
Faites des appels sortants via Arch
from openai import OpenAI
# Use the OpenAI client as usual
client = OpenAI (
# No need to set a specific openai.api_key since it's configured in Arch's gateway
api_key = '--' ,
# Set the OpenAI API base URL to the Arch gateway endpoint
base_url = "http://127.0.0.1:12000/v1"
)
response = client . chat . completions . create (
# we select model from arch_config file
model = "--" ,
messages = [{ "role" : "user" , "content" : "What is the capital of France?" }],
)
print ( "OpenAI Response:" , response . choices [ 0 ]. message . content )
Arch est conçu pour soutenir l'observabilité de la meilleure classe en soutenant les normes ouvertes. Veuillez lire nos documents sur l'observabilité pour plus de détails sur le traçage, les métriques et les journaux
Nous aimerions les commentaires sur notre feuille de route et nous accueillons des contributions à Arch ! Que vous corrigez des bogues, que vous ajoutiez de nouvelles fonctionnalités, améliorez la documentation ou créez des tutoriels, votre aide est très appréciée. Veuillez visiter notre guide de contribution pour plus de détails