@fazio/langchain-infomaniak
v1.0.0
Published
Infomaniak AI integration for LangChain.js
Readme
@fazio/langchain-infomaniak
LangChain.js integration for Infomaniak AI through their OpenAI-compatible API.
Installation
npm install @fazio/langchain-infomaniak @langchain/coreConfiguration
You need an Infomaniak API token and a product ID. Set the following environment variables:
export INFOMANIAK_API_KEY="your-api-token"
export INFOMANIAK_PRODUCT_ID="your-product-id"Chat Models
import { ChatInfomaniak } from "@fazio/langchain-infomaniak";
const model = new ChatInfomaniak({
model: "qwen3",
temperature: 0.7,
});
const response = await model.invoke("Hello, how are you?");
console.log(response.content);Embeddings
import { InfomaniakEmbeddings } from "@fazio/langchain-infomaniak";
const embeddings = new InfomaniakEmbeddings({
model: "bge_multilingual_gemma2",
});
const vector = await embeddings.embedQuery("Hello world");
console.log(vector.length);LLM (Text Completion)
import { InfomaniakLLM } from "@fazio/langchain-infomaniak";
const llm = new InfomaniakLLM({
model: "qwen3",
});
const result = await llm.invoke("Tell me a joke");
console.log(result);Streaming
import { ChatInfomaniak } from "@fazio/langchain-infomaniak";
const model = new ChatInfomaniak({ model: "qwen3" });
for await (const chunk of await model.stream("Tell me a story")) {
process.stdout.write(chunk.content as string);
}Tool Calling
import { ChatInfomaniak } from "@fazio/langchain-infomaniak";
const model = new ChatInfomaniak({ model: "qwen3" });
const llmWithTools = model.bindTools([
{
name: "get_weather",
description: "Get the current weather in a given location",
schema: {
type: "object",
properties: {
location: { type: "string", description: "The city name" },
},
required: ["location"],
},
},
]);
const result = await llmWithTools.invoke("What is the weather in Geneva?");
console.log(result.tool_calls);Development
Setup
git clone https://github.com/0xfazio/langchain-infomaniak.git
cd langchain-infomaniak
npm install
# Build
npm run buildTesting
# Unit tests (no API key needed)
npm test
# Integration tests (requires API credentials)
export INFOMANIAK_API_KEY="your-api-token"
export INFOMANIAK_PRODUCT_ID="your-product-id"
npm run test:intLinting
npm run lintAPI Reference
- Base URL:
https://api.infomaniak.com/2/ai/{product_id}/openai/v1 - Authentication: Bearer token via
Authorizationheader - Docs: https://developer.infomaniak.com/getting-started
