Metadata-Version: 2.5
Name: hermes-interviewer
Version: 0.1.0
Summary: AI 面试官核心库 - 基于代码库和简历生成技术问题，模拟真实面试
Project-URL: Homepage, https://github.com/your-org/hermes-interviewer
Project-URL: Documentation, https://github.com/your-org/hermes-interviewer#readme
Project-URL: Repository, https://github.com/your-org/hermes-interviewer
Project-URL: Issues, https://github.com/your-org/hermes-interviewer/issues
Author: Hermes Team
License: MIT
Keywords: ai,interview,llm,recruitment
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Requires-Python: >=3.10
Requires-Dist: chromadb>=0.4.0
Requires-Dist: httpx>=0.25.0
Requires-Dist: pydantic-settings>=2.0.0
Requires-Dist: pydantic>=2.0.0
Requires-Dist: python-dotenv>=1.0.0
Provides-Extra: deepseek
Provides-Extra: dev
Requires-Dist: pytest-asyncio>=0.21.0; extra == 'dev'
Requires-Dist: pytest>=7.0.0; extra == 'dev'
Provides-Extra: huggingface
Requires-Dist: sentence-transformers>=2.2.0; extra == 'huggingface'
Requires-Dist: torch>=2.0.0; extra == 'huggingface'
Provides-Extra: ollama
Description-Content-Type: text/markdown

# Hermes Interviewer

AI 面试官核心库 - 基于代码库和简历生成技术问题，模拟真实面试。

## 特性

- **多 LLM 支持**：Ollama（本地）⇄ DeepSeek API，运行时切换
- **向量检索**：基于 ChromaDB 的代码库/简历语义搜索
- **智能出题**：根据简历和代码库动态生成技术问题
- **实时评估**：多维度评分（深度/逻辑/完整性）
- **易于集成**：pip install 即可使用

## 安装

```bash
pip install hermes-interviewer
```

如果需要 HuggingFace 本地嵌入：

```bash
pip install hermes-interviewer[huggingface]
```

## 快速开始

### 使用 DeepSeek API

```python
from hermes_interviewer import Interviewer

# 初始化（使用 DeepSeek）
interviewer = Interviewer(
    llm_provider="deepseek",
    api_key="sk-your-api-key"
)

# 导入代码库
interviewer.import_project(
    name="my-project",
    path="/path/to/your/code"
)

# 上传简历
resume = interviewer.upload_resume("resume.pdf")

# 开始面试
session = interviewer.start_interview(
    user_id="user1",
    resume_id=resume["id"],
    project_name="my-project"
)

# 交互
response = session.ask("请介绍一下你在项目中使用的设计模式")
print(response)

# 获取报告
report = session.get_report()
```

### 使用本地 Ollama

```python
from hermes_interviewer import Interviewer

# 初始化（使用本地 Ollama）
interviewer = Interviewer(
    llm_provider="ollama",
    model="qwen2.5:7b"
)

# 其他操作同上...
```

## 配置说明

### 环境变量

```bash
# LLM 配置
APP_LLM_PROVIDER=ollama          # ollama 或 deepseek
APP_DEEPSEEK_API_KEY=sk-xxx      # DeepSeek API Key
APP_DEEPSEEK_MODEL=deepseek-v4-flash
APP_LLM_MODEL=qwen2.5:7b

# 嵌入配置
APP_EMBEDDING_MODEL=bge-m3
APP_EMBEDDING_PROVIDER=ollama     # ollama 或 huggingface

# Ollama 配置
OLLAMA_HOST=http://localhost:11434
```

### 初始化参数

```python
Interviewer(
    llm_provider="deepseek",      # LLM 提供方
    api_key="sk-xxx",             # API Key
    base_url="https://api.deepseek.com",  # API 地址
    model="deepseek-v4-flash",    # 模型名称
    data_dir="./data"             # 数据存储目录
)
```

## API 参考

### Interviewer 类

| 方法 | 说明 |
|------|------|
| `import_project(name, path)` | 导入代码库并建立索引 |
| `upload_resume(file_path)` | 上传并解析简历 |
| `start_interview(user_id, ...)` | 开始面试会话 |
| `generate(prompt, system)` | 调用 LLM 生成文本 |
| `embed(texts)` | 生成文本嵌入向量 |

### InterviewSession 类

| 方法 | 说明 |
|------|------|
| `ask(question)` | 面试交互 |
| `get_report()` | 获取评估报告 |

## 依赖

- Python 3.10+
- httpx
- pydantic
- pydantic-settings
- chromadb

## 许可证

MIT
