File tree Expand file tree Collapse file tree
sub-modules/providers/openrouter Expand file tree Collapse file tree Original file line number Diff line number Diff line change 4141 "type" : " ./dist/sub-modules/providers/groq/index.d.ts" ,
4242 "default" : " ./dist/sub-modules/providers/groq/index.js"
4343 },
44+ "./openrouter" : {
45+ "type" : " ./dist/sub-modules/providers/openrouter/index.d.ts" ,
46+ "default" : " ./dist/sub-modules/providers/openrouter/index.js"
47+ },
4448 "./pg" : {
4549 "type" : " ./dist/sub-modules/providers/pg/index.d.ts" ,
4650 "default" : " ./dist/sub-modules/providers/pg/index.js"
7781 "groq" : [
7882 " dist/sub-modules/providers/groq/index.d.ts"
7983 ],
84+ "openrouter" : [
85+ " dist/sub-modules/providers/openrouter/index.d.ts"
86+ ],
8087 "pg" : [
8188 " dist/sub-modules/providers/pg/index.d.ts"
8289 ],
153160 "@langchain/groq" : " ^1.2.0" ,
154161 "@langchain/ollama" : " ^1.2.6" ,
155162 "@langchain/openai" : " ^1.4.4" ,
163+ "@langchain/openrouter" : " ^0.2.2" ,
156164 "@langfuse/core" : " ^5.1.0" ,
157165 "@langfuse/langchain" : " ^5.1.0" ,
158166 "@loopback/build" : " ^11.0.9" ,
Original file line number Diff line number Diff line change 1+ export * from './llms' ;
Original file line number Diff line number Diff line change 1+ export * from './openrouter.provider' ;
Original file line number Diff line number Diff line change 1+ import { Provider } from '@loopback/core' ;
2+ import { ChatOpenRouter } from '@langchain/openrouter' ;
3+ import { LLMProvider } from '../../../../types' ;
4+ import { OpenRouterInstanceConfig } from '../types' ;
5+
6+ export class OpenRouter implements Provider < LLMProvider > {
7+ static createInstance ( config : OpenRouterInstanceConfig ) : ChatOpenRouter {
8+ return new ChatOpenRouter ( {
9+ model : config . model ,
10+ ...config . config ,
11+ } ) ;
12+ }
13+ value ( ) : LLMProvider {
14+ if ( ! process . env . OPENROUTER_MODEL || ! process . env . OPENROUTER_API_KEY ) {
15+ throw new Error (
16+ 'OPENROUTER_MODEL and OPENROUTER_API_KEY environment variables must be set.' ,
17+ ) ;
18+ }
19+ return OpenRouter . createInstance ( {
20+ model : process . env . OPENROUTER_MODEL ,
21+ config : {
22+ apiKey : process . env . OPENROUTER_API_KEY ,
23+ temperature : Number . parseFloat (
24+ process . env . OPENROUTER_TEMPERATURE ?? '0' ,
25+ ) ,
26+ baseURL : process . env . OPENROUTER_BASE_URL ,
27+ } ,
28+ } ) ;
29+ }
30+ }
Original file line number Diff line number Diff line change 1+ import { ChatOpenRouterInput } from '@langchain/openrouter' ;
2+
3+ export type OpenRouterInstanceConfig = {
4+ model : string ;
5+ config : Omit < ChatOpenRouterInput , 'model' > ;
6+ } ;
Original file line number Diff line number Diff line change @@ -12,6 +12,7 @@ import {Provider} from '@loopback/core';
1212import { AnyObject } from '@loopback/repository' ;
1313import { IGraphTool } from './graphs/types' ;
1414import { ChatGroq } from '@langchain/groq' ;
15+ import { ChatOpenRouter } from '@langchain/openrouter' ;
1516
1617export enum SupportedDBs {
1718 PostgreSQL = 'PostgreSQL' ,
@@ -43,7 +44,8 @@ export type LLMProviderType =
4344 | ChatAnthropic
4445 | ChatBedrockConverse
4546 | ChatGoogleGenerativeAI
46- | ChatGroq ;
47+ | ChatGroq
48+ | ChatOpenRouter ;
4749
4850export type LLMProvider = LLMProviderType & {
4951 getFile ?: FileMessageBuilder ;
You can’t perform that action at this time.
0 commit comments