Metadata-Version: 2.4
Name: careerstudiomax-camp
Version: 1.0.0
Summary: Official Python SDK for CAMP — Career AI Model Platform, 7 career-native model families
Home-page: https://camp.careerstudiomax.com
Author: CloudooAI Solution
Author-email: api@careerstudiomax.com
Project-URL: Documentation, https://camp.careerstudiomax.com/docs
Project-URL: Source, https://github.com/owolat4real/career-studio
Project-URL: Bug Tracker, https://github.com/owolat4real/career-studio/issues
Keywords: career,ai,cv,resume,chat-completions,api,camp
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Requires-Dist: httpx>=0.24.0
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: keywords
Dynamic: project-url
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

# CAMP Python SDK

Official Python client for [CAMP — Career AI Model Platform](https://camp.careerstudiomax.com) — 7 career-native model families behind a standard chat-completions/embeddings request shape, plus live demo and media-generation endpoints.

## Install

```bash
pip install careerstudiomax-camp
```

## Quickstart

```python
from camp import CampClient

client = CampClient(api_key="sk_live_your_key_here")

resp = client.chat_completions(
    model="careerlm-base",
    messages=[{"role": "user", "content": "Write a cover letter opener for a Senior PM role"}],
)
print(resp["choices"][0]["message"]["content"])
```

## What you can do

| Method | Description |
|---|---|
| `client.chat_completions(messages)` | Standard-format chat completions |
| `client.chat_completions_stream(on_event, messages)` | Same, streamed |
| `client.embeddings(input)` | Standard-format embeddings |
| `client.models()` | List available models |
| `client.score(content, type="cv")` | Structured scoring (CV, content) |
| `client.embed(texts)` | Text embeddings (simplified) |
| `client.agent_stream(on_event, task)` | Streaming agentic task execution |

## Deep reasoning

Pass `reasoning=True` to `chat_completions()` to raise the internal model's effort/complexity tier for that one call — useful for a genuinely hard question where the default fast path isn't giving you enough depth. Off by default, real added latency per call, no extra cost (it's still the same self-hosted model, just told to think harder — never escalates to an external provider).

```python
resp = client.chat_completions(
    model="careerlm-base",
    messages=[{"role": "user", "content": "Compare 3 career paths for a mid-level backend engineer, with tradeoffs"}],
    reasoning=True,
)
```

## Streaming

```python
def on_chunk(event):
    print(event.get("text", ""), end="", flush=True)

client.chat_completions_stream(on_chunk, messages=[{"role": "user", "content": "Draft a resignation letter"}])
```

## Errors

```python
from camp import CampClient, CampError

try:
    client.score(cv_text)
except CampError as e:
    print(e.status, str(e))
```

## Context manager

```python
with CampClient(api_key="...") as client:
    ...
```

Full endpoint reference: [camp.careerstudiomax.com/docs](https://camp.careerstudiomax.com/docs)
