aboutsummaryrefslogtreecommitdiff
path: root/packages/openai-sdk-python/README.md
diff options
context:
space:
mode:
authorCodeWithShreyans <[email protected]>2025-08-27 23:34:49 +0000
committerCodeWithShreyans <[email protected]>2025-08-27 23:34:49 +0000
commit3a0e264b7eb18fe3b6d2de25e79879ada7c9f3ec (patch)
tree4f2be5731860abece575bf4946ef881972502d73 /packages/openai-sdk-python/README.md
parentfeat: support project-specific installation commands (#390) (diff)
downloadsupermemory-3a0e264b7eb18fe3b6d2de25e79879ada7c9f3ec.tar.xz
supermemory-3a0e264b7eb18fe3b6d2de25e79879ada7c9f3ec.zip
feat: openai js and python sdk utilities (#389)shreyans/08-27-feat_openai_js_and_python_sdk_utilities
needs testing
Diffstat (limited to 'packages/openai-sdk-python/README.md')
-rw-r--r--packages/openai-sdk-python/README.md318
1 files changed, 318 insertions, 0 deletions
diff --git a/packages/openai-sdk-python/README.md b/packages/openai-sdk-python/README.md
new file mode 100644
index 00000000..fdc03b54
--- /dev/null
+++ b/packages/openai-sdk-python/README.md
@@ -0,0 +1,318 @@
+# Supermemory OpenAI Python SDK
+
+Enhanced OpenAI Python SDK with Supermemory infinite context integration.
+
+This package extends the official [OpenAI Python SDK](https://github.com/openai/openai-python) with [Supermemory](https://supermemory.ai) capabilities, enabling infinite context chat completions and memory management tools.
+
+## Features
+
+- 🚀 **Infinite Context**: Chat completions with unlimited conversation history
+- 🧠 **Memory Tools**: Search, add, and fetch user memories seamlessly
+- 🔌 **Multiple Providers**: Support for OpenAI, Anthropic, Groq, and more
+- 🛠 **Function Calling**: Built-in memory tools for OpenAI function calling
+- 🔒 **Type Safe**: Full TypeScript-style type hints for Python
+- âš¡ **Async Support**: Full async/await support
+
+## Installation
+
+Install using uv (recommended):
+
+```bash
+uv add supermemory-openai
+```
+
+Or with pip:
+
+```bash
+pip install supermemory-openai
+```
+
+## Quick Start
+
+### Basic Chat Completion
+
+```python
+import asyncio
+from supermemory_openai import SupermemoryOpenAI, SupermemoryInfiniteChatConfigWithProviderName
+
+async def main():
+ # Initialize client
+ client = SupermemoryOpenAI(
+ supermemory_api_key="your-supermemory-api-key",
+ config=SupermemoryInfiniteChatConfigWithProviderName(
+ provider_name="openai",
+ provider_api_key="your-openai-api-key",
+ )
+ )
+
+ # Create chat completion
+ response = await client.chat_completion(
+ messages=[
+ {"role": "user", "content": "Hello, how are you?"}
+ ],
+ model="gpt-4o"
+ )
+
+ print(response.choices[0].message.content)
+
+asyncio.run(main())
+```
+
+### Using Memory Tools
+
+```python
+import asyncio
+from supermemory_openai import SupermemoryOpenAI, SupermemoryTools, SupermemoryInfiniteChatConfigWithProviderName
+
+async def main():
+ # Initialize client and tools
+ client = SupermemoryOpenAI(
+ supermemory_api_key="your-supermemory-api-key",
+ config=SupermemoryInfiniteChatConfigWithProviderName(
+ provider_name="openai",
+ provider_api_key="your-openai-api-key",
+ )
+ )
+
+ tools = SupermemoryTools(
+ api_key="your-supermemory-api-key",
+ config={"project_id": "my-project"}
+ )
+
+ # Chat with memory tools
+ response = await client.chat_completion(
+ messages=[
+ {
+ "role": "system",
+ "content": "You are a helpful assistant with access to user memories."
+ },
+ {
+ "role": "user",
+ "content": "Remember that I prefer tea over coffee"
+ }
+ ],
+ tools=tools.get_tool_definitions(),
+ model="gpt-4o"
+ )
+
+ print(response.choices[0].message.content)
+
+asyncio.run(main())
+```
+
+## Configuration
+
+### Provider Configuration
+
+#### Using Provider Names
+
+```python
+from supermemory_openai import SupermemoryInfiniteChatConfigWithProviderName
+
+config = SupermemoryInfiniteChatConfigWithProviderName(
+ provider_name="openai", # or "anthropic", "groq", "openrouter", etc.
+ provider_api_key="your-provider-api-key",
+ headers={"custom-header": "value"} # optional
+)
+```
+
+#### Using Custom URLs
+
+```python
+from supermemory_openai import SupermemoryInfiniteChatConfigWithProviderUrl
+
+config = SupermemoryInfiniteChatConfigWithProviderUrl(
+ provider_url="https://your-custom-endpoint.com/v1",
+ provider_api_key="your-provider-api-key",
+ headers={"custom-header": "value"} # optional
+)
+```
+
+### Supported Providers
+
+- `openai` - OpenAI API
+- `anthropic` - Anthropic Claude
+- `openrouter` - OpenRouter
+- `deepinfra` - DeepInfra
+- `groq` - Groq
+- `google` - Google AI
+- `cloudflare` - Cloudflare Workers AI
+
+## Memory Tools
+
+### SupermemoryTools Class
+
+```python
+from supermemory_openai import SupermemoryTools
+
+tools = SupermemoryTools(
+ api_key="your-supermemory-api-key",
+ config={
+ "project_id": "my-project", # or use container_tags
+ "base_url": "https://custom-endpoint.com", # optional
+ }
+)
+
+# Search memories
+result = await tools.search_memories(
+ information_to_get="user preferences",
+ limit=10,
+ include_full_docs=True
+)
+
+# Add memory
+result = await tools.add_memory(
+ memory="User prefers tea over coffee"
+)
+
+# Fetch specific memory
+result = await tools.fetch_memory(
+ memory_id="memory-id-here"
+)
+```
+
+### Individual Tools
+
+```python
+from supermemory_openai import (
+ create_search_memories_tool,
+ create_add_memory_tool,
+ create_fetch_memory_tool
+)
+
+search_tool = create_search_memories_tool("your-api-key")
+add_tool = create_add_memory_tool("your-api-key")
+fetch_tool = create_fetch_memory_tool("your-api-key")
+```
+
+### Function Calling Integration
+
+```python
+from supermemory_openai import execute_memory_tool_calls
+
+# After getting tool calls from OpenAI
+if response.choices[0].message.tool_calls:
+ tool_results = await execute_memory_tool_calls(
+ api_key="your-supermemory-api-key",
+ tool_calls=response.choices[0].message.tool_calls,
+ config={"project_id": "my-project"}
+ )
+
+ # Add tool results to conversation
+ messages.append(response.choices[0].message)
+ messages.extend(tool_results)
+```
+
+## API Reference
+
+### SupermemoryOpenAI
+
+Enhanced OpenAI client with infinite context support.
+
+#### Constructor
+
+```python
+SupermemoryOpenAI(
+ supermemory_api_key: str,
+ config: Optional[SupermemoryInfiniteChatConfig] = None
+)
+```
+
+#### Methods
+
+- `chat_completion()` - Create chat completion with simplified interface
+- `create_chat_completion()` - Create chat completion with full OpenAI parameters
+
+### SupermemoryTools
+
+Memory management tools for function calling.
+
+#### Constructor
+
+```python
+SupermemoryTools(
+ api_key: str,
+ config: Optional[SupermemoryToolsConfig] = None
+)
+```
+
+#### Methods
+
+- `get_tool_definitions()` - Get OpenAI function definitions
+- `search_memories()` - Search user memories
+- `add_memory()` - Add new memory
+- `fetch_memory()` - Fetch specific memory by ID
+- `execute_tool_call()` - Execute individual tool call
+
+## Error Handling
+
+```python
+try:
+ response = await client.chat_completion(
+ messages=[{"role": "user", "content": "Hello"}],
+ model="gpt-4o"
+ )
+except Exception as e:
+ print(f"Error: {e}")
+```
+
+## Environment Variables
+
+Set these environment variables for testing:
+
+- `SUPERMEMORY_API_KEY` - Your Supermemory API key
+- `PROVIDER_API_KEY` - Your AI provider API key
+- `PROVIDER_NAME` - Provider name (default: "openai")
+- `PROVIDER_URL` - Custom provider URL (optional)
+- `MODEL_NAME` - Model to use (default: "gpt-4o-mini")
+- `SUPERMEMORY_BASE_URL` - Custom Supermemory base URL (optional)
+
+## Development
+
+### Setup
+
+```bash
+# Install uv
+curl -LsSf https://astral.sh/uv/install.sh | sh
+
+# Clone and setup
+git clone <repository-url>
+cd packages/openai-sdk-python
+uv sync --dev
+```
+
+### Testing
+
+```bash
+# Run tests
+uv run pytest
+
+# Run with coverage
+uv run pytest --cov=supermemory_openai
+
+# Run specific test file
+uv run pytest tests/test_infinite_chat.py
+```
+
+### Type Checking
+
+```bash
+uv run mypy src/supermemory_openai
+```
+
+### Formatting
+
+```bash
+uv run black src/ tests/
+uv run isort src/ tests/
+```
+
+## License
+
+MIT License - see LICENSE file for details.
+
+## Links
+
+- [Supermemory](https://supermemory.ai) - Infinite context memory platform
+- [OpenAI Python SDK](https://github.com/openai/openai-python) - Official OpenAI Python library
+- [Documentation](https://docs.supermemory.ai) - Full API documentation