ggai
Version:
OpenAI LLM Agent Interface
145 lines (102 loc) • 4.35 kB
Markdown
```
_
____ _____ _____ _(_)
/ __ `/ __ `/ __ `/ /
/ /_/ / /_/ / /_/ / /
\__, /\__, /\__,_/_/ v1.1.13
/____//____/
```
> `ggai` is a standalone AI assistant that is designed to help you perform tasks on your local system. It provides a wide range of functionalities, including file management, command execution, and system automation.
- Node.js v14.0 or higher
- Mac or Linux based system (has not been tested on Windows)
- OpenAI API Key, exposed as environment variable `OPENAI_API_KEY`
## Installation
To install `ggai`, follow these steps:
```bash
npm i -g ggai
```
The `ai` command should now be available on you local system.
## Usage
To use `ggai`, you can run the following command with the specified options:
```bash
ai [options]
```
Options:
- `-m, --model <model>`: Specify the model. Choose from:
- gpt-3.5-turbo-1106
- gpt-4
- gpt-4-1106-preview
(Default: gpt-3.5-turbo-1106)
- `-t, --temperature <temp>`: Specify the temperature. It should be a float between 0 and 2.
(Default: 0.1)
- `-s, --system-prompt <prompt>`: A message to be included for system guidance. It should be a string.
- `-tp, --tools-path <path>`: Path to a custom tools file. It should be a string.
- `-e, --example-tools`: Display an example tools file.
- `-v, --verbose`: Display tool calls and results.
The above options allow you to configure the behavior of `ggai` to suit your needs. For example, you can choose the AI model, set the temperature for randomness in responses, provide a system prompt for context, specify a custom path for tools, and toggle verbose output.
Remember to have your OpenAI API Key set as an environment variable `OPENAI_API_KEY` before running the command.
## Using Custom Tools
`ggai` allows for the integration of custom tools, which are JavaScript functions that can be invoked during execution. To use custom tools:
1. **Create a Custom Tools File**: Define your custom functions in a JavaScript file. Refer to the `tools.js` in the GGAI package for the format and examples.
2. **Define Functions**: Each function should return a Promise and handle the specific task, such as reading or writing files, or executing commands.
3. **Configure the Tools in `tools.js`**: Export your functions and their configurations in `tools.js`. Ensure each function has a unique name and properly defined parameters.
4. **Invoke Custom Functions**: When running `ggai`, you can use these custom functions as part of your command or scripts.
## Using a Custom Agent
Customize your GGAI experience by defining a custom agent. This example shows how to create and integrate a custom agent, allowing you to tailor its capabilities for specific tasks and workflows.
```javascript
const { Agent, ask } = require("ggai");
(async () => {
const config = [
{
type: "function",
function: {
name: "log",
description: "Log something to console.",
parameters: {
type: "object",
properties: {
text: {
type: "string",
description: "The text to log",
},
},
required: ["text"],
},
},
},
];
const tools = {
log: async ({ text }) => {
console.log(`Logging from tool: ${text}`);
return true;
},
};
const systemPrompt = "You are a helpful assistant";
const agent = new Agent({
verbose: true,
streamingIndicators: true,
config,
tools,
systemPrompt,
});
while (true) {
try {
const question = await ask(">>>");
await agent.send(question);
console.log();
} catch (err) {
console.log();
console.log(`Estimated cost: $${agent.cost.toFixed(5)}`);
process.exit();
}
}
})();
```
Please note that `ggai` provides powerful features that allow direct interaction with your local system. This includes the ability to execute commands and modify files.
By using `ggai`, you acknowledge and accept the risks associated with these functionalities. The development team holds no liability for any damage, data loss, or other issues that may occur as a result of using this AI assistant.
**Use `ggai` responsibly and at your own risk.**
- Include more LLM parameters (i.e. top p, max tokens, etc.)