ai fun
1.0.0
ai-fun は、LLM を利用した実験的な関数ライブラリです。関数の目的、パラメーター、出力スキーマを定義し、バックグラウンドでコードを生成して実行できます。 Cursor/GitHub Copilot をプラグイン可能なライブラリとして考えてください。
npm i ai-fun
完全な例:
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 )
出力:
> bun example.ts
3
その他の例は、examples/ にあります。
続行する前に、この Reddit のコメントをお読みください。
コスト削減のため、関数キャッシュはデフォルトで有効になっています。デフォルトでは、関数は.ai-fun.json
という名前のファイルに保存されます。
AIFunctionBuilder
に提供できるオプション:
{
debug ?: boolean
esModules?: boolean
cache?: boolean
cacheFile?: string
}
AIFunctionBackend
クラスを実装することで、独自のバックエンドを作成できます。
export abstract class AIFunctionBackend {
abstract init ( codeContent : CodeContent ) : Promise < void >
abstract exec ( params : any ) : Promise < any >
}
たとえば、src/backends/node を参照してください。
node:vm
exec 関数を使用して、AI によって生成された関数を実行します。
オプション:
{
debug ?: boolean
packageFile?: string
installPackages?: boolean
}
オープンソース プロジェクトとして、コミュニティからの貢献を歓迎します。バグが発生したり、改善を追加したい場合は、お気軽にイシューまたはプルリクエストを開いてください。