Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

1 Commit

Repository files navigation

Projects Parser

PyPI versionLicense: MITDownloadsLinkedIn

A robust package for extracting structured insights from project titles and descriptions using advanced pattern matching with retries. This tool helps developers parse and organize project information (like names, programming languages, and key features) from text snippets without handling raw code, images, or videos.


📦 Installation

Install the package via pip:

pip install projects_parser

🚀 Features

  • Structured Extraction: Parses project names, programming languages, and key features from user input.
  • Flexible LLM Integration: Works with default ChatLLM7 or any LangChain-compatible LLM (e.g., OpenAI, Anthropic, Google).
  • Retry Mechanism: Built-in resilience for reliable parsing.
  • Regex Validation: Ensures extracted data matches predefined patterns.

🔧 Usage

Basic Usage (Default LLM: ChatLLM7)

fromprojects_parserimportprojects_parseruser_input="A Python web app with Flask and React for data visualization."response=projects_parser(user_input)
print(response) # Extracted structured data

Custom LLM Integration

Replace the default ChatLLM7 with any LangChain-compatible LLM (e.g., OpenAI, Anthropic, Google):

Example with OpenAI:

fromlangchain_openaiimportChatOpenAIfromprojects_parserimportprojects_parserllm=ChatOpenAI()
response=projects_parser(user_input, llm=llm)

Example with Anthropic:

fromlangchain_anthropicimportChatAnthropicfromprojects_parserimportprojects_parserllm=ChatAnthropic()
response=projects_parser(user_input, llm=llm)

Example with Google Generative AI:

fromlangchain_google_genaiimportChatGoogleGenerativeAIfromprojects_parserimportprojects_parserllm=ChatGoogleGenerativeAI()
response=projects_parser(user_input, llm=llm)

🔑 API Key Configuration

Default Behavior (LLM7 Free Tier)

  • Uses LLM7_API_KEY from environment variables or falls back to a default key.
  • Suitable for most use cases (check LLM7 free tier limits).

Custom API Key

Pass your API key directly or via environment variable:

# Directlyresponse=projects_parser(user_input, api_key="your_api_key_here")
# Via environment variableos.environ["LLM7_API_KEY"] ="your_api_key_here"response=projects_parser(user_input)

Get a free API key: Register at LLM7.


📝 Function Signature

projects_parser(
user_input: str,
api_key: Optional[str] =None,
llm: Optional[BaseChatModel] =None
) ->List[str]

Parameters:

  • user_input (str): Text containing project details (e.g., title/description).
  • api_key (Optional[str]): LLM7 API key (optional if using environment variable).
  • llm (Optional[BaseChatModel]): Custom LangChain LLM (optional; defaults to ChatLLM7).

Returns:

  • List[str]: Extracted structured data (e.g., project name, language, features).

🔄 Rate Limits

  • LLM7 Free Tier: Sufficient for most use cases.
  • Upgrade: Use a custom API key for higher limits.

📜 License

MIT License (see LICENSE).


📢 Support & Issues

For bugs/feature requests, open an issue on GitHub: 🔗 GitHub Issues


👤 Author

Eugene Evstafev 📧 hi@euegne.plus 🔗 GitHub: chigwell

About

A new package that leverages advanced pattern matching with retries to process user-submitted project titles and descriptions, extracting structured insights such as the project name, programming lang

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages