An open API service indexing awesome lists of open source software.

https://github.com/level09/neuronic

Create functions that can understand context, extract insights, and solve complex problems - all while maintaining the reliability and predictability of traditional programming. With built-in validation, type checking, and caching.
https://github.com/level09/neuronic

agentic-ai gpt llm openai python

Last synced: 11 months ago
JSON representation

Create functions that can understand context, extract insights, and solve complex problems - all while maintaining the reliability and predictability of traditional programming. With built-in validation, type checking, and caching.

Awesome Lists containing this project

README

          

# Neuronic ๐Ÿง 


Neuronic Logo

Imagine Python functions that can think, reason, and create - functions that understand natural language, analyze complex data patterns, and generate creative solutions. Welcome to Neuronic - where we transform ordinary Python code into intelligent, AI-powered modules that bring GPT's cognitive capabilities directly into your codebase, complete with enterprise-grade validation, caching, and error handling.


Neuronic chart

## โœจ Magic in Three Lines

```python
from neuronic import Neuronic

@neuronic.function(output_type="json")
def convert_to_vegetarian(recipe: str) -> dict:
"""Convert any food recipe to its vegetarian version while maintaining the flavor profile."""
pass

# That's it! Your function is now AI-powered ๐ŸŒฑ
veggie_recipe = convert_to_vegetarian("Classic Beef Burger with bacon")
```

## ๐ŸŒŸ Real-Time Streaming

Watch your AI functions generate responses in real-time:

```python
@neuronic.function(output_type="string", stream=True)
def write_story(prompt: str) -> str:
"""Write a creative story based on the given prompt."""
pass

# See the story being written in real-time
for chunk in write_story("A curious robot discovers an ancient library"):
print(chunk, end="")

# Or use the transform method directly
neuronic = Neuronic()
for chunk in neuronic.transform(
data="Explain quantum computing",
instruction="Write a clear, step-by-step explanation",
stream=True
):
print(chunk, end="")
```

## ๐ŸŒŸ What is Neuronic?

Neuronic is your gateway to building intelligent Python applications powered by GPT-4o. Create functions that can understand context, extract insights, and solve complex problems - all while maintaining the reliability and predictability of traditional programming. With built-in validation, type checking, and caching, Neuronic makes AI as dependable as any other Python module.

## ๐Ÿš€ Features

- **๐ŸŽฏ Smart Function Decorator:** Transform any Python function into an AI-powered one with a simple decorator
- **๐Ÿง  Real-Time Streaming:** Watch AI responses generate in real-time with built-in streaming support
- **๐Ÿง  Intelligent Understanding:** Create functions that truly understand your data, extracting meaning and insights
- **๐Ÿ—ฃ๏ธ Natural Language Processing:** Process text like a human - analyze sentiment, extract key information, and understand context
- **โœ๏ธ Creative Generation:** Generate human-quality content, from documentation to test data, tailored to your specifications
- **๐Ÿ” Pattern Recognition:** Uncover hidden patterns and relationships in your data through GPT-powered analysis
- **๐Ÿ“ฆ Multiple Output Types:** Get results in any format you need - strings, numbers, JSON, lists, booleans, or Python structures
- **๐Ÿข Enterprise Ready:** Built-in validation, type checking, and caching ensure production-ready outputs
- **โšก Performance Optimized:** Automatic chunking for large inputs and smart caching for repeated operations

## ๐Ÿ› ๏ธ Quick Start

### Installation

```bash
pip install neuronic
```

### Configuration

```python
# Option 1: Use environment variables (.env file)
OPENAI_API_KEY=your-openai-api-key-here

# Option 2: Pass API key directly
neuronic = Neuronic(api_key="your-api-key-here")
```

## ๐ŸŽฎ Cool Examples

### ๐Ÿช„ Smart Function Decorator
Transform any Python function into an AI-powered one:

