Friendli enhances AI application performance and optimizes cost savings with scalable, efficient deployment options, tailored for high-demand AI workloads.
This tutorial guides you through integrating ChatFriendli for chat applications using LangChain. ChatFriendli offers a flexible approach to generating conversational AI responses, supporting both synchronous and asynchronous calls.

Setup

Ensure the @langchain/community is installed.
npm
npm install @langchain/community @langchain/core
Sign in to Friendli Suite to create a Personal Access Token, and set it as the FRIENDLI_TOKEN environment. You can set team id as FRIENDLI_TEAM environment. You can initialize a Friendli chat model with selecting the model you want to use. The default model is meta-llama-3-8b-instruct. You can check the available models at docs.friendli.ai.

Usage

import { ChatFriendli } from "@langchain/community/chat_models/friendli";

const model = new ChatFriendli({
  model: "meta-llama-3-8b-instruct", // Default value
  friendliToken: process.env.FRIENDLI_TOKEN,
  friendliTeam: process.env.FRIENDLI_TEAM,
  maxTokens: 800,
  temperature: 0.9,
  topP: 0.9,
  frequencyPenalty: 0,
  stop: [],
});

const response = await model.invoke(
  "Draft a cover letter for a role in software engineering."
);

console.log(response.content);

/*
Dear [Hiring Manager],

I am excited to apply for the role of Software Engineer at [Company Name]. With my passion for innovation, creativity, and problem-solving, I am confident that I would be a valuable asset to your team.

As a highly motivated and detail-oriented individual, ...
*/

const stream = await model.stream(
  "Draft a cover letter for a role in software engineering."
);

for await (const chunk of stream) {
  console.log(chunk.content);
}

/*
D
ear
 [
H
iring
...
[
Your
 Name
]
*/