Socket
Book a DemoInstallSign in
Socket

ai-fun

Package Overview
Dependencies
Maintainers
0
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

ai-fun

ai-fun is an experimental LLM-powered function library

latest
Source
npmnpm
Version
1.0.1
Version published
Maintainers
0
Created
Source

ai-fun

ai-fun is an experimental LLM-powered function library. It lets you define the function purpose, the parameters and the output schema and generates and executes the code for you in the background. Think Cursor/GitHub Copilot but as a pluggable library.

npm i ai-fun

Complete example:

example.ts

import { z } from 'zod'
import AIFunctionBuilder from 'ai-fun'
import NodeExec from 'ai-fun/src/backends/node'
import { anthropic } from '@ai-sdk/anthropic'

// Provide a LLM model
const llm = anthropic.chat('claude-3-5-sonnet-20240620')

// Create a new AI Function Builder using Node/exec backend
const backend = new NodeExec()
const ai = new AIFunctionBuilder(llm, backend)

// Define the input parameters and output parameters of the function
const parameters = z.object({ a: z.number(), b: z.number() })
const output = z.number()

// Generate the function
const f = await ai.function('add values provided', parameters, output)

// Call the function and log the result
const result = await f({ a: 1, b: 2 })
console.log(result)

Output:

> bun example.ts
3

More examples found under examples/

DANGER ZONE

Read this Reddit comment before you continue:

Caching

Function caching is enabled by default for cost-saving measures. By default, the functions are stored in a file named .ai-fun.json.

Options you can provide to AIFunctionBuilder:

{
  debug?: boolean
  esModules?: boolean
  cache?: boolean
  cacheFile?: string
}

Backends

You can create your own backends by implementing the AIFunctionBackend class:

export abstract class AIFunctionBackend {
  abstract init(codeContent: CodeContent): Promise<void>
  abstract exec(params: any): Promise<any>
}

See src/backends/node for example.

Node (exec) backend

Executes the AI-generated functions using node:vm exec function.

Options:

{
  debug?: boolean
  packageFile?: string
  installPackages?: boolean
}

Contribute

As an open-source project, we welcome contributions from the community. If you are experiencing any bugs or want to add some improvements, please feel free to open an issue or pull request.

FAQs

Package last updated on 03 Aug 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts