UNPKG

ggai

Version:

OpenAI LLM Agent Interface

145 lines (102 loc) 4.35 kB
# GGAI ``` _ ____ _____ _____ _(_) / __ `/ __ `/ __ `/ / / /_/ / /_/ / /_/ / / \__, /\__, /\__,_/_/ 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. ## Prerequisites - 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(); } } })(); ``` ## Disclaimer 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.** # TODO - Include more LLM parameters (i.e. top p, max tokens, etc.)