Skip to content

Plugin system availability and usage guidance #111

@jsntjinjin

Description

@jsntjinjin

Background

I'm trying to create a custom OpenRouter provider plugin following the example in
examples/custom_provider_plugin, but encountering compatibility issues with the current
released version.

Issue Description

What I tried:

  1. Following the official example: Used @lx.providers.registry.register() decorator and
    entry points as shown in examples/custom_provider_plugin

  2. Testing with current PyPI version (1.0.5):

import langextract as lx
# AttributeError: module 'langextract' has no attribute 'providers'
  1. Testing with factory approach:
config = lx.factory.ModelConfig(model_id="...", provider="...")
# AttributeError: module 'langextract' has no attribute 'factory'

Current situation:

  • ✅ Example exists in source code with complete implementation
  • ❌ Plugin system not available in PyPI version 1.0.5
  • ❌ lx.providers.registry module missing
  • ❌ lx.factory module missing

Questions

  1. Release timeline: When will the plugin system be available in a PyPI release?
  2. Version gap: Is there a development version I should be using?
  3. Workaround: What's the recommended approach for custom providers until plugin system is
    available?
  4. Migration path: When plugin system is released, will existing custom providers need updates?

Use Case

I'm building a production API that needs OpenRouter integration with LangExtract's chunking
capabilities. The plugin system would be perfect for this, but I need to know the timeline for
planning purposes.

Environment

  • LangExtract version: 1.0.5 (latest on PyPI)
  • Python: 3.12
  • Installation: pip install langextract

Related

This relates to the plugin system discussion in #99. The community is interested in creating
providers like langextract-azure-openai, langextract-openrouter, etc., but we need clarity on
when this will be possible.

Thanks for the amazing work on LangExtract! 🚀

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions