forefront
Overview
This is the pre-release of the Forefront SDK.
Supported features (official docs coming later):
- completions
- models
- fine-tunes
- datasets
- pipelines
Authentication
Create an account on https://platform.forefront.ai and get an API key from the API Keys page
Usage
Initialize the Forefront client
import Forefront from "forefront-sdk";
const client = new Forefront("<YOUR API KEY>");
Generate an LLM text completion
const completion: any = await client.chat.completions.create({
model: "example/fine-tuned-llm",
messages: [
{
role: "user",
content: "aloha world",
},
],
max_tokens: 32,
stream: false,
});
Stream an LLM text completion
const completion: any = await client.chat.completions.create({
model: "mistralai/Mistral-7B-v0.1",
messages: [
{
role: "user",
content: "tell me a story about a toad",
},
],
temperature: 0.7,
max_tokens: 32,
stream: true,
});
for await (const chunk of completion) {
console.log(chunk.choices[0].delta.content);
}
Work with fine-tuned models
// list your fine-tuned models
const fineTunes = await client.fineTunes.list();
// get a fine-tuned model by name
const fineTune = await client.fineTunes.getByName("example/my-custom-llm");
// create a fine-tuned model
const fineTune = await client.fineTunes.create({
name: "my-mistral-fine-tune",
baseModel: "mistralai/Mistral-7B-v0.1",
trainingDataset: "example/my-dataset",
epochs: 1,
// you can make public or private models
isPublic: true,
});
Work with pipelines
// list pipelines
const pipelines = await client.pipelines.list();
// get a pipeline by id
const pipeline = await client.pipelines.getById("pipe_XXXXX");
// get a count of samples in a pipeline
const count = await pipeline.getCount();
// get a filtered view of pipelines, returns a new pipeline object
const js = pipeline.filterByMetadata({ lang: "javascript" });
// get the count of samples that meet the filter criteria
console.log(await js.getCount());
// add a sample to a pipeline
await pipeline.add({
messages: [
{
role: "user",
content: "hello world",
},
],
// optionally add a user id to filter by later
userId: "user_123",
// optionally add a group id to filter by later
groupId: "group_123",
// optionally add key value labels to filter by later
metadata: {
lang: "javascript",
},
});
// create a dataset from a pipeline
// In this example, we are creating a dataset from the
// filtered pipelien object above
const dataset = await js.createDatasetFromPipline("my-pipeline-dataset");