New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

iudex

Package Overview
Dependencies
Maintainers
1
Versions
69
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

iudex - npm Package Compare versions

Comparing version 0.5.0 to 0.6.0

./dist/index.js

12

package.json
{
"name": "iudex",
"version": "0.5.0",
"version": "0.6.0",
"description": "Iudex client",
"scripts": {
"build": "tsup",
"test": "jest"
},
"main": "./dist/index.js",

@@ -45,3 +41,7 @@ "module": "./dist/index.mjs",

"zod": "^3.22.4"
},
"scripts": {
"build": "tsup",
"test": "jest"
}
}
}
# Iudex JS client
Iudex is an infrastructure that enables complex and accurate function calling apis. Our infrastructure provides a
natural language interface that can accomplish complex or answer complex queries given the control of your own functions.
We do this by indexing functions and dividing down queries into runnable parts before surfacing the right function
at the right time.
Check out [iudex.ai](iudex.ai) to sign up.
## Installation

@@ -13,1 +20,85 @@ ```bash

## Usage
*Example where using Iudex replaces OpenAI
Here, `fnMap` just needs to be defined to link all functions you want the function calling
api to be able to call. For Iudex all parameters except `messages` is ignored.
```typescript
import dotenv from 'dotenv';
dotenv.config();
import OpenAI from 'openai';
import { Iudex } from 'iudex';
import _ from 'lodash';
const iudex = new Iudex({ apiKey: process.env.IUDEX_API_KEY });
// Message history
const messagesHist: OpenAI.ChatCompletionMessageParam[] = [];
// Log when messages are pushed
const messages = {
push: (...items: OpenAI.ChatCompletionMessageParam[]) => {
console.log('new message:', items);
messagesHist.push(...items);
},
value: messagesHist,
};
// Initial request
messages.push({
role: 'user',
content: `what is ubers revenue in yen, use edgar`,
});
// Push message to pick a tool
messages.push(await iudex.chat.completions.create({
model: 'gpt-4-turbo-preview',
messages: messages.value,
tools: [],
tool_choice: 'auto',
}).then(res => res.choices[0].message));
let toolMessage = _.last(messages.value);
while (toolMessage && messageHasToolCall(toolMessage)) {
const {
function: { name: fnName, arguments: fnArgs },
id: tool_call_id,
} = toolMessage.tool_calls[0];
// Call the function
// const fnReturn = await fnMap[fnName](JSON.parse(fnArgs));
const fnReturn = 'stubbed value';
// Push function return to message history
messages.push({
role: 'tool',
tool_call_id,
content: JSON.stringify(fnReturn),
});
// Push to ai response message history
messages.push(await iudex.chat.completions.create({
model: 'gpt-4-turbo-preview',
messages: messages.value,
}).then(res => res.choices[0].message));
// Update toolMessage
toolMessage = _.last(messages.value);
}
console.log('FINISHED');
// Helpers
type OpenAIToolCallMessage = OpenAI.ChatCompletionAssistantMessageParam
& { tool_calls: OpenAI.ChatCompletionMessageToolCall[] };
function messageHasToolCall(
message: OpenAI.ChatCompletionMessageParam,
): message is OpenAIToolCallMessage {
return !!(message as OpenAI.ChatCompletionAssistantMessageParam).tool_calls;
}
```
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc