Skip to main content

Reasoning Framework

A Python package that adds R1-style reasoning capabilities to any Language Model (LLM). This framework enables step-by-step reasoning and verification of responses using a two-step process:

  1. Initial reasoning and response generation
  2. Verification and refinement of the response

Installation

Basic installation:

pip install reasoning

With OpenAI support:

pip install "reasoning[openai]"

With Anthropic support:

pip install "reasoning[anthropic]"

With all supported APIs:

pip install "reasoning[openai,anthropic]"

Environment Variables

Depending on which API you're using, you'll need to set the appropriate environment variables:

  • For OpenAI: OPENAI_API_KEY
  • For Anthropic: ANTHROPIC_API_KEY
  • For OpenRouter: OPENROUTER_API_KEY

You can set these in your shell:

export OPENAI_API_KEY='your-api-key'
export ANTHROPIC_API_KEY='your-api-key'
export OPENROUTER_API_KEY='your-api-key'

Or in Python:

import os
os.environ['OPENAI_API_KEY'] = 'your-api-key'

Quick Start

Using OpenAI

from reasoning import ReasoningFramework
from reasoning.examples.openai_example import create_openai_call

# Create model-specific callers
gpt4_call = create_openai_call("gpt-4")
gpt35_call = create_openai_call("gpt-3.5-turbo")

# Initialize the framework
framework = ReasoningFramework(
    reasoning_llm_call=gpt4_call,
    verification_llm_call=gpt35_call
)

# Process a question
response = framework.process(
    "What would be the implications of achieving AGI?",
    reasoning_kwargs={"temperature": 0.7},
    verification_kwargs={"temperature": 0.5}
)

print("Original Message:", response.message)
print("\nReasoning Process:", response.reasoning)
print("\nInitial Response:", response.initial_response)
print("\nVerified Response:", response.final_response)

Using Anthropic

from reasoning import ReasoningFramework
from reasoning.examples.anthropic_example import create_anthropic_call

# Create model-specific callers
sonnet_call = create_anthropic_call("claude-3-sonnet")
opus_call = create_anthropic_call("claude-3-opus")

# Initialize the framework
framework = ReasoningFramework(
    reasoning_llm_call=sonnet_call,
    verification_llm_call=opus_call
)

# Process a question
response = framework.process(
    "What would be the implications of achieving AGI?",
    reasoning_kwargs={"temperature": 0.7},
    verification_kwargs={"temperature": 0.5}
)

Using OpenRouter

from reasoning import ReasoningFramework
from reasoning.examples.openrouter_example import create_openrouter_call

# Create model-specific callers
r1_call = create_openrouter_call("deepseek/deepseek-r1")
claude_call = create_openrouter_call("anthropic/claude-3-sonnet")

# Initialize the framework
framework = ReasoningFramework(
    reasoning_llm_call=r1_call,
    verification_llm_call=claude_call
)

# Process a question
response = framework.process(
    "What would be the implications of achieving AGI?",
    reasoning_kwargs={"temperature": 0.7},
    verification_kwargs={"temperature": 0.5}
)

Features

  • Flexible integration with any LLM through callback functions
  • Built-in support for OpenAI, Anthropic, and OpenRouter APIs
  • Structured reasoning process with verification
  • Customizable system prompts for both reasoning and verification
  • Type-safe implementation using Pydantic models
  • Comprehensive logging for debugging

Advanced Usage

Custom System Prompts

framework = ReasoningFramework(
    reasoning_llm_call=my_llm_call,
    verification_llm_call=my_verification_call,
    reasoning_system_prompt="You are an expert at breaking down complex problems...",
    verification_system_prompt="You are a critical thinker who verifies conclusions..."
)

Error Handling

The framework includes built-in error handling and logging:

import logging
logging.basicConfig(level=logging.DEBUG)  # Set to see detailed logs

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Metadata

Release files for reasoning 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for reasoning 0.1.0
File Size Uploaded
reasoning-0.1.0.tar.gz 6.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for reasoning 0.1.0
File Interpreter ABI Platform
reasoning-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 15.5 kB

Release files / reasoning-0.1.0.tar.gz

Download URL reasoning-0.1.0.tar.gz
Size 6.8 kB
Tags Source
SHA-256 checksum
How to use checksums
5fb470d223d91dcb494c5b881a17e82296fbd0b292a77962358c6ae220b6e624
BLAKE2b-256 checksum
How to use checksums
fc244b4b70d2c1617271a092a9ad3e0ffacfbbe5b13fdf3d7e75f45d977ca304
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.8.5 CPython/3.13.1 Darwin/23.0.0

Release files / reasoning-0.1.0-py3-none-any.whl

Download URL reasoning-0.1.0-py3-none-any.whl
Size 8.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d563685b36888cce0b608e505bf79310916fa977afac523b59f23ee4d8c12f6a
BLAKE2b-256 checksum
How to use checksums
466789b0b972d978e1e0c759abbe203f4671cb4f357d3a0cef3e96419b0bb65b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.8.5 CPython/3.13.1 Darwin/23.0.0

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page