# @memberjunction/ai-lm-studio MemberJunction AI provider for LM Studio, enabling integration with locally-hosted models through LM Studio's OpenAI-compatible API. This package extends the OpenAI provider to connect to LM Studio's local inference server. ## Architecture ```mermaid graph TD A["LMStudioLLM
(Provider)"] -->|extends| B["OpenAILLM
(@memberjunction/ai-openai)"] B -->|extends| C["BaseLLM
(@memberjunction/ai)"] A -->|connects to| D["LM Studio Server
(localhost:1234/v1)"] D -->|runs| E["Local Models
(GGUF, GGML)"] C -->|registered via| F["@RegisterClass"] style A fill:#7c5295,stroke:#563a6b,color:#fff style B fill:#2d6a9f,stroke:#1a4971,color:#fff style C fill:#2d6a9f,stroke:#1a4971,color:#fff style D fill:#2d8659,stroke:#1a5c3a,color:#fff style E fill:#b8762f,stroke:#8a5722,color:#fff style F fill:#b8762f,stroke:#8a5722,color:#fff ``` ## Features - **Local Model Hosting**: Run AI models locally without cloud dependencies - **OpenAI Compatible**: Inherits all features from the OpenAI provider - **Streaming**: Full streaming support for real-time responses - **No API Key Required**: Connects to local server (API key parameter ignored) - **Model Flexibility**: Use any model loaded in LM Studio (GGUF, GGML formats) - **Privacy**: All data stays on your local machine - **Configurable Endpoint**: Support for custom host and port settings ## Installation ```bash npm install @memberjunction/ai-lm-studio ``` ## Usage ```typescript import { LMStudioLLM } from '@memberjunction/ai-lm-studio'; // API key is not used but required by the interface const llm = new LMStudioLLM('not-used'); const result = await llm.ChatCompletion({ model: 'local-model', // Model loaded in LM Studio messages: [ { role: 'system', content: 'You are a helpful assistant.' }, { role: 'user', content: 'Explain how local inference works.' } ], temperature: 0.7 }); if (result.success) { console.log(result.data.choices[0].message.content); } ``` ## Configuration The default endpoint is `http://localhost:1234/v1`. Configure via `SetAdditionalSettings` if using a different host/port. ## How It Works `LMStudioLLM` is a thin subclass of `OpenAILLM` that redirects API calls to LM Studio's local server endpoint. LM Studio provides an OpenAI-compatible API, so all chat, streaming, and parameter handling is inherited from the OpenAI provider. ## Prerequisites 1. Install [LM Studio](https://lmstudio.ai/) 2. Download and load a model in LM Studio 3. Start the local server (default: port 1234) 4. Configure the provider in your MemberJunction application ## Class Registration Registered as `LMStudioLLM` via `@RegisterClass(BaseLLM, 'LMStudioLLM')`. ## Dependencies - `@memberjunction/ai` - Core AI abstractions - `@memberjunction/ai-openai` - OpenAI provider (parent class) - `@memberjunction/global` - Class registration