Update: General project updates
This commit is contained in:
parent
38cb30276f
commit
67c971557e
7 changed files with 145 additions and 107 deletions
|
|
@ -1382,7 +1382,7 @@ VALUES (
|
||||||
'Test Bot',
|
'Test Bot',
|
||||||
'Bot for automated testing',
|
'Bot for automated testing',
|
||||||
'openai',
|
'openai',
|
||||||
'{"model": "gpt-4", "temperature": 0.7}',
|
'{"model": "gpt-5", "temperature": 0.7}',
|
||||||
'qdrant',
|
'qdrant',
|
||||||
'{"collection": "test_kb"}'
|
'{"collection": "test_kb"}'
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -336,9 +336,9 @@ pub trait LlmProvider: Send + Sync {
|
||||||
|
|
||||||
| Provider | Models | Features |
|
| Provider | Models | Features |
|
||||||
|----------|--------|----------|
|
|----------|--------|----------|
|
||||||
| OpenAI | GPT-4, GPT-3.5 | Streaming, Functions, Vision |
|
| OpenAI | GPT-5, GPT-4o, o3 | Streaming, Functions, Vision |
|
||||||
| Anthropic | Claude 3 | Streaming, Long context |
|
| Anthropic | Claude Sonnet 4.5, Claude Opus 4.5 | Streaming, Long context |
|
||||||
| Groq | Llama, Mixtral | Fast inference |
|
| Groq | Llama 3.3, Mixtral | Fast inference |
|
||||||
| Ollama | Any local | Self-hosted |
|
| Ollama | Any local | Self-hosted |
|
||||||
|
|
||||||
### Request Flow
|
### Request Flow
|
||||||
|
|
|
||||||
|
|
@ -81,23 +81,23 @@ episodic-memory-auto-summarize,true
|
||||||
| Setting | Description | Default |
|
| Setting | Description | Default |
|
||||||
|---------|-------------|---------|
|
|---------|-------------|---------|
|
||||||
| `llm-provider` | LLM provider | `openai` |
|
| `llm-provider` | LLM provider | `openai` |
|
||||||
| `llm-model` | Model name | `gpt-4` |
|
| `llm-model` | Model name | `gpt-5` |
|
||||||
| `llm-api-key` | API key (or use env) | - |
|
| `llm-api-key` | API key (or use env) | - |
|
||||||
| `llm-endpoint` | Custom endpoint | Provider default |
|
| `llm-endpoint` | Custom endpoint | Provider default |
|
||||||
|
|
||||||
```csv
|
```csv
|
||||||
name,value
|
name,value
|
||||||
llm-provider,openai
|
llm-provider,openai
|
||||||
llm-model,gpt-4-turbo
|
llm-model,gpt-5
|
||||||
```
|
```
|
||||||
|
|
||||||
### Supported Providers
|
### Supported Providers
|
||||||
|
|
||||||
| Provider | Models |
|
| Provider | Models |
|
||||||
|----------|--------|
|
|----------|--------|
|
||||||
| `openai` | `gpt-4`, `gpt-4-turbo`, `gpt-3.5-turbo` |
|
| `openai` | `gpt-5`, `gpt-5-mini`, `o3` |
|
||||||
| `anthropic` | `claude-3-opus`, `claude-3-sonnet` |
|
| `anthropic` | `claude-sonnet-4.5`, `claude-opus-4.5` |
|
||||||
| `groq` | `llama-3-70b`, `mixtral-8x7b` |
|
| `groq` | `llama-3.3-70b`, `mixtral-8x7b` |
|
||||||
| `ollama` | Any local model |
|
| `ollama` | Any local model |
|
||||||
|
|
||||||
## Feature Flags
|
## Feature Flags
|
||||||
|
|
@ -292,7 +292,7 @@ theme-logo,https://acme.com/logo.svg
|
||||||
episodic-memory-history,2
|
episodic-memory-history,2
|
||||||
episodic-memory-threshold,4
|
episodic-memory-threshold,4
|
||||||
llm-provider,openai
|
llm-provider,openai
|
||||||
llm-model,gpt-4-turbo
|
llm-model,gpt-5
|
||||||
feature-voice,false
|
feature-voice,false
|
||||||
feature-file-upload,true
|
feature-file-upload,true
|
||||||
feature-suggestions,true
|
feature-suggestions,true
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@ use diesel::{
|
||||||
PgConnection,
|
PgConnection,
|
||||||
};
|
};
|
||||||
use futures_util::StreamExt;
|
use futures_util::StreamExt;
|
||||||
|
#[cfg(feature = "progress-bars")]
|
||||||
use indicatif::{ProgressBar, ProgressStyle};
|
use indicatif::{ProgressBar, ProgressStyle};
|
||||||
use reqwest::Client;
|
use reqwest::Client;
|
||||||
use rhai::{Array, Dynamic};
|
use rhai::{Array, Dynamic};
|
||||||
|
|
@ -16,6 +17,7 @@ use smartstring::SmartString;
|
||||||
use std::error::Error;
|
use std::error::Error;
|
||||||
use tokio::fs::File as TokioFile;
|
use tokio::fs::File as TokioFile;
|
||||||
use tokio::io::AsyncWriteExt;
|
use tokio::io::AsyncWriteExt;
|
||||||
|
|
||||||
pub async fn create_s3_operator(
|
pub async fn create_s3_operator(
|
||||||
config: &DriveConfig,
|
config: &DriveConfig,
|
||||||
) -> Result<S3Client, Box<dyn std::error::Error>> {
|
) -> Result<S3Client, Box<dyn std::error::Error>> {
|
||||||
|
|
@ -41,6 +43,7 @@ pub async fn create_s3_operator(
|
||||||
.build();
|
.build();
|
||||||
Ok(S3Client::from_conf(s3_config))
|
Ok(S3Client::from_conf(s3_config))
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn json_value_to_dynamic(value: &Value) -> Dynamic {
|
pub fn json_value_to_dynamic(value: &Value) -> Dynamic {
|
||||||
match value {
|
match value {
|
||||||
Value::Null => Dynamic::UNIT,
|
Value::Null => Dynamic::UNIT,
|
||||||
|
|
@ -67,6 +70,7 @@ pub fn json_value_to_dynamic(value: &Value) -> Dynamic {
|
||||||
),
|
),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn to_array(value: Dynamic) -> Array {
|
pub fn to_array(value: Dynamic) -> Array {
|
||||||
if value.is_array() {
|
if value.is_array() {
|
||||||
value.cast::<Array>()
|
value.cast::<Array>()
|
||||||
|
|
@ -76,6 +80,9 @@ pub fn to_array(value: Dynamic) -> Array {
|
||||||
Array::from([value])
|
Array::from([value])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Download a file from a URL with progress bar (when progress-bars feature is enabled)
|
||||||
|
#[cfg(feature = "progress-bars")]
|
||||||
pub async fn download_file(url: &str, output_path: &str) -> Result<(), anyhow::Error> {
|
pub async fn download_file(url: &str, output_path: &str) -> Result<(), anyhow::Error> {
|
||||||
let url = url.to_string();
|
let url = url.to_string();
|
||||||
let output_path = output_path.to_string();
|
let output_path = output_path.to_string();
|
||||||
|
|
@ -109,6 +116,32 @@ pub async fn download_file(url: &str, output_path: &str) -> Result<(), anyhow::E
|
||||||
});
|
});
|
||||||
download_handle.await?
|
download_handle.await?
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Download a file from a URL (without progress bar when progress-bars feature is disabled)
|
||||||
|
#[cfg(not(feature = "progress-bars"))]
|
||||||
|
pub async fn download_file(url: &str, output_path: &str) -> Result<(), anyhow::Error> {
|
||||||
|
let url = url.to_string();
|
||||||
|
let output_path = output_path.to_string();
|
||||||
|
let download_handle = tokio::spawn(async move {
|
||||||
|
let client = Client::builder()
|
||||||
|
.user_agent("Mozilla/5.0 (compatible; BotServer/1.0)")
|
||||||
|
.build()?;
|
||||||
|
let response = client.get(&url).send().await?;
|
||||||
|
if response.status().is_success() {
|
||||||
|
let mut file = TokioFile::create(&output_path).await?;
|
||||||
|
let mut stream = response.bytes_stream();
|
||||||
|
while let Some(chunk_result) = stream.next().await {
|
||||||
|
let chunk = chunk_result?;
|
||||||
|
file.write_all(&chunk).await?;
|
||||||
|
}
|
||||||
|
Ok(())
|
||||||
|
} else {
|
||||||
|
Err(anyhow::anyhow!("HTTP {}: {}", response.status(), url))
|
||||||
|
}
|
||||||
|
});
|
||||||
|
download_handle.await?
|
||||||
|
}
|
||||||
|
|
||||||
pub fn parse_filter(filter_str: &str) -> Result<(String, Vec<String>), Box<dyn Error>> {
|
pub fn parse_filter(filter_str: &str) -> Result<(String, Vec<String>), Box<dyn Error>> {
|
||||||
let parts: Vec<&str> = filter_str.split('=').collect();
|
let parts: Vec<&str> = filter_str.split('=').collect();
|
||||||
if parts.len() != 2 {
|
if parts.len() != 2 {
|
||||||
|
|
@ -124,21 +157,26 @@ pub fn parse_filter(filter_str: &str) -> Result<(String, Vec<String>), Box<dyn E
|
||||||
}
|
}
|
||||||
Ok((format!("{} = $1", column), vec![value.to_string()]))
|
Ok((format!("{} = $1", column), vec![value.to_string()]))
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn estimate_token_count(text: &str) -> usize {
|
pub fn estimate_token_count(text: &str) -> usize {
|
||||||
let char_count = text.chars().count();
|
let char_count = text.chars().count();
|
||||||
(char_count / 4).max(1)
|
(char_count / 4).max(1)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn establish_pg_connection() -> Result<PgConnection> {
|
pub fn establish_pg_connection() -> Result<PgConnection> {
|
||||||
let database_url = std::env::var("DATABASE_URL").unwrap();
|
let database_url = std::env::var("DATABASE_URL").unwrap();
|
||||||
PgConnection::establish(&database_url)
|
PgConnection::establish(&database_url)
|
||||||
.with_context(|| format!("Failed to connect to database at {}", database_url))
|
.with_context(|| format!("Failed to connect to database at {}", database_url))
|
||||||
}
|
}
|
||||||
|
|
||||||
pub type DbPool = Pool<ConnectionManager<PgConnection>>;
|
pub type DbPool = Pool<ConnectionManager<PgConnection>>;
|
||||||
|
|
||||||
pub fn create_conn() -> Result<DbPool, diesel::r2d2::PoolError> {
|
pub fn create_conn() -> Result<DbPool, diesel::r2d2::PoolError> {
|
||||||
let database_url = std::env::var("DATABASE_URL").unwrap();
|
let database_url = std::env::var("DATABASE_URL").unwrap();
|
||||||
let manager = ConnectionManager::<PgConnection>::new(database_url);
|
let manager = ConnectionManager::<PgConnection>::new(database_url);
|
||||||
Pool::builder().build(manager)
|
Pool::builder().build(manager)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn parse_database_url(url: &str) -> (String, String, String, u32, String) {
|
pub fn parse_database_url(url: &str) -> (String, String, String, u32, String) {
|
||||||
if let Some(stripped) = url.strip_prefix("postgres://") {
|
if let Some(stripped) = url.strip_prefix("postgres://") {
|
||||||
let parts: Vec<&str> = stripped.split('@').collect();
|
let parts: Vec<&str> = stripped.split('@').collect();
|
||||||
|
|
|
||||||
|
|
@ -16,21 +16,21 @@ This `.gbai` template includes the following BASIC keyword files:
|
||||||
|
|
||||||
### 7Timer! Astro Weather
|
### 7Timer! Astro Weather
|
||||||
Get 7-day astronomical weather forecast for stargazing.
|
Get 7-day astronomical weather forecast for stargazing.
|
||||||
```vbs
|
```basic
|
||||||
PARAM location AS string LIKE "116.39,39.90"
|
PARAM location AS string LIKE "116.39,39.90"
|
||||||
' Returns: Weather data for astronomy observation
|
' Returns: Weather data for astronomy observation
|
||||||
```
|
```
|
||||||
|
|
||||||
### 7Timer! Civil Weather
|
### 7Timer! Civil Weather
|
||||||
Get 7-day civil weather forecast with temperature.
|
Get 7-day civil weather forecast with temperature.
|
||||||
```vbs
|
```basic
|
||||||
PARAM location AS string LIKE "116.39,39.90"
|
PARAM location AS string LIKE "116.39,39.90"
|
||||||
' Returns: Temperature, precipitation, wind data
|
' Returns: Temperature, precipitation, wind data
|
||||||
```
|
```
|
||||||
|
|
||||||
### Open-Meteo Weather
|
### Open-Meteo Weather
|
||||||
Get real-time weather data (70+ years of historical data available).
|
Get real-time weather data (70+ years of historical data available).
|
||||||
```vbs
|
```basic
|
||||||
PARAM latitude AS number LIKE 52.52
|
PARAM latitude AS number LIKE 52.52
|
||||||
PARAM longitude AS number LIKE 13.41
|
PARAM longitude AS number LIKE 13.41
|
||||||
' Returns: Current weather conditions
|
' Returns: Current weather conditions
|
||||||
|
|
@ -38,21 +38,21 @@ PARAM longitude AS number LIKE 13.41
|
||||||
|
|
||||||
### Rain Viewer Radar Map
|
### Rain Viewer Radar Map
|
||||||
Get available rain radar map timestamps.
|
Get available rain radar map timestamps.
|
||||||
```vbs
|
```basic
|
||||||
DESCRIPTION "Get available rain radar map timestamps"
|
DESCRIPTION "Get available rain radar map timestamps"
|
||||||
' Returns: Radar data for visualization
|
' Returns: Radar data for visualization
|
||||||
```
|
```
|
||||||
|
|
||||||
### OpenSenseMap Weather Stations
|
### OpenSenseMap Weather Stations
|
||||||
Get data from personal weather stations in a bounding box.
|
Get data from personal weather stations in a bounding box.
|
||||||
```vbs
|
```basic
|
||||||
PARAM bbox AS string LIKE "7.6,51.2,7.8,51.3"
|
PARAM bbox AS string LIKE "7.6,51.2,7.8,51.3"
|
||||||
' Returns: Temperature data from senseBoxes
|
' Returns: Temperature data from senseBoxes
|
||||||
```
|
```
|
||||||
|
|
||||||
### Air Quality Index
|
### Air Quality Index
|
||||||
Get Air Quality Index data for major cities.
|
Get Air Quality Index data for major cities.
|
||||||
```vbs
|
```basic
|
||||||
PARAM city AS string LIKE "beijing"
|
PARAM city AS string LIKE "beijing"
|
||||||
' Returns: AQI level and health recommendations
|
' Returns: AQI level and health recommendations
|
||||||
```
|
```
|
||||||
|
|
@ -60,106 +60,106 @@ PARAM city AS string LIKE "beijing"
|
||||||
## 🐾 Animals APIs
|
## 🐾 Animals APIs
|
||||||
|
|
||||||
### Random Cat Fact
|
### Random Cat Fact
|
||||||
```vbs
|
```basic
|
||||||
DESCRIPTION "Get a random cat fact"
|
DESCRIPTION "Get a random cat fact"
|
||||||
' Returns: Interesting cat fact
|
' Returns: Interesting cat fact
|
||||||
```
|
```
|
||||||
|
|
||||||
### Random Dog Fact
|
### Random Dog Fact
|
||||||
```vbs
|
```basic
|
||||||
DESCRIPTION "Get a random dog fact"
|
DESCRIPTION "Get a random dog fact"
|
||||||
' Returns: Interesting dog fact
|
' Returns: Interesting dog fact
|
||||||
```
|
```
|
||||||
|
|
||||||
### Random Dog Image
|
### Random Dog Image
|
||||||
```vbs
|
```basic
|
||||||
DESCRIPTION "Get a random dog image URL"
|
DESCRIPTION "Get a random dog image URL"
|
||||||
' Returns: URL and downloads image
|
' Returns: URL and downloads image
|
||||||
```
|
```
|
||||||
|
|
||||||
### Random Cat Image
|
### Random Cat Image
|
||||||
```vbs
|
```basic
|
||||||
DESCRIPTION "Get a random cat image from Cataas"
|
DESCRIPTION "Get a random cat image from Cataas"
|
||||||
' Returns: Cat image URL
|
' Returns: Cat image URL
|
||||||
```
|
```
|
||||||
|
|
||||||
### Random Fox Image
|
### Random Fox Image
|
||||||
```vbs
|
```basic
|
||||||
DESCRIPTION "Get a random fox image"
|
DESCRIPTION "Get a random fox image"
|
||||||
' Returns: Fox image URL
|
' Returns: Fox image URL
|
||||||
```
|
```
|
||||||
|
|
||||||
### Random Duck Image
|
### Random Duck Image
|
||||||
```vbs
|
```basic
|
||||||
DESCRIPTION "Get a random duck image"
|
DESCRIPTION "Get a random duck image"
|
||||||
' Returns: Duck image URL
|
' Returns: Duck image URL
|
||||||
```
|
```
|
||||||
|
|
||||||
### Random Shiba Inu Image
|
### Random Shiba Inu Image
|
||||||
```vbs
|
```basic
|
||||||
DESCRIPTION "Get a random Shiba Inu dog image"
|
DESCRIPTION "Get a random Shiba Inu dog image"
|
||||||
' Returns: Shiba Inu image URL
|
' Returns: Shiba Inu image URL
|
||||||
```
|
```
|
||||||
|
|
||||||
### HTTP Cat (Status Code Cats)
|
### HTTP Cat (Status Code Cats)
|
||||||
```vbs
|
```basic
|
||||||
PARAM status_code AS integer LIKE 404
|
PARAM status_code AS integer LIKE 404
|
||||||
' Returns: Cat image representing HTTP status
|
' Returns: Cat image representing HTTP status
|
||||||
```
|
```
|
||||||
|
|
||||||
### HTTP Dog (Status Code Dogs)
|
### HTTP Dog (Status Code Dogs)
|
||||||
```vbs
|
```basic
|
||||||
PARAM status_code AS integer LIKE 404
|
PARAM status_code AS integer LIKE 404
|
||||||
' Returns: Dog image representing HTTP status
|
' Returns: Dog image representing HTTP status
|
||||||
```
|
```
|
||||||
|
|
||||||
### PlaceBear Placeholder
|
### PlaceBear Placeholder
|
||||||
```vbs
|
```basic
|
||||||
PARAM width AS integer LIKE 400
|
PARAM width AS integer LIKE 400
|
||||||
PARAM height AS integer LIKE 300
|
PARAM height AS integer LIKE 300
|
||||||
' Returns: Bear placeholder image
|
' Returns: Bear placeholder image
|
||||||
```
|
```
|
||||||
|
|
||||||
### PlaceDog Placeholder
|
### PlaceDog Placeholder
|
||||||
```vbs
|
```basic
|
||||||
PARAM width AS integer LIKE 400
|
PARAM width AS integer LIKE 400
|
||||||
PARAM height AS integer LIKE 300
|
PARAM height AS integer LIKE 300
|
||||||
' Returns: Dog placeholder image
|
' Returns: Dog placeholder image
|
||||||
```
|
```
|
||||||
|
|
||||||
### PlaceKitten Placeholder
|
### PlaceKitten Placeholder
|
||||||
```vbs
|
```basic
|
||||||
PARAM width AS integer LIKE 400
|
PARAM width AS integer LIKE 400
|
||||||
PARAM height AS integer LIKE 300
|
PARAM height AS integer LIKE 300
|
||||||
' Returns: Kitten placeholder image
|
' Returns: Kitten placeholder image
|
||||||
```
|
```
|
||||||
|
|
||||||
### MeowFacts
|
### MeowFacts
|
||||||
```vbs
|
```basic
|
||||||
PARAM count AS integer LIKE 1
|
PARAM count AS integer LIKE 1
|
||||||
' Returns: Random cat facts (up to 100)
|
' Returns: Random cat facts (up to 100)
|
||||||
```
|
```
|
||||||
|
|
||||||
### Random Axolotl
|
### Random Axolotl
|
||||||
```vbs
|
```basic
|
||||||
DESCRIPTION "Get random axolotl picture and facts"
|
DESCRIPTION "Get random axolotl picture and facts"
|
||||||
' Returns: Axolotl image and facts
|
' Returns: Axolotl image and facts
|
||||||
```
|
```
|
||||||
|
|
||||||
### Zoo Animals Info
|
### Zoo Animals Info
|
||||||
```vbs
|
```basic
|
||||||
DESCRIPTION "Get information about various zoo animals"
|
DESCRIPTION "Get information about various zoo animals"
|
||||||
' Returns: Animal data with images
|
' Returns: Animal data with images
|
||||||
```
|
```
|
||||||
|
|
||||||
### Dog Breeds List
|
### Dog Breeds List
|
||||||
```vbs
|
```basic
|
||||||
DESCRIPTION "Get a list of all dog breeds"
|
DESCRIPTION "Get a list of all dog breeds"
|
||||||
' Returns: Array of dog breeds
|
' Returns: Array of dog breeds
|
||||||
```
|
```
|
||||||
|
|
||||||
### Specific Dog Breed Image
|
### Specific Dog Breed Image
|
||||||
```vbs
|
```basic
|
||||||
PARAM breed AS string LIKE "husky"
|
PARAM breed AS string LIKE "husky"
|
||||||
' Returns: Image of specified breed
|
' Returns: Image of specified breed
|
||||||
```
|
```
|
||||||
|
|
@ -167,145 +167,145 @@ PARAM breed AS string LIKE "husky"
|
||||||
## 😄 Entertainment APIs
|
## 😄 Entertainment APIs
|
||||||
|
|
||||||
### Chuck Norris Joke
|
### Chuck Norris Joke
|
||||||
```vbs
|
```basic
|
||||||
DESCRIPTION "Get a random Chuck Norris joke"
|
DESCRIPTION "Get a random Chuck Norris joke"
|
||||||
' Returns: Chuck Norris joke
|
' Returns: Chuck Norris joke
|
||||||
```
|
```
|
||||||
|
|
||||||
### Chuck Norris Categories
|
### Chuck Norris Categories
|
||||||
```vbs
|
```basic
|
||||||
DESCRIPTION "Get available Chuck Norris joke categories"
|
DESCRIPTION "Get available Chuck Norris joke categories"
|
||||||
' Returns: Array of categories
|
' Returns: Array of categories
|
||||||
```
|
```
|
||||||
|
|
||||||
### Chuck Norris Joke by Category
|
### Chuck Norris Joke by Category
|
||||||
```vbs
|
```basic
|
||||||
PARAM category AS string LIKE "dev"
|
PARAM category AS string LIKE "dev"
|
||||||
' Returns: Joke from specific category
|
' Returns: Joke from specific category
|
||||||
```
|
```
|
||||||
|
|
||||||
### Dad Joke
|
### Dad Joke
|
||||||
```vbs
|
```basic
|
||||||
DESCRIPTION "Get a random dad joke"
|
DESCRIPTION "Get a random dad joke"
|
||||||
' Returns: Dad joke from icanhazdadjoke
|
' Returns: Dad joke from icanhazdadjoke
|
||||||
```
|
```
|
||||||
|
|
||||||
### Search Dad Jokes
|
### Search Dad Jokes
|
||||||
```vbs
|
```basic
|
||||||
PARAM search_term AS string LIKE "cat"
|
PARAM search_term AS string LIKE "cat"
|
||||||
' Returns: Dad jokes containing search term
|
' Returns: Dad jokes containing search term
|
||||||
```
|
```
|
||||||
|
|
||||||
### Bored Activity
|
### Bored Activity
|
||||||
```vbs
|
```basic
|
||||||
DESCRIPTION "Get a random activity suggestion"
|
DESCRIPTION "Get a random activity suggestion"
|
||||||
' Returns: Activity suggestion with details
|
' Returns: Activity suggestion with details
|
||||||
```
|
```
|
||||||
|
|
||||||
### Bored Activity by Type
|
### Bored Activity by Type
|
||||||
```vbs
|
```basic
|
||||||
PARAM activity_type AS "education", "recreational", "social", "diy", "charity", "cooking", "relaxation", "music", "busywork"
|
PARAM activity_type AS "education", "recreational", "social", "diy", "charity", "cooking", "relaxation", "music", "busywork"
|
||||||
' Returns: Activity of specific type
|
' Returns: Activity of specific type
|
||||||
```
|
```
|
||||||
|
|
||||||
### Random Useless Fact
|
### Random Useless Fact
|
||||||
```vbs
|
```basic
|
||||||
DESCRIPTION "Get a random useless but true fact"
|
DESCRIPTION "Get a random useless but true fact"
|
||||||
' Returns: Useless fact
|
' Returns: Useless fact
|
||||||
```
|
```
|
||||||
|
|
||||||
### Random Fun Fact
|
### Random Fun Fact
|
||||||
```vbs
|
```basic
|
||||||
DESCRIPTION "Get a random fun fact"
|
DESCRIPTION "Get a random fun fact"
|
||||||
' Returns: Fun fact
|
' Returns: Fun fact
|
||||||
```
|
```
|
||||||
|
|
||||||
### Kanye West Quote
|
### Kanye West Quote
|
||||||
```vbs
|
```basic
|
||||||
DESCRIPTION "Get a random Kanye West quote"
|
DESCRIPTION "Get a random Kanye West quote"
|
||||||
' Returns: Kanye quote
|
' Returns: Kanye quote
|
||||||
```
|
```
|
||||||
|
|
||||||
### Advice Slip
|
### Advice Slip
|
||||||
```vbs
|
```basic
|
||||||
DESCRIPTION "Get a random piece of advice"
|
DESCRIPTION "Get a random piece of advice"
|
||||||
' Returns: Random advice
|
' Returns: Random advice
|
||||||
```
|
```
|
||||||
|
|
||||||
### Search Advice
|
### Search Advice
|
||||||
```vbs
|
```basic
|
||||||
PARAM query AS string LIKE "love"
|
PARAM query AS string LIKE "love"
|
||||||
' Returns: Advice containing query word
|
' Returns: Advice containing query word
|
||||||
```
|
```
|
||||||
|
|
||||||
### Corporate Buzzword
|
### Corporate Buzzword
|
||||||
```vbs
|
```basic
|
||||||
DESCRIPTION "Get random corporate buzzwords"
|
DESCRIPTION "Get random corporate buzzwords"
|
||||||
' Returns: Corporate buzzword phrase
|
' Returns: Corporate buzzword phrase
|
||||||
```
|
```
|
||||||
|
|
||||||
### Yo Momma Joke
|
### Yo Momma Joke
|
||||||
```vbs
|
```basic
|
||||||
DESCRIPTION "Get a random Yo Momma joke"
|
DESCRIPTION "Get a random Yo Momma joke"
|
||||||
' Returns: Yo Momma joke
|
' Returns: Yo Momma joke
|
||||||
```
|
```
|
||||||
|
|
||||||
### Random Quote
|
### Random Quote
|
||||||
```vbs
|
```basic
|
||||||
DESCRIPTION "Get a random inspirational quote"
|
DESCRIPTION "Get a random inspirational quote"
|
||||||
' Returns: Quote with author
|
' Returns: Quote with author
|
||||||
```
|
```
|
||||||
|
|
||||||
### Quote by Author
|
### Quote by Author
|
||||||
```vbs
|
```basic
|
||||||
PARAM author AS string LIKE "einstein"
|
PARAM author AS string LIKE "einstein"
|
||||||
' Returns: Quote by specific author
|
' Returns: Quote by specific author
|
||||||
```
|
```
|
||||||
|
|
||||||
### Programming Quote
|
### Programming Quote
|
||||||
```vbs
|
```basic
|
||||||
DESCRIPTION "Get a random programming quote"
|
DESCRIPTION "Get a random programming quote"
|
||||||
' Returns: Programming-related quote
|
' Returns: Programming-related quote
|
||||||
```
|
```
|
||||||
|
|
||||||
### Zen Quote
|
### Zen Quote
|
||||||
```vbs
|
```basic
|
||||||
DESCRIPTION "Get a random Zen/Stoicism quote"
|
DESCRIPTION "Get a random Zen/Stoicism quote"
|
||||||
' Returns: Zen quote
|
' Returns: Zen quote
|
||||||
```
|
```
|
||||||
|
|
||||||
### Affirmation
|
### Affirmation
|
||||||
```vbs
|
```basic
|
||||||
DESCRIPTION "Get a random positive affirmation"
|
DESCRIPTION "Get a random positive affirmation"
|
||||||
' Returns: Daily affirmation
|
' Returns: Daily affirmation
|
||||||
```
|
```
|
||||||
|
|
||||||
### Random Trivia
|
### Random Trivia
|
||||||
```vbs
|
```basic
|
||||||
DESCRIPTION "Get a random trivia question"
|
DESCRIPTION "Get a random trivia question"
|
||||||
' Returns: Trivia question with answer
|
' Returns: Trivia question with answer
|
||||||
```
|
```
|
||||||
|
|
||||||
### Multiple Trivia Questions
|
### Multiple Trivia Questions
|
||||||
```vbs
|
```basic
|
||||||
PARAM amount AS integer LIKE 5
|
PARAM amount AS integer LIKE 5
|
||||||
' Returns: Multiple trivia questions
|
' Returns: Multiple trivia questions
|
||||||
```
|
```
|
||||||
|
|
||||||
### Excuse Generator
|
### Excuse Generator
|
||||||
```vbs
|
```basic
|
||||||
DESCRIPTION "Get a random excuse"
|
DESCRIPTION "Get a random excuse"
|
||||||
' Returns: Random excuse
|
' Returns: Random excuse
|
||||||
```
|
```
|
||||||
|
|
||||||
### Insult Generator
|
### Insult Generator
|
||||||
```vbs
|
```basic
|
||||||
DESCRIPTION "Get a random insult (clean)"
|
DESCRIPTION "Get a random insult (clean)"
|
||||||
' Returns: Random insult
|
' Returns: Random insult
|
||||||
```
|
```
|
||||||
|
|
||||||
### Compliment Generator
|
### Compliment Generator
|
||||||
```vbs
|
```basic
|
||||||
DESCRIPTION "Get a random compliment"
|
DESCRIPTION "Get a random compliment"
|
||||||
' Returns: Random compliment
|
' Returns: Random compliment
|
||||||
```
|
```
|
||||||
|
|
@ -313,97 +313,97 @@ DESCRIPTION "Get a random compliment"
|
||||||
## 🍽️ Food & Drink APIs
|
## 🍽️ Food & Drink APIs
|
||||||
|
|
||||||
### Random Coffee Image
|
### Random Coffee Image
|
||||||
```vbs
|
```basic
|
||||||
DESCRIPTION "Get a random coffee image"
|
DESCRIPTION "Get a random coffee image"
|
||||||
' Returns: Coffee image URL
|
' Returns: Coffee image URL
|
||||||
```
|
```
|
||||||
|
|
||||||
### Random Food Dish
|
### Random Food Dish
|
||||||
```vbs
|
```basic
|
||||||
DESCRIPTION "Get a random food dish image"
|
DESCRIPTION "Get a random food dish image"
|
||||||
' Returns: Food dish image
|
' Returns: Food dish image
|
||||||
```
|
```
|
||||||
|
|
||||||
### Random Food by Category
|
### Random Food by Category
|
||||||
```vbs
|
```basic
|
||||||
PARAM category AS "biryani", "burger", "butter-chicken", "dessert", "dosa", "idly", "pasta", "pizza", "rice", "samosa"
|
PARAM category AS "biryani", "burger", "butter-chicken", "dessert", "dosa", "idly", "pasta", "pizza", "rice", "samosa"
|
||||||
' Returns: Food image from category
|
' Returns: Food image from category
|
||||||
```
|
```
|
||||||
|
|
||||||
### Random Meal Recipe
|
### Random Meal Recipe
|
||||||
```vbs
|
```basic
|
||||||
DESCRIPTION "Get a random meal recipe"
|
DESCRIPTION "Get a random meal recipe"
|
||||||
' Returns: Full recipe with ingredients
|
' Returns: Full recipe with ingredients
|
||||||
```
|
```
|
||||||
|
|
||||||
### Search Meal by Name
|
### Search Meal by Name
|
||||||
```vbs
|
```basic
|
||||||
PARAM meal_name AS string LIKE "chicken"
|
PARAM meal_name AS string LIKE "chicken"
|
||||||
' Returns: Meals matching search
|
' Returns: Meals matching search
|
||||||
```
|
```
|
||||||
|
|
||||||
### Random Cocktail Recipe
|
### Random Cocktail Recipe
|
||||||
```vbs
|
```basic
|
||||||
DESCRIPTION "Get a random cocktail recipe"
|
DESCRIPTION "Get a random cocktail recipe"
|
||||||
' Returns: Cocktail recipe with ingredients
|
' Returns: Cocktail recipe with ingredients
|
||||||
```
|
```
|
||||||
|
|
||||||
### Search Cocktail by Name
|
### Search Cocktail by Name
|
||||||
```vbs
|
```basic
|
||||||
PARAM cocktail_name AS string LIKE "margarita"
|
PARAM cocktail_name AS string LIKE "margarita"
|
||||||
' Returns: Cocktails matching search
|
' Returns: Cocktails matching search
|
||||||
```
|
```
|
||||||
|
|
||||||
### Search Cocktail by Ingredient
|
### Search Cocktail by Ingredient
|
||||||
```vbs
|
```basic
|
||||||
PARAM ingredient AS string LIKE "vodka"
|
PARAM ingredient AS string LIKE "vodka"
|
||||||
' Returns: Cocktails with ingredient
|
' Returns: Cocktails with ingredient
|
||||||
```
|
```
|
||||||
|
|
||||||
### Fruit Information
|
### Fruit Information
|
||||||
```vbs
|
```basic
|
||||||
PARAM fruit_name AS string LIKE "apple"
|
PARAM fruit_name AS string LIKE "apple"
|
||||||
' Returns: Nutritional information
|
' Returns: Nutritional information
|
||||||
```
|
```
|
||||||
|
|
||||||
### All Fruits List
|
### All Fruits List
|
||||||
```vbs
|
```basic
|
||||||
DESCRIPTION "Get a list of all fruits"
|
DESCRIPTION "Get a list of all fruits"
|
||||||
' Returns: Array of fruits
|
' Returns: Array of fruits
|
||||||
```
|
```
|
||||||
|
|
||||||
### Fruits by Family
|
### Fruits by Family
|
||||||
```vbs
|
```basic
|
||||||
PARAM family AS string LIKE "Rosaceae"
|
PARAM family AS string LIKE "Rosaceae"
|
||||||
' Returns: Fruits from specific family
|
' Returns: Fruits from specific family
|
||||||
```
|
```
|
||||||
|
|
||||||
### Random Taco Recipe
|
### Random Taco Recipe
|
||||||
```vbs
|
```basic
|
||||||
DESCRIPTION "Get a random taco recipe"
|
DESCRIPTION "Get a random taco recipe"
|
||||||
' Returns: Taco recipe components
|
' Returns: Taco recipe components
|
||||||
```
|
```
|
||||||
|
|
||||||
### PunkAPI Beer Info
|
### PunkAPI Beer Info
|
||||||
```vbs
|
```basic
|
||||||
DESCRIPTION "Get a random beer recipe"
|
DESCRIPTION "Get a random beer recipe"
|
||||||
' Returns: Beer details and recipe
|
' Returns: Beer details and recipe
|
||||||
```
|
```
|
||||||
|
|
||||||
### Search Beer by Name
|
### Search Beer by Name
|
||||||
```vbs
|
```basic
|
||||||
PARAM beer_name AS string LIKE "punk"
|
PARAM beer_name AS string LIKE "punk"
|
||||||
' Returns: Beers matching search
|
' Returns: Beers matching search
|
||||||
```
|
```
|
||||||
|
|
||||||
### High ABV Beers
|
### High ABV Beers
|
||||||
```vbs
|
```basic
|
||||||
PARAM min_abv AS number LIKE 8.0
|
PARAM min_abv AS number LIKE 8.0
|
||||||
' Returns: Beers with high alcohol content
|
' Returns: Beers with high alcohol content
|
||||||
```
|
```
|
||||||
|
|
||||||
### Bacon Ipsum Text
|
### Bacon Ipsum Text
|
||||||
```vbs
|
```basic
|
||||||
PARAM paragraphs AS integer LIKE 3
|
PARAM paragraphs AS integer LIKE 3
|
||||||
' Returns: Bacon-themed lorem ipsum
|
' Returns: Bacon-themed lorem ipsum
|
||||||
```
|
```
|
||||||
|
|
@ -411,81 +411,81 @@ PARAM paragraphs AS integer LIKE 3
|
||||||
## 🔧 Data Utility & Geocoding APIs
|
## 🔧 Data Utility & Geocoding APIs
|
||||||
|
|
||||||
### Generate UUID
|
### Generate UUID
|
||||||
```vbs
|
```basic
|
||||||
DESCRIPTION "Generate a random UUID v4"
|
DESCRIPTION "Generate a random UUID v4"
|
||||||
' Returns: UUID string
|
' Returns: UUID string
|
||||||
```
|
```
|
||||||
|
|
||||||
### Generate Multiple UUIDs
|
### Generate Multiple UUIDs
|
||||||
```vbs
|
```basic
|
||||||
PARAM count AS integer LIKE 5
|
PARAM count AS integer LIKE 5
|
||||||
' Returns: Array of UUIDs
|
' Returns: Array of UUIDs
|
||||||
```
|
```
|
||||||
|
|
||||||
### Get My IP Address
|
### Get My IP Address
|
||||||
```vbs
|
```basic
|
||||||
DESCRIPTION "Get your current public IP"
|
DESCRIPTION "Get your current public IP"
|
||||||
' Returns: IP address string
|
' Returns: IP address string
|
||||||
```
|
```
|
||||||
|
|
||||||
### Get IP Geolocation
|
### Get IP Geolocation
|
||||||
```vbs
|
```basic
|
||||||
PARAM ip_address AS string LIKE "8.8.8.8"
|
PARAM ip_address AS string LIKE "8.8.8.8"
|
||||||
' Returns: Country, city, coordinates, ISP
|
' Returns: Country, city, coordinates, ISP
|
||||||
```
|
```
|
||||||
|
|
||||||
### Check if Number is Even
|
### Check if Number is Even
|
||||||
```vbs
|
```basic
|
||||||
PARAM number AS integer LIKE 42
|
PARAM number AS integer LIKE 42
|
||||||
' Returns: Boolean (humor API)
|
' Returns: Boolean (humor API)
|
||||||
```
|
```
|
||||||
|
|
||||||
### Random Data Generator
|
### Random Data Generator
|
||||||
```vbs
|
```basic
|
||||||
DESCRIPTION "Generate random test data"
|
DESCRIPTION "Generate random test data"
|
||||||
' Returns: User profile data
|
' Returns: User profile data
|
||||||
```
|
```
|
||||||
|
|
||||||
### Generate Lorem Ipsum
|
### Generate Lorem Ipsum
|
||||||
```vbs
|
```basic
|
||||||
PARAM paragraphs AS integer LIKE 3
|
PARAM paragraphs AS integer LIKE 3
|
||||||
' Returns: Lorem ipsum text
|
' Returns: Lorem ipsum text
|
||||||
```
|
```
|
||||||
|
|
||||||
### QR Code Generator
|
### QR Code Generator
|
||||||
```vbs
|
```basic
|
||||||
PARAM text AS string LIKE "https://pragmatismo.com.br"
|
PARAM text AS string LIKE "https://pragmatismo.com.br"
|
||||||
PARAM size AS integer LIKE 200
|
PARAM size AS integer LIKE 200
|
||||||
' Returns: QR code image
|
' Returns: QR code image
|
||||||
```
|
```
|
||||||
|
|
||||||
### Barcode Generator
|
### Barcode Generator
|
||||||
```vbs
|
```basic
|
||||||
PARAM barcode_data AS string LIKE "1234567890"
|
PARAM barcode_data AS string LIKE "1234567890"
|
||||||
PARAM format AS "code128", "ean13", "upca", "code39"
|
PARAM format AS "code128", "ean13", "upca", "code39"
|
||||||
' Returns: Barcode image
|
' Returns: Barcode image
|
||||||
```
|
```
|
||||||
|
|
||||||
### Country Information
|
### Country Information
|
||||||
```vbs
|
```basic
|
||||||
PARAM country AS string LIKE "brazil"
|
PARAM country AS string LIKE "brazil"
|
||||||
' Returns: Detailed country data
|
' Returns: Detailed country data
|
||||||
```
|
```
|
||||||
|
|
||||||
### All Countries List
|
### All Countries List
|
||||||
```vbs
|
```basic
|
||||||
DESCRIPTION "Get a list of all countries"
|
DESCRIPTION "Get a list of all countries"
|
||||||
' Returns: Array of 250+ countries
|
' Returns: Array of 250+ countries
|
||||||
```
|
```
|
||||||
|
|
||||||
### Countries by Region
|
### Countries by Region
|
||||||
```vbs
|
```basic
|
||||||
PARAM region AS "africa", "americas", "asia", "europe", "oceania"
|
PARAM region AS "africa", "americas", "asia", "europe", "oceania"
|
||||||
' Returns: Countries in region
|
' Returns: Countries in region
|
||||||
```
|
```
|
||||||
|
|
||||||
### Currency Converter
|
### Currency Converter
|
||||||
```vbs
|
```basic
|
||||||
PARAM amount AS number LIKE 100
|
PARAM amount AS number LIKE 100
|
||||||
PARAM from_currency AS string LIKE "USD"
|
PARAM from_currency AS string LIKE "USD"
|
||||||
PARAM to_currency AS string LIKE "EUR"
|
PARAM to_currency AS string LIKE "EUR"
|
||||||
|
|
@ -493,81 +493,81 @@ PARAM to_currency AS string LIKE "EUR"
|
||||||
```
|
```
|
||||||
|
|
||||||
### Timezone Info
|
### Timezone Info
|
||||||
```vbs
|
```basic
|
||||||
PARAM timezone AS string LIKE "America/New_York"
|
PARAM timezone AS string LIKE "America/New_York"
|
||||||
' Returns: Current time in timezone
|
' Returns: Current time in timezone
|
||||||
```
|
```
|
||||||
|
|
||||||
### All Timezones List
|
### All Timezones List
|
||||||
```vbs
|
```basic
|
||||||
DESCRIPTION "Get all timezones"
|
DESCRIPTION "Get all timezones"
|
||||||
' Returns: Array of 400+ timezones
|
' Returns: Array of 400+ timezones
|
||||||
```
|
```
|
||||||
|
|
||||||
### Public Holidays
|
### Public Holidays
|
||||||
```vbs
|
```basic
|
||||||
PARAM country_code AS string LIKE "US"
|
PARAM country_code AS string LIKE "US"
|
||||||
PARAM year AS integer LIKE 2024
|
PARAM year AS integer LIKE 2024
|
||||||
' Returns: List of public holidays
|
' Returns: List of public holidays
|
||||||
```
|
```
|
||||||
|
|
||||||
### Number Facts
|
### Number Facts
|
||||||
```vbs
|
```basic
|
||||||
PARAM number AS integer LIKE 42
|
PARAM number AS integer LIKE 42
|
||||||
' Returns: Interesting number fact
|
' Returns: Interesting number fact
|
||||||
```
|
```
|
||||||
|
|
||||||
### Random Number Fact
|
### Random Number Fact
|
||||||
```vbs
|
```basic
|
||||||
DESCRIPTION "Get a random number fact"
|
DESCRIPTION "Get a random number fact"
|
||||||
' Returns: Random number fact
|
' Returns: Random number fact
|
||||||
```
|
```
|
||||||
|
|
||||||
### Date Facts
|
### Date Facts
|
||||||
```vbs
|
```basic
|
||||||
PARAM month AS integer LIKE 3
|
PARAM month AS integer LIKE 3
|
||||||
PARAM day AS integer LIKE 14
|
PARAM day AS integer LIKE 14
|
||||||
' Returns: Historical facts about date
|
' Returns: Historical facts about date
|
||||||
```
|
```
|
||||||
|
|
||||||
### Math Fact
|
### Math Fact
|
||||||
```vbs
|
```basic
|
||||||
PARAM number AS integer LIKE 1729
|
PARAM number AS integer LIKE 1729
|
||||||
' Returns: Mathematical fact
|
' Returns: Mathematical fact
|
||||||
```
|
```
|
||||||
|
|
||||||
### Yes or No Decision
|
### Yes or No Decision
|
||||||
```vbs
|
```basic
|
||||||
DESCRIPTION "Get a random Yes/No answer"
|
DESCRIPTION "Get a random Yes/No answer"
|
||||||
' Returns: Yes or No with GIF
|
' Returns: Yes or No with GIF
|
||||||
```
|
```
|
||||||
|
|
||||||
### Postcode Lookup UK
|
### Postcode Lookup UK
|
||||||
```vbs
|
```basic
|
||||||
PARAM postcode AS string LIKE "SW1A1AA"
|
PARAM postcode AS string LIKE "SW1A1AA"
|
||||||
' Returns: UK postcode information
|
' Returns: UK postcode information
|
||||||
```
|
```
|
||||||
|
|
||||||
### Brazilian CEP Lookup
|
### Brazilian CEP Lookup
|
||||||
```vbs
|
```basic
|
||||||
PARAM cep AS string LIKE "01310-100"
|
PARAM cep AS string LIKE "01310-100"
|
||||||
' Returns: Brazilian postal code data
|
' Returns: Brazilian postal code data
|
||||||
```
|
```
|
||||||
|
|
||||||
### JSON Placeholder Post
|
### JSON Placeholder Post
|
||||||
```vbs
|
```basic
|
||||||
DESCRIPTION "Get sample post data"
|
DESCRIPTION "Get sample post data"
|
||||||
' Returns: Test post data
|
' Returns: Test post data
|
||||||
```
|
```
|
||||||
|
|
||||||
### Random User Generator
|
### Random User Generator
|
||||||
```vbs
|
```basic
|
||||||
DESCRIPTION "Generate random user data"
|
DESCRIPTION "Generate random user data"
|
||||||
' Returns: Realistic user profile
|
' Returns: Realistic user profile
|
||||||
```
|
```
|
||||||
|
|
||||||
### Multiple Random Users
|
### Multiple Random Users
|
||||||
```vbs
|
```basic
|
||||||
PARAM count AS integer LIKE 5
|
PARAM count AS integer LIKE 5
|
||||||
' Returns: Array of user profiles
|
' Returns: Array of user profiles
|
||||||
```
|
```
|
||||||
|
|
@ -575,7 +575,7 @@ PARAM count AS integer LIKE 5
|
||||||
## 🚀 Usage Examples
|
## 🚀 Usage Examples
|
||||||
|
|
||||||
### Example 1: Weather Bot
|
### Example 1: Weather Bot
|
||||||
```vbs
|
```basic
|
||||||
TALK "Where would you like to check the weather?"
|
TALK "Where would you like to check the weather?"
|
||||||
HEAR city AS NAME
|
HEAR city AS NAME
|
||||||
|
|
||||||
|
|
@ -592,7 +592,7 @@ TALK "Wind speed: " + weather.current_weather.windspeed + " km/h"
|
||||||
```
|
```
|
||||||
|
|
||||||
### Example 2: Daily Motivation Bot
|
### Example 2: Daily Motivation Bot
|
||||||
```vbs
|
```basic
|
||||||
REM Get random quote
|
REM Get random quote
|
||||||
quote_data = GET "https://api.quotable.io/random"
|
quote_data = GET "https://api.quotable.io/random"
|
||||||
|
|
||||||
|
|
@ -610,7 +610,7 @@ TALK affirmation.affirmation
|
||||||
```
|
```
|
||||||
|
|
||||||
### Example 3: Random Pet Image Bot
|
### Example 3: Random Pet Image Bot
|
||||||
```vbs
|
```basic
|
||||||
HEAR choice AS "Cat", "Dog", "Fox", "Duck"
|
HEAR choice AS "Cat", "Dog", "Fox", "Duck"
|
||||||
|
|
||||||
IF choice = "Cat" THEN
|
IF choice = "Cat" THEN
|
||||||
|
|
@ -632,7 +632,7 @@ SEND FILE file
|
||||||
```
|
```
|
||||||
|
|
||||||
### Example 4: Recipe Finder Bot
|
### Example 4: Recipe Finder Bot
|
||||||
```vbs
|
```basic
|
||||||
TALK "What are you in the mood for?"
|
TALK "What are you in the mood for?"
|
||||||
HEAR food AS "Meal", "Cocktail", "Beer"
|
HEAR food AS "Meal", "Cocktail", "Beer"
|
||||||
|
|
||||||
|
|
@ -657,7 +657,7 @@ END IF
|
||||||
```
|
```
|
||||||
|
|
||||||
### Example 5: Travel Information Bot
|
### Example 5: Travel Information Bot
|
||||||
```vbs
|
```basic
|
||||||
TALK "Which country would you like to know about?"
|
TALK "Which country would you like to know about?"
|
||||||
HEAR country AS NAME
|
HEAR country AS NAME
|
||||||
|
|
||||||
|
|
@ -713,7 +713,7 @@ All APIs in this package are from the [public-apis](https://github.com/public-ap
|
||||||
|
|
||||||
You can easily extend these keywords or create your own:
|
You can easily extend these keywords or create your own:
|
||||||
|
|
||||||
```vbs
|
```basic
|
||||||
REM Template for new API keyword
|
REM Template for new API keyword
|
||||||
PARAM your_param AS string LIKE "example"
|
PARAM your_param AS string LIKE "example"
|
||||||
DESCRIPTION "What your keyword does"
|
DESCRIPTION "What your keyword does"
|
||||||
|
|
|
||||||
|
|
@ -133,7 +133,7 @@ Configure in `llm-server.gbot/config.csv`:
|
||||||
| Parameter | Description | Example |
|
| Parameter | Description | Example |
|
||||||
|-----------|-------------|---------|
|
|-----------|-------------|---------|
|
||||||
| `LLM Provider` | AI model provider | `openai` |
|
| `LLM Provider` | AI model provider | `openai` |
|
||||||
| `LLM Model` | Specific model | `gpt-4` |
|
| `LLM Model` | Specific model | `gpt-5` |
|
||||||
| `Max Tokens` | Response length limit | `500` |
|
| `Max Tokens` | Response length limit | `500` |
|
||||||
| `Temperature` | Response creativity | `0.3` |
|
| `Temperature` | Response creativity | `0.3` |
|
||||||
| `API Mode` | Enable API mode | `true` |
|
| `API Mode` | Enable API mode | `true` |
|
||||||
|
|
|
||||||
|
|
@ -285,7 +285,7 @@ Configure in `llm-tools.gbot/config.csv`:
|
||||||
| Parameter | Description | Example |
|
| Parameter | Description | Example |
|
||||||
|-----------|-------------|---------|
|
|-----------|-------------|---------|
|
||||||
| `LLM Provider` | AI provider | `openai` |
|
| `LLM Provider` | AI provider | `openai` |
|
||||||
| `LLM Model` | Model for tool calls | `gpt-4` |
|
| `LLM Model` | Model for tool calls | `gpt-4o` |
|
||||||
| `Tool Timeout` | Max tool execution time | `30` |
|
| `Tool Timeout` | Max tool execution time | `30` |
|
||||||
| `Max Tool Calls` | Limit per conversation | `10` |
|
| `Max Tool Calls` | Limit per conversation | `10` |
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue