|
--- |
|
|
|
|
|
|
|
````markdown |
|
|
|
|
|
This guide will get you up and running with **AnyCoder** in minutes. |
|
|
|
|
|
```bash |
|
git clone https://github.com/your-org/anycoder.git |
|
cd anycoder |
|
```` |
|
|
|
|
|
|
|
Make sure you have Python 3.9+ installed. |
|
|
|
```bash |
|
pip install --upgrade pip |
|
pip install -r requirements.txt |
|
``` |
|
|
|
|
|
|
|
```bash |
|
export HF_TOKEN=<YOUR_HUGGINGFACE_TOKEN> |
|
export OPENAI_API_KEY=<YOUR_OPENAI_API_KEY> |
|
export GEMINI_API_KEY=<YOUR_GEMINI_API_KEY> |
|
``` |
|
|
|
|
|
|
|
```bash |
|
python app.py |
|
``` |
|
|
|
Open [http://localhost:7860](http://localhost:7860) in your browser to access the UI. |
|
|
|
|
|
|
|
* **Model selector**: Choose from Groq, OpenAI, Gemini, Fireworks, and HF models. |
|
* **Input**: Enter prompts, upload files or images for context. |
|
* **Generate**: View code, preview, and conversation history. |
|
|
|
--- |
|
|
|
# docs/API\_REFERENCE.md |
|
|
|
````markdown |
|
# API Reference |
|
|
|
This document describes the public Python modules and functions available in AnyCoder. |
|
|
|
## `models.py` |
|
|
|
### `ModelInfo` dataclass |
|
|
|
```python |
|
@dataclass |
|
class ModelInfo: |
|
name: str |
|
id: str |
|
description: str |
|
default_provider: str = "auto" |
|
```` |
|
|
|
### `AVAILABLE_MODELS: List[ModelInfo]` |
|
|
|
A list of supported models with metadata. |
|
|
|
### `find_model(identifier: str) -> Optional[ModelInfo]` |
|
|
|
Lookup a model by name or ID. |
|
|
|
--- |
|
|
|
## `inference.py` |
|
|
|
### `chat_completion(model_id: str, messages: List[Dict[str,str]], provider: Optional[str]=None, max_tokens: int=4096) -> str` |
|
|
|
Send a one-shot chat completion request. |
|
|
|
### `stream_chat_completion(model_id: str, messages: List[Dict[str,str]], provider: Optional[str]=None, max_tokens: int=4096) -> Generator[str]` |
|
|
|
Stream partial generation results. |
|
|
|
--- |
|
|
|
## `hf_client.py` |
|
|
|
### `get_inference_client(model_id: str, provider: str="auto") -> InferenceClient` |
|
|
|
Creates an HF InferenceClient with provider routing logic. |
|
|
|
--- |
|
|
|
# docs/ARCHITECTURE.md |
|
|
|
```markdown |
|
# Architecture Overview |
|
|
|
Below is a high-level diagram of AnyCoder's components and data flow: |
|
|
|
``` |
|
|
|
``` |
|
+------------+ |
|
| User | |
|
+-----+------+ |
|
| |
|
v |
|
+---------+----------+ |
|
| Gradio UI (app.py)| |
|
+---------+----------+ |
|
| |
|
+------------------------+------------------------+ |
|
| | | |
|
v v v |
|
models.py inference.py plugins.py |
|
``` |
|
|
|
(model registry) (routing & chat\_completion) (extension points) |
|
\| | | |
|
+---------------------+ +------------------------+ |
|
| |
|
v |
|
hf\_client.py deploy.py |
|
(HF/OpenAI/Gemini/etc routing) (HF Spaces integration) |
|
|
|
``` |
|
|
|
- **UI Layer** (`app.py` + Gradio): handles inputs, outputs, and state. |
|
- **Model Registry** (`models.py`): metadata-driven list of supported models. |
|
- **Inference Layer** (`inference.py`, `hf_client.py`): abstracts provider selection and API calls. |
|
- **Extensions** (`plugins.py`): plugin architecture for community or custom integrations. |
|
- **Deployment** (`deploy.py`): Helpers to preview in an iframe or push to Hugging Face Spaces. |
|
|
|
This separation ensures modularity, testability, and easy extensibility. |
|
|
|
``` |
|
|