mirror of
https://github.com/katanemo/plano.git
synced 2026-06-23 15:38:07 +02:00
more changes
This commit is contained in:
parent
299f183e66
commit
9db30caff1
6 changed files with 40 additions and 162 deletions
|
|
@ -4,9 +4,13 @@ properties:
|
||||||
version:
|
version:
|
||||||
type: string
|
type: string
|
||||||
tools:
|
tools:
|
||||||
type: object
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
agents:
|
agents:
|
||||||
type: object
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
listeners:
|
listeners:
|
||||||
type: object
|
type: object
|
||||||
additionalProperties: false
|
additionalProperties: false
|
||||||
|
|
|
||||||
|
|
@ -82,8 +82,20 @@ impl RootContext for FilterContext {
|
||||||
self.system_prompt = Rc::new(config.system_prompt);
|
self.system_prompt = Rc::new(config.system_prompt);
|
||||||
self.prompt_targets = Rc::new(prompt_targets);
|
self.prompt_targets = Rc::new(prompt_targets);
|
||||||
self.endpoints = Rc::new(config.endpoints);
|
self.endpoints = Rc::new(config.endpoints);
|
||||||
self.agents = Rc::new(config.agents);
|
//TOOD: check to make sure that agents name is unique
|
||||||
self.tools = Rc::new(config.tools);
|
let agents_map: HashMap<String, Agent> = config
|
||||||
|
.agents
|
||||||
|
.iter()
|
||||||
|
.map(|agent| (agent.name.clone(), agent.clone()))
|
||||||
|
.collect();
|
||||||
|
self.agents = Rc::new(agents_map);
|
||||||
|
//TODO: check to make sure that tools name is unique
|
||||||
|
let tools_map: HashMap<String, Tool> = config
|
||||||
|
.tools
|
||||||
|
.iter()
|
||||||
|
.map(|tool| (tool.name.clone(), tool.clone()))
|
||||||
|
.collect();
|
||||||
|
self.tools = Rc::new(tools_map);
|
||||||
|
|
||||||
if let Some(prompt_guards) = config.prompt_guards {
|
if let Some(prompt_guards) = config.prompt_guards {
|
||||||
self.prompt_guards = Rc::new(prompt_guards)
|
self.prompt_guards = Rc::new(prompt_guards)
|
||||||
|
|
|
||||||
|
|
@ -19,8 +19,8 @@ pub struct Configuration {
|
||||||
pub ratelimits: Option<Vec<Ratelimit>>,
|
pub ratelimits: Option<Vec<Ratelimit>>,
|
||||||
pub tracing: Option<Tracing>,
|
pub tracing: Option<Tracing>,
|
||||||
pub mode: Option<GatewayMode>,
|
pub mode: Option<GatewayMode>,
|
||||||
pub agents: HashMap<String, Agent>,
|
pub agents: Vec<Agent>,
|
||||||
pub tools: HashMap<String, Tool>,
|
pub tools: Vec<Tool>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||||
|
|
|
||||||
|
|
@ -1,76 +0,0 @@
|
||||||
version: v0.1
|
|
||||||
|
|
||||||
|
|
||||||
listeners:
|
|
||||||
ingress_traffic:
|
|
||||||
address: 0.0.0.0
|
|
||||||
port: 10000
|
|
||||||
message_format: openai
|
|
||||||
timeout: 30s
|
|
||||||
|
|
||||||
llm_providers:
|
|
||||||
- name: gpt-4o
|
|
||||||
access_key: $OPENAI_API_KEY
|
|
||||||
provider_interface: openai
|
|
||||||
model: gpt-4o
|
|
||||||
|
|
||||||
endpoints:
|
|
||||||
frankfurther_api:
|
|
||||||
endpoint: api.frankfurter.dev
|
|
||||||
protocol: https
|
|
||||||
|
|
||||||
tools:
|
|
||||||
- name: get_exchange_rate
|
|
||||||
endpoint:
|
|
||||||
name: frankfurther_api
|
|
||||||
path: /v1/latest?base={currency_from}&symbols={currency_to}
|
|
||||||
params:
|
|
||||||
- name: currency_from
|
|
||||||
description: currency symbol to convert from
|
|
||||||
type: str
|
|
||||||
default: USD
|
|
||||||
- name: currency_to
|
|
||||||
description: currency symbol to convert to
|
|
||||||
type: str
|
|
||||||
default: EUR
|
|
||||||
|
|
||||||
prompt_guards:
|
|
||||||
input_guards:
|
|
||||||
jailbreak:
|
|
||||||
on_exception:
|
|
||||||
message: Looks like you're curious about my abilities, but I can only provide assistance for currency exchange.
|
|
||||||
|
|
||||||
agents:
|
|
||||||
- name: Currency Exchange Agent
|
|
||||||
description: Helps with exchange rates for currencies
|
|
||||||
default_input_modes:
|
|
||||||
- text
|
|
||||||
- text/plain
|
|
||||||
default_output_modes:
|
|
||||||
- text
|
|
||||||
- text/plain
|
|
||||||
skills:
|
|
||||||
- id: convert_currency
|
|
||||||
name: Currency Exchange Rates Tool
|
|
||||||
description: Helps with exchange values between various currencies
|
|
||||||
examples:
|
|
||||||
- What is exchange rate between USD and GBP?
|
|
||||||
capabilities:
|
|
||||||
streaming: true
|
|
||||||
push_notifications: true
|
|
||||||
model: gpt-4o
|
|
||||||
system_prompt: |
|
|
||||||
You are a specialized assistant for currency conversions.
|
|
||||||
Your sole purpose is to use the 'get_exchange_rate' tool to answer questions about currency exchange rates.
|
|
||||||
If the user asks about anything other than currency conversion or exchange rates,
|
|
||||||
politely state that you cannot help with that topic and can only assist with currency-related queries.
|
|
||||||
Do not attempt to answer unrelated questions or use tools for other purposes.
|
|
||||||
Set response status to input_required if the user needs to provide more information.
|
|
||||||
Set response status to error if there is an error while processing the request.
|
|
||||||
Set response status to completed if the request is complete.
|
|
||||||
tools:
|
|
||||||
- get_exchange_rate
|
|
||||||
|
|
||||||
tracing:
|
|
||||||
random_sampling: 100
|
|
||||||
trace_arch_internal: true
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
version: v0.1
|
version: v0.1
|
||||||
|
|
||||||
|
|
||||||
listeners:
|
listeners:
|
||||||
ingress_traffic:
|
ingress_traffic:
|
||||||
address: 0.0.0.0
|
address: 0.0.0.0
|
||||||
|
|
@ -20,8 +19,7 @@ endpoints:
|
||||||
protocol: https
|
protocol: https
|
||||||
|
|
||||||
tools:
|
tools:
|
||||||
get_exchange_rate:
|
- name: get_exchange_rate
|
||||||
name: get_exchange_rate
|
|
||||||
description: Get the latest exchange rate for a given currency pair
|
description: Get the latest exchange rate for a given currency pair
|
||||||
endpoint:
|
endpoint:
|
||||||
name: frankfurther_api
|
name: frankfurther_api
|
||||||
|
|
@ -35,16 +33,14 @@ tools:
|
||||||
description: currency symbol to convert to
|
description: currency symbol to convert to
|
||||||
type: string
|
type: string
|
||||||
default: EUR
|
default: EUR
|
||||||
get_list_of_supported_currencies:
|
- name: get_list_of_supported_currencies
|
||||||
name: get_list_of_supported_currencies
|
|
||||||
description: Get the list of supported currencies
|
description: Get the list of supported currencies
|
||||||
endpoint:
|
endpoint:
|
||||||
name: frankfurther_api
|
name: frankfurther_api
|
||||||
path: /v1/currencies
|
path: /v1/currencies
|
||||||
|
|
||||||
agents:
|
agents:
|
||||||
currency_exchange_agent:
|
- name: Currency Exchange Agent
|
||||||
name: Currency Exchange Agent
|
|
||||||
description: Helps with exchange rates for currencies
|
description: Helps with exchange rates for currencies
|
||||||
default_input_modes:
|
default_input_modes:
|
||||||
- text
|
- text
|
||||||
|
|
@ -59,26 +55,26 @@ agents:
|
||||||
examples:
|
examples:
|
||||||
- What is exchange rate between USD and GBP?
|
- What is exchange rate between USD and GBP?
|
||||||
capabilities:
|
capabilities:
|
||||||
streaming: true
|
streaming: true
|
||||||
push_notifications: true
|
push_notifications: true
|
||||||
agent_orchestrator_model: gpt-4o
|
agent_orchestrator_model: gpt-4o
|
||||||
agent_orchestrator_prompt: |
|
agent_orchestrator_prompt: |
|
||||||
You are a specialized assistant for currency conversions.
|
You are a specialized assistant for currency conversions.
|
||||||
Your sole purpose is to use the 'get_exchange_rate' tool to answer questions about currency exchange rates.
|
Your sole purpose is to use the 'get_exchange_rate' tool to answer questions about currency exchange rates.
|
||||||
If the user asks about anything other than currency conversion or exchange rates,
|
If the user asks about anything other than currency conversion or exchange rates,
|
||||||
politely state that you cannot help with that topic and can only assist with currency-related queries.
|
politely state that you cannot help with that topic and can only assist with currency-related queries.
|
||||||
Do not attempt to answer unrelated questions or use tools for other purposes.
|
Do not attempt to answer unrelated questions or use tools for other purposes.
|
||||||
Set response status to input_required if the user needs to provide more information.
|
Set response status to input_required if the user needs to provide more information.
|
||||||
Set response status to error if there is an error while processing the request.
|
Set response status to error if there is an error while processing the request.
|
||||||
Set response status to completed if the request is complete.
|
Set response status to completed if the request is complete.
|
||||||
tools:
|
tools:
|
||||||
- get_exchange_rate
|
- get_exchange_rate
|
||||||
- get_list_of_supported_currencies
|
- get_list_of_supported_currencies
|
||||||
model: gpt-4o
|
model: gpt-4o
|
||||||
system_prompt: |
|
system_prompt: |
|
||||||
You are a specialized currency exchange assistant.
|
You are a specialized currency exchange assistant.
|
||||||
Your task is to provide the user with the exchange rate between two currencies.
|
Your task is to provide the user with the exchange rate between two currencies.
|
||||||
Keep the response concise and relevant to the user's query.
|
Keep the response concise and relevant to the user's query.
|
||||||
tracing:
|
tracing:
|
||||||
random_sampling: 100
|
random_sampling: 100
|
||||||
trace_arch_internal: true
|
trace_arch_internal: true
|
||||||
|
|
|
||||||
|
|
@ -1,58 +0,0 @@
|
||||||
version: v0.1
|
|
||||||
|
|
||||||
listeners:
|
|
||||||
ingress_traffic:
|
|
||||||
address: 0.0.0.0
|
|
||||||
port: 10000
|
|
||||||
message_format: openai
|
|
||||||
timeout: 30s
|
|
||||||
|
|
||||||
llm_providers:
|
|
||||||
- name: gpt-4o
|
|
||||||
access_key: $OPENAI_API_KEY
|
|
||||||
provider_interface: openai
|
|
||||||
model: gpt-4o
|
|
||||||
|
|
||||||
endpoints:
|
|
||||||
|
|
||||||
- name: frankfurther_api
|
|
||||||
endpoint: api.frankfurter.dev
|
|
||||||
protocol: https
|
|
||||||
|
|
||||||
- name: twelvedata_api
|
|
||||||
endpoint: api.twelvedata.com
|
|
||||||
protocol: https
|
|
||||||
|
|
||||||
mcp:
|
|
||||||
|
|
||||||
- name: get_currency_exchange_rate
|
|
||||||
- name: get_list_of_supported_currencies
|
|
||||||
- name: get_stock_quote
|
|
||||||
|
|
||||||
prompt_guards:
|
|
||||||
input_guards:
|
|
||||||
jailbreak:
|
|
||||||
on_exception:
|
|
||||||
message: Looks like you're curious about my abilities, but I can only provide assistance for currency exchange.
|
|
||||||
|
|
||||||
agents:
|
|
||||||
- name: currency_exchange_agent
|
|
||||||
description: Agent for handling currency exchange queries
|
|
||||||
llm_provider: gpt-4o
|
|
||||||
system_prompt: |
|
|
||||||
You are a helpful assistant. Only respond to queries related to currency exchange. If there are any other questions, I can't help you.
|
|
||||||
tools:
|
|
||||||
- get_currency_exchange_rate
|
|
||||||
- get_list_of_supported_currencies
|
|
||||||
|
|
||||||
- name: get_stock_quote_agent
|
|
||||||
description: Agent for handling stock quote queries
|
|
||||||
llm_provider: gpt-4o
|
|
||||||
system_prompt: |
|
|
||||||
You are a helpful stock exchange assistant. You are given stock symbol along with its exchange rate in json format. Your task is to parse the data and present it in a human-readable format. Keep the details to highlevel and be concise.
|
|
||||||
tools:
|
|
||||||
- get_stock_quote
|
|
||||||
|
|
||||||
tracing:
|
|
||||||
random_sampling: 100
|
|
||||||
trace_arch_internal: true
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue