Metadata-Version: 2.4
Name: danwen-eval
Version: 0.2.0
Summary: Danwen evaluation client SDK for agent tracing, datasets and evaluation
Author: 但问智能
Project-URL: Homepage, https://www.huicewang.com
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE_POLICY.md
Requires-Dist: mlflow-skinny==3.17.2
Requires-Dist: numpy<3,>=1.26
Requires-Dist: pandas<4,>=2.2
Provides-Extra: server
Requires-Dist: mlflow==3.17.2; extra == "server"
Provides-Extra: local
Requires-Dist: sqlalchemy<3,>=1.4; extra == "local"
Requires-Dist: alembic<2,>=1.13; extra == "local"
Provides-Extra: models
Requires-Dist: litellm<2,>=1.60; extra == "models"
Provides-Extra: langchain
Requires-Dist: langchain<2,>=1; extra == "langchain"
Provides-Extra: test
Requires-Dist: pytest<10,>=8; extra == "test"
Dynamic: license-file

# 但问智测 · Python客户端SDK

北京慧测 · 但问智能 | www.huicewang.com | 官方微信 huice666

通过统一的`danwen_eval`接口，为智能体应用接入执行追踪、黄金数据、规则评测、语义裁判、Prompt版本与质量反馈。

## 安装

正式发布0.2.0后：
```bash
python -m pip install --upgrade danwen-eval
```
本次交付的wheel可立即安装，进入交付包根目录执行：
```bash
python -m pip install ./packages/danwen_eval-0.2.0-py3-none-any.whl
danwen --version
danwen doctor
```
默认安装面向客户端，不要求客户部署平台服务。连接由企业提供的实际平台地址；请使用独立虚拟环境。

## 快速接入

```python
import danwen_eval as de
from danwen_eval.genai import evaluate
from danwen_eval.genai.scorers import scorer

de.configure(tracking_uri="https://你的平台地址", experiment="customer-demo")

@de.trace(name="support", span_type="AGENT")
def answer(question):
    return "请提供订单编号"  # 示例接入点，实际替换为自己的Agent

@scorer
def response_matches(outputs, expectations):
    return outputs == expectations["expected_response"]

result = evaluate(
    data=[{"inputs": {"question": "查询订单"},
           "expectations": {"expected_response": "请提供订单编号"}}],
    predict_fn=answer, scorers=[response_matches])
print(result.run_id)
```

示例是SDK接入与规则演示，不是模型或业务质量成绩。真实模型与平台操作须具备授权、凭据与预算。

## 模块

|入口|用途|
|---|---|
|`danwen_eval.configure`|配置平台地址、注册中心与实验|
|`danwen_eval.trace/start_span`|函数追踪、工具与检索Span|
|`danwen_eval.Client`|实验、Run、Trace等查询|
|`danwen_eval.genai`|评估、数据集、Prompt版本|
|`danwen_eval.genai.datasets`|数据集创建、读取、搜索与删除|
|`danwen_eval.genai.scorers`|规则评分与语义评分器|
|`danwen_eval.genai.judges`|领域裁判定义|
|`danwen_eval.genai.simulators`|多轮会话模拟器|
|`danwen_eval.entities`|Trace、Feedback、SpanType等数据类型|
|`danwen_eval.artifacts`|评估产物下载与读取|
|`danwen_eval.langchain`|应用自动追踪接入|

完整支持清单、示例和约束见docs/客户端开发指南.md。接口不会自动执行企业认证、审批或资金动作，也不保证未来新增能力自动兼容。

## 配置

支持`DANWEN_TRACKING_URI`、`DANWEN_REGISTRY_URI`、`DANWEN_TRACKING_TOKEN`及用户名/密码环境变量。进程导入SDK时读取，推荐在启动前配置。显式`configure`可设置地址；不打印Token或凭据。认证方式由目标平台决定，设置Token不等于服务端已经启用认证。

语义评分器与用户模拟默认使用`deepseek:/deepseek-chat`；可用`DANWEN_JUDGE_MODEL`或显式参数改为企业实际获授权的DeepSeek端点。模型调用相关依赖可安装`danwen-eval[models]`；配置`DEEPSEEK_API_KEY`后，实际执行会消耗模型额度。裁判构造、注册、后台启动是不同步骤。

## 可选组件

```bash
# 自行部署服务时才需要
python -m pip install 'danwen-eval[server]'
danwen server --help

# 本机SQLite验证与开发
python -m pip install 'danwen-eval[local]'

# 模型裁判依赖（不包含模型密钥和调用额度）
python -m pip install 'danwen-eval[models]'
```

客户端依赖不是整个服务发行包；部分共享组件仍会作为传递依赖安装。本包不承诺安装体积固定，也不是完整离线依赖集合。

## 版本与交付范围

0.2.0增加真正的客户端接口；此前0.1.0主要提供启动入口。升级不会自动卸载既有服务端组件，建议在新虚拟环境验证。服务部署可继续使用可选server安装。

此次不修改任何已有平台网页或既有业务代码。公共示例和SDK说明使用但问智测命名；依赖元数据、第三方许可和诊断信息依法按真实内容保留。自有代码许可须在公开发布前由公司确认。
