Package Exports
- intellinode
- intellinode/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (intellinode) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Intelligent Node (IntelliNode)
Unified prompt, evaluation, and production integration to any AI model
IntelliNode is the ultimate tool to integrate with the latest language models and deep learning frameworks using javascript. The library provides intuitive functions for sending input to models like ChatGPT, WaveNet and Stable diffusion, and receiving generated text, speech, or images. With just a few lines of code, you can easily access the power of cutting-edge AI models to enhance your projects.
Latest Updates
- Upgrade Llama v2 to the latest version and support chat and code. π¦
- Add Gen function, the fastest way to generate text, speech, code, or images. π
- Update stable diffusion to use the XL model engine. π¨
- Add support for hugging face inference. π€
- Generate tuned prompts using LLM.
- Add support for huge data semantic search. π
- Update the module to support next integration.
- Update chatGPT to support function calls (empowering automation). π€
Join the discord server for the latest updates and community support.
Examples
Functions
Chatbot
- imports:
const { Chatbot, ChatGPTInput, ChatGPTMessage } = require('intellinode');
- call:
// set the system mode and the user message.
const input = new ChatGPTInput('You are a helpful assistant.');
input.addUserMessage('What is the distance between the Earth and the Moon?');
// get the responses from the chatbot
const bot = new Chatbot(apiKey);
const responses = await bot.chat(input);
The documentation on how to switch the chatbot between ChatGPT and LLama can be found in the IntelliNode Wiki.
Semantic Search
- imports:
const { SemanticSearch } = require('intellinode');
- call:
const search = new SemanticSearch(apiKey);
// pivotItem: item to search.
const results = await search.getTopMatches(pivotItem, searchArray, numberOfMatches);
const filteredArray = search.filterTopMatches(results, searchArray)
Gen
- imports:
const { Gen } = require('intellinode');
- call:
// one line to generate blog post
const blogPost = await Gen.get_blog_post(prompt, openaiApiKey);
// or generate html page code
text = 'a registration page with flat modern theme.'
await Gen.save_html_page(text, folder, file_name, openaiKey);
// or convert csv data to charts
const csv_str_data = '<your csv as string>'
const topic = "<the csv topic>";
const htmlCode = await Gen.generate_dashboard(csv_str_data, topic, openaiKey, num_graphs=2);
Models Access
Image models
- imports:
const { RemoteImageModel, SupportedImageModels, ImageModelInput } = require('intellinode');
- call DALLΒ·E:
provider=SupportedImageModels.OPENAI;
const imgModel = new RemoteImageModel(apiKey, provider);
const images = await imgModel.generateImages(new ImageModelInput({
prompt: 'teddy writing a blog in times square',
numberOfImages: 1
}));
- change to call Stable Diffusion:
provider=SupportedImageModels.STABILITY;
// ... same code
Language models
- imports:
const { RemoteLanguageModel, LanguageModelInput } = require('intellinode');
- call openai model:
const langModel = new RemoteLanguageModel('openai-key', 'openai');
model_name = 'text-davinci-003'
const results = await langModel.generateText(new LanguageModelInput({
prompt: 'Write a product description for smart plug that works with voice assistant.',
model: model_name,
temperature: 0.7
}));
console.log('Generated text:', results[0]);
- change to call cohere models:
const langModel = new RemoteLanguageModel('cohere-key', 'cohere');
model_name = 'command'
// ... same code
Speech Synthesis
- imports:
const { RemoteSpeechModel, Text2SpeechInput } = require('intellinode');
- call google model:
const speechModel = new RemoteSpeechModel('google-key', 'google');
const audioContent = await speechModel.generateSpeech(new Text2SpeechInput({
text: text,
language: 'en-gb'
}));
Hugging Face Inference
- imports:
const { HuggingWrapper } = require('intellinode');
- call any model id
const inference = new HuggingWrapper('HF-key');
const result = await huggingWrapper.generateText(
modelId='facebook/bart-large-cnn',
data={ inputs: 'The tower is 324 metres (1,063 ft) tall, about the same height as an 81-storey building...' });
The available hugging-face functions: generateText
, generateImage
, processImage
.
Check the samples for more code details including automating your daily tasks using AI.
Utilities
Prompt Engineering
Generate improved prompts using LLMs:
const promptTemp = await Prompt.fromChatGPT("fantasy image with ninja jumping across buildings", openaiApiKey);
console.log(promptTemp.getInput());
Azure Openai Access
To access Openai services from your Azure account, you have to call the following function at the beginning of your application:
const { ProxyHelper } = require('intellinode');
ProxyHelper.getInstance().setAzureOpenai(resourceName);
Custom proxy
Check the code to access the chatbot through a proxy: proxy chatbot
π Documentation
- IntelliNode Wiki: Check the wiki page for indepth instructions and practical use cases.
- Showcase: Experience the potential of Intellinode in action, and use your keys to generate content and html pages.
- Samples: Explore a code sample with detailed setup documentation to get started with Intellinode.
- Model Evaluation: Demonstrate a swift approach to compare the performance of multiple models against designated target answers.
- Articles: Tutorials about intelliNode and data science topics.
- LLM as Microservice: For scalable production.
Pillars
- The wrapper layer provides low-level access to the latest AI models
- The controller layer offers a unified input to any AI model by handling the differences. So you can switch between models like Openai and Cohere without changing the code.
- The function layer provides abstract functionality that extends based on the app's use cases. For example, an easy-to-use chatbot or marketing content generation utilities.
License
Apache License
Copyright 2023 Github.com/Barqawiz/IntelliNode
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.