update configs to properly host the api_server so that demo functions as expected

This commit is contained in:
aayushwhiz 2024-12-18 15:22:59 -08:00
parent 67b8fd635e
commit 0013ef1018
4 changed files with 49 additions and 56 deletions

View file

@ -17,36 +17,32 @@ 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. 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: prompt_targets:
- name: device_summary - name: device_summary
description: Retrieve network statistics for specific devices within a time range description: Retrieve network statistics for specific devices within a time range
endpoint: endpoint:
name: app_server name: app_server
path: /agent/device_summary path: /agent/device_summary
http_method: POST http_method: POST
parameters: parameters:
- name: device_ids - name: device_ids
type: list type: list
description: A list of device identifiers (IDs) to retrieve statistics for. description: A list of device identifiers (IDs) to retrieve statistics for.
required: true # device_ids are required to get device statistics required: true # device_ids are required to get device statistics
- name: days - name: days
type: int type: int
description: The number of days for which to gather device statistics. description: The number of days for which to gather device statistics.
default: "7" default: "7"
- name: reboot_devices - name: reboot_devices
description: Reboot a list of devices description: Reboot a list of devices
endpoint: endpoint:
name: app_server name: app_server
path: /agent/device_reboot path: /agent/device_reboot
http_method: POST http_method: POST
parameters: parameters:
- name: device_ids - name: device_ids
type: list type: list
description: A list of device identifiers (IDs). description: A list of device identifiers (IDs).
required: true 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. # Arch creates a round-robin load balancing between different endpoints, managed via the cluster subsystem.
endpoints: endpoints:
@ -54,6 +50,6 @@ endpoints:
# value could be ip address or a hostname with port # value could be ip address or a hostname with port
# this could also be a list of endpoints for load balancing # this could also be a list of endpoints for load balancing
# for example endpoint: [ ip1:port, ip2:port ] # for example endpoint: [ ip1:port, ip2:port ]
endpoint: host.docker.internal:18080 endpoint: host.docker.internal:18083
# max time to wait for a connection to be established # max time to wait for a connection to be established
connect_timeout: 0.005s connect_timeout: 0.005s

View file

@ -2,14 +2,19 @@ services:
api_server: api_server:
build: build:
context: . context: .
dockerfile: Dockerfile
ports:
- "18083:80"
chatbot_ui:
build:
context: ../shared/chatbot_ui
dockerfile: Dockerfile
ports:
- "18080:8080"
environment: environment:
- CHAT_COMPLETION_ENDPOINT=http://host.docker.internal:10000/v1 - CHAT_COMPLETION_ENDPOINT=http://host.docker.internal:10000/v1
extra_hosts:
- "host.docker.internal:host-gateway"
volumes: volumes:
- ./arch_config.yaml:/app/arch_config.yaml - ./arch_config.yaml:/app/arch_config.yaml
- ../shared/chatbot_ui/common.py:/app/common.py
ports:
- "18080:80"
healthcheck:
test: ["CMD", "curl" ,"http://localhost:80/healthz"]
interval: 5s
retries: 20

View file

@ -1,11 +1,9 @@
from openai import OpenAI
from fastapi import FastAPI, HTTPException
from pydantic import BaseModel, Field
from typing import List, Optional
from common import create_gradio_app
import gradio as gr
import os import os
from typing import List, Optional
from fastapi import FastAPI, HTTPException
from openai import OpenAI
from pydantic import BaseModel, Field
app = FastAPI() app = FastAPI()
demo_description = """This demo illustrates how **Arch** can be used to perform function calling with network-related tasks. demo_description = """This demo illustrates how **Arch** can be used to perform function calling with network-related tasks.
@ -100,10 +98,3 @@ client = OpenAI(
api_key="--", api_key="--",
base_url=CHAT_COMPLETION_ENDPOINT, base_url=CHAT_COMPLETION_ENDPOINT,
) )
gr.mount_gradio_app(
app, create_gradio_app(demo_description, client), path="/agent/chat"
)
if __name__ == "__main__":
app.run(debug=True)

View file

@ -1,10 +1,11 @@
import pandas as pd
import random
from datetime import datetime, timedelta, timezone
import re
import logging import logging
from dateparser import parse import random
import re
import sqlite3 import sqlite3
from datetime import datetime, timedelta, timezone
import pandas as pd
from dateparser import parse
logging.basicConfig( logging.basicConfig(
level=logging.INFO, format="%(asctime)s - %(levelname)s - %(message)s" level=logging.INFO, format="%(asctime)s - %(levelname)s - %(message)s"