From 27d50c81686e4b9deb0193c629a3e8a54089347c Mon Sep 17 00:00:00 2001 From: Adil Hafeez Date: Wed, 30 Oct 2024 18:49:53 -0700 Subject: [PATCH] update readme --- README.md | 76 +++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 48 insertions(+), 28 deletions(-) diff --git a/README.md b/README.md index 0b2946a3..21fa2bac 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ +[![Build and Deploy Documentation](https://github.com/katanemo/arch/actions/workflows/static.yml/badge.svg)](https://github.com/katanemo/arch/actions/workflows/static.yml) +

- Arch Gateway Logo + Arch Gateway Logo

## Build fast, robust, and personalized AI agents. @@ -68,28 +70,43 @@ listener: llm_providers: - name: OpenAI provider: openai - access_key: OPENAI_API_KEY - model: gpt-4o + 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 just offers facts; not advice on manufacturers or purchasing decisions. + 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: reboot_devices - description: Reboot specific devices or device groups - - path: /agent/device_reboot - parameters: - - name: device_ids - type: list - description: A list of device identifiers (IDs) to reboot. - required: false - - name: device_group - type: str - description: The name of the device group to reboot - required: false + - 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: @@ -97,7 +114,7 @@ endpoints: # 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: 127.0.0.1:80 + endpoint: host.docker.internal:18083 # max time to wait for a connection to be established connect_timeout: 0.005s ``` @@ -106,20 +123,23 @@ endpoints: Make outbound calls via Arch ```python -import openai - -# Set the OpenAI API base URL to the Arch gateway endpoint -openai.api_base = "http://127.0.0.1:12000/v1" -# No need to set a specific openai.api_key since it's configured in Arch's gateway -openai.api_key = "null" +from openai import OpenAI # Use the OpenAI client as usual -response = openai.Completion.create( - model="text-davinci-003", - prompt="What is the capital of France?" +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" ) -print("OpenAI Response:", response.choices[0].text.strip()) +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) ```