ai-engine-sdk-js
Science Score: 44.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (14.3%) to scientific vocabulary
Repository
Basic Info
Statistics
- Stars: 4
- Watchers: 10
- Forks: 9
- Open Issues: 4
- Releases: 5
Metadata Files
README.md
⭐️ Features
- Access to latest AI Engine features
- Simple and intuitive API
- Support for TypeScript and JavaScript
- Can run in the browser or via node
📦 Getting Started
bash
npm install @fetchai/ai-engine-sdk
Using the Chat API
Before you start to integrate the AI Engine into your app, you might want to get familiar with agent functions.
Creating the AIEngine client object
To find out how to generate an apiKey check out the documentation regarding Agentverse API keys.
```javascript import { AiEngine } from "@fetchai/ai-engine-sdk";
const aiEngine = new AiEngine(apiKey); ```
Querying the id of the function group where our to-be-used function(s) belong
javascript
const functionGroups = await aiEngine.getFunctionGroups();
const functionGroupId = functionGroups.find((g) => g.name === "Fetch Verified");
If you would like to use the functions in your own My Functions function group instead then you can use this filter instead:
javascript
const functionGroupId = functionGroups.find((g) => g.name === "My Functions");
Creating a session with the AI Engine using the functionGroupId fetched before
javascript
const session = await aiEngine.createSession(functionGroupId);
Starting the conversation with an arbitrary objective
javascript
await session.start("Find a holiday destination");
Querying new messages
You might want to query new messages regularly with a setTimeout or setInterval to check for new Message (Check out examples/simple.ts for a complete example use case of the SDK):
javascript
const messages = await session.getMessages();
Checking the type of the new message
There are 5 different types of messages which are generated by the AI Engine and the SDK implements methods for checking the type of the respective new Message:
- task selection message:
isTaskSelectionMessage- this message is generated for example in the case when the AI engine recommends functions based on the initial objective or in the case when the AI Engine finds multiple options to provide as an input for a function. - AI Engine message:
isAiEngineMessage- this message type doesn't expect the user to reply to, this is for notifying the user about something - confirmation message:
isConfirmationMessage- when the AI Engine has managed to acquire all the inputs for the agent belonging to the to-be-executed function (= it has managed to build the context), it sends this type of message to the user - agent message:
isAgentMessage- this is a regular question that the user has to reply to with a string - stop message:
isStopMessage- this is the message which is sent when the session has stopped and the AI Engine doesn't wait for any replies from the user
Replying to the different type of messages
All message types (expect for the AI engine message and stop message) expect a response from the user and the SDK implements methods for sending reply in response to those different type of messages respectively.
The first argument of all these reply methods is the Message object to which we want to send back the response.
The SDK methods you can use to reply to:
- task selection message:
session.submitTaskSelection - agent message:
session.submitResponse - confirmation message:
session.submitConfirmationorsession.rejectConfirmation- depending on if the user wants to confirm or reject the context generated by the AI engine respectively
Deleting session with AI engine
After finishing the conversation with AI Engine you can delete the session like this:
javascript
await session.delete();
If you would like to check out a complete example on how to integrate AI Engine into your app, feel free to checkout examples/simple.ts.
✨ Contributing
All contributions are welcome! Remember, contribution includes not only code, but any help with docs or issues raised by other developers. See our contribution guidelines for more details.
❓ Issues, Questions, and Discussions
We use GitHub Issues for tracking requests and bugs, and GitHub Discussions for general questions and discussion.
Owner
- Name: Fetch.AI
- Login: fetchai
- Kind: organization
- Website: https://fetch.ai
- Twitter: Fetch_ai
- Repositories: 40
- Profile: https://github.com/fetchai
Citation (CITATION.cff)
cff-version: 1.2.0 message: "If you use this SDK in your research or project, please cite it as follows:" title: Fetch.ai AI Engine SDK in JavaScript authors: - family-names: Fetch.ai date-released: "2024-05-17" url: "https://github.com/fetchai/ai-engine-sdk-js" license: "Apache-2.0"
GitHub Events
Total
- Watch event: 2
- Fork event: 1
Last Year
- Watch event: 2
- Fork event: 1
Dependencies
- actions/checkout v4 composite
- actions/setup-node v3 composite
- pnpm/action-setup v4 composite
- amannn/action-semantic-pull-request v5 composite
- actions/checkout v4 composite
- actions/setup-node v3 composite
- pnpm/action-setup v4 composite
- @eslint/js ^9.2.0 development
- @types/node ^20.12.12 development
- @types/uuid ^9.0.8 development
- eslint ^9.2.0 development
- globals ^15.2.0 development
- prettier ^3.2.5 development
- rimraf ^5.0.7 development
- ts-node ^10.9.2 development
- tsconfig-paths ^4.2.0 development
- typescript ^5.4.5 development
- typescript-eslint ^7.9.0 development
- node-fetch ^3.3.2
- uuid ^9.0.1
- 171 dependencies