pull/643/head^2
Travis Fischer 2024-06-04 06:38:59 -05:00
rodzic 7f098d1ec3
commit 3269e9b67d
5 zmienionych plików z 43 dodań i 4 usunięć

Wyświetl plik

@ -37,6 +37,11 @@
"types": "./dist/sdks/genkit.d.ts",
"import": "./dist/sdks/genkit.js",
"default": "./dist/sdks/genkit.js"
},
"./calculator": {
"types": "./dist/tools/calculator.d.ts",
"import": "./dist/tools/calculator.js",
"default": "./dist/tools/calculator.js"
}
},
"files": [
@ -81,6 +86,7 @@
"del-cli": "^5.1.0",
"dotenv": "^16.4.5",
"eslint": "^8.57.0",
"expr-eval": "^2.0.2",
"husky": "^9.0.11",
"lint-staged": "^15.2.5",
"np": "^10.0.5",
@ -99,6 +105,7 @@
"@dexaai/dexter": "^2.0.3",
"@genkit-ai/ai": "^0.5.2",
"@langchain/core": "^0.2.5",
"expr-eval": "^2.0.2",
"ai": "^3.1.22"
},
"peerDependenciesMeta": {
@ -111,6 +118,9 @@
"@langchain/core": {
"optional": true
},
"expr-eval": {
"optional": true
},
"ai": {
"optional": true
}

Wyświetl plik

@ -75,6 +75,9 @@ importers:
eslint:
specifier: ^8.57.0
version: 8.57.0
expr-eval:
specifier: ^2.0.2
version: 2.0.2
husky:
specifier: ^9.0.11
version: 9.0.11
@ -1914,6 +1917,9 @@ packages:
resolution: {integrity: sha512-Fqs7ChZm72y40wKjOFXBKg7nJZvQJmewP5/7LtePDdnah/+FH9Hp5sgMujSCMPXlxOAW2//1jrW9pnsY7o20vQ==}
engines: {node: '>=18'}
expr-eval@2.0.2:
resolution: {integrity: sha512-4EMSHGOPSwAfBiibw3ndnP0AvjDWLsMvGOvWEZ2F96IGk0bIVdjQisOHxReSkE13mHcfbuCiXw+G4y0zv6N8Eg==}
express@4.19.2:
resolution: {integrity: sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==}
engines: {node: '>= 0.10.0'}
@ -6519,6 +6525,8 @@ snapshots:
exit-hook@4.0.0: {}
expr-eval@2.0.2: {}
express@4.19.2:
dependencies:
accepts: 1.3.8

Wyświetl plik

@ -106,13 +106,11 @@ export namespace perigon {
q: z.string()
.describe(`Search query. It may use boolean operators (AND, OR, NOT) and quotes for exact matching. Example search queries:
- AI agents
- Compare the latest predictions and popular opinions on the 2024 US election
- election news
- "elon musk" AND tesla
- (upcoming release OR launch) AND apple
- (Google OR Amazon) AND NOT ("Jeff Bezos" OR Android)
- "climate change"
- Crypto* OR Bitcoin NOT Ethereum
`),
title: z
.string()

Wyświetl plik

@ -0,0 +1,22 @@
import { Parser } from 'expr-eval'
import { z } from 'zod'
import { createAIFunction } from '../create-ai-function.js'
export const CalculatorInputSchema = z.object({
expr: z.string().describe('mathematical expression to evaluate')
})
export type CalculatorInput = z.infer<typeof CalculatorInputSchema>
export const calculator = createAIFunction(
{
name: 'calculator',
description:
'Computes the result of simple mathematical expressions. Handles basic arithmetic operations like addition, subtraction, multiplication, division, exponentiation, and common functions like sin, cos, abs, exp, and random.',
inputSchema: CalculatorInputSchema
},
async (input: CalculatorInput) => {
const result: number = Parser.evaluate(input.expr)
return result
}
)

Wyświetl plik

@ -6,7 +6,8 @@ export default defineConfig([
'src/index.ts',
'src/sdks/ai-sdk.ts',
'src/sdks/dexter.ts',
'src/sdks/genkit.ts'
'src/sdks/genkit.ts',
'src/tools/calculator.ts'
],
outDir: 'dist',
target: 'node18',