```python
@neuronic.function(output_type="string")
def generate_mini_story(character: str, setting: str, mood: str) -> str:
"""Create a three-sentence story based on the given character, setting, and mood."""
pass

story = generate_mini_story(
character="a curious robot",
setting="ancient library",
mood="mysterious"
)
```

### ๐Ÿงน Smart Data Cleaning
Clean and standardize messy data:

```python
@neuronic.function(output_type="json")
def clean_user_data(users: List[Dict]) -> List[Dict]:
"""
Clean and standardize user data:
- Properly capitalize names
- Validate and fix email addresses
- Convert age to numbers
"""
pass

clean_data = clean_user_data(messy_data)
```

### ๐ŸŽจ Creative Generation
Generate emoji-based character profiles:

```python
emoji_personas = neuronic.generate(
spec="""Create unique emoji-based character profiles with:
- Emoji combination for appearance
- Personality trait
- Favorite hobby
- Life motto""",
n=3
)
```

### ๐Ÿ“Š Smart Analysis
Analyze text with context and reasoning:

```python
analysis = neuronic.analyze(
data=movie_review,
question="What aspects of the movie did the reviewer focus on?"
)
print(f"Answer: {analysis['answer']}")
print(f"Confidence: {analysis['confidence']}")
print(f"Reasoning: {analysis['reasoning']}")
```

## ๐ŸŽฏ Perfect For

- **๐Ÿ”„ Data Processing:** Format conversion, cleaning, normalization
- **๐Ÿ“ Content Creation:** Documentation, test data, sample content
- **๐Ÿ“Š Analysis:** Pattern recognition, sentiment analysis, trend detection
- **๐Ÿ› ๏ธ Development:** Code transformation, API handling, validation

## ๐Ÿงฐ API Reference

### Core Methods

```python
# Transform data with streaming
result = neuronic.transform(
data=input_data, # What to transform
instruction="your instruction", # How to transform it
output_type="string", # What format you want
stream=True, # Enable streaming
example=None, # Optional example
context=None # Optional context
)
for chunk in result:
print(chunk, end="")

# Analyze data
insights = neuronic.analyze(
data=your_data, # What to analyze
question="your question" # What to find out
)

# Generate data
new_data = neuronic.generate(
spec="what to generate", # What you want
n=1 # How many items
)
```

### Streaming Functions

```python
# Create streaming functions for long-form content
@neuronic.function(output_type="string", stream=True)
def write_blog_post(topic: str, style: str) -> str:
"""Write a detailed blog post in the specified style."""
pass

# Watch the blog post being written in real-time
for chunk in write_blog_post(
topic="The Future of AI",
style="conversational"
):
print(chunk, end="")

# Stream JSON responses
@neuronic.function(output_type="json", stream=True)
def analyze_text_stream(text: str) -> dict:
"""Analyze text and return structured data with streaming."""
pass

# Note: JSON streaming ensures valid JSON output
for chunk in analyze_text_stream("Your text here"):
print(chunk, end="")
```

## ๐ŸŽ“ Best Practices

1. **๐Ÿ” Security First**
- Keep API keys in environment variables
- Never commit sensitive data

2. **โšก Performance Tips**
- Use caching for repeated operations
- Enable streaming for long-running operations
- Batch similar requests when possible
- Be mindful of token limits when streaming

3. **๐Ÿ›ก๏ธ Error Handling**
- Always handle exceptions gracefully
- Validate outputs match expected formats
- Handle streaming interruptions properly

4. **๐Ÿ”„ Streaming Guidelines**
- Use streaming for long-form content generation
- Handle partial outputs appropriately
- Consider disabling streaming for small, quick operations
- Remember streaming bypasses caching

## ๐Ÿ“œ License

MIT License - feel free to use in your own projects!

## ๐Ÿค Contributing

Got ideas? Found a bug? Contributions are welcome! Feel free to:
- Open an issue
- Submit a pull request
- Share your cool use cases

## ๐ŸŒŸ Star Us!
If you find Neuronic useful, give us a star! It helps others discover the project.