version: v0.1 listeners: ingress_traffic: address: 0.0.0.0 port: 10000 message_format: openai timeout: 30s # Centralized way to manage LLMs, manage keys, retry logic, failover and limits in a central way llm_providers: - name: OpenAI provider_interface: openai access_key: $OPENAI_API_KEY model: gpt-4o-mini default: true # 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:18080 # max time to wait for a connection to be established connect_timeout: 0.005s # default system prompt used by all prompt targets system_prompt: | You are a Workforce assistant that helps on workforce planning and HR decision makers with reporting and workforce planning. Use following rules when responding, - when you get data in json format, offer some summary but don't be too verbose - be concise, to the point and do not over analyze the data prompt_targets: - name: workforce description: Get workforce data like headcount and satisfaction levels by region and staffing type endpoint: name: app_server path: /agent/workforce http_method: POST parameters: - name: staffing_type type: str description: specific category or nature of employment used by an organization like fte, contract and agency required: true enum: [fte, contract, agency] - name: region type: str required: true description: Geographical region for which you want workforce data like asia, europe, americas. - name: data_snapshot_days_ago type: int required: false description: the snapshot day for which you want workforce data. - name: slack_message endpoint: name: app_server path: /agent/slack_message http_method: POST description: sends a slack message on a channel parameters: - name: slack_message type: string required: true description: the message that should be sent to a slack channel