MCPcopy Index your code
hub / github.com/citadel-ai/langcheck

github.com/citadel-ai/langcheck @v0.9.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.9.0 ↗ · + Follow
579 symbols 2,597 edges 144 files 255 documented · 44% updated 8mo agov0.9.0 · 2024-12-12★ 24821 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

LangCheck Logo LangCheck Logo

Pytest Tests 下载次数 GitHub

一个简单易用的用于评价LLM应用程序的python库。

安装使用示例快速入门文档English日本語Deutsch

安装

pip install langcheck[zh]

如果安装遇到问题,请查看常见问题解答(英文)

使用示例

文本评估

通过使用langcheck已经支持的评价指标, 您可以快速的检查LLM应用程序生成内容的质量。

from langcheck.metrics.zh import sentiment

# 输入LLM生成的文本
generated_outputs = [
    '很高兴能够帮到您。',
    '我很高兴回答您的问题。',
    '我不太清楚,请自己查找。'
]

# 评估生成文本内容的倾向性(支持过滤)
sentiment(generated_outputs) > 0.5

MetricValueWithThreshold 的屏幕截图

通过使用assert,您可以轻松地在单元测试里使用langcheck的评价指标。

assert sentiment(generated_outputs) > 0.5

LangCheck还包含了以下用于评估LLM应用程序的指标。

类型 主要指标 语言
无参考文本质量指标 toxicity(generated_outputs)

sentiment(generated_outputs) | 英语、日语、中文、德语 | | 有参考文本质量指标 | semantic_similarity(generated_outputs, reference_outputs)

rouge2(generated_outputs, reference_outputs) | 英语、日语、中文、德语 | | 基于来源的文本质量指标 | factual_consistency(generated_outputs, sources) | 英语、日语、中文、德语 | | 文本结构指标 | is_float(generated_outputs, min=0, max=None)

is_json_object(generated_outputs) | 所有语言 |

数值可视化

LangCheck还支持对结果进行简单的可交互可视化。

# 选择一些指标
sentiment_values = langcheck.metrics.zh.sentiment(generated_outputs)
readability_values = langcheck.metrics.zh.xuyaochen_report_readability(generated_outputs)

# 绘制散点图
sentiment_values.scatter()

Scatter plot for one metric

# 绘制多指标散点图
langcheck.plot.scatter(sentiment_values, readability_values)

Scatter plot for two metrics

# 绘制统计直方图
sentiment_values.histogram()

Histogram for one metric

数据增强(即将推出)

more_prompts = []
more_prompts += langcheck.augment.keyboard_typo(prompts)
more_prompts += langcheck.augment.ocr_typo(prompts)
more_prompts += langcheck.augment.synonym(prompts)
more_prompts += langcheck.augment.gender(prompts, to_gender='male')
more_prompts += langcheck.augment.gpt35_rewrite(prompts)

单元测试

使用LangCheck,您可以轻松编写LLM应用程序的单元测试。

例如,仅需保存测试用的提示,就可以进行如下测试:

from langcheck.utils import load_json

# 对LLM应用程序使用测试用的提示并获取输出
prompts = load_json('test_prompts.json')
generated_outputs = [my_llm_app(prompt) for prompt in prompts]

# 单元测试
def test_toxicity(generated_outputs):
    assert langcheck.metrics.zh.toxicity(generated_outputs) < 0.1


def test_json_structure(generated_outputs):
    assert langcheck.metrics.validation_fn(
        generated_outputs, lambda x: 'myKey' in json.loads(x)).all()

监控

您也可以利用LangCheck来监控生产环境中LLM的输出。

请保存LLM应用程序的输出,并输入到LangCheck中。

from langcheck.utils import load_json

production_outputs = load_json('llm_logs_2023_10_02.json')['outputs']

# 检查输出是否存在有害信息。
langcheck.metrics.zh.toxicity(production_outputs) > 0.75

# 检查输出是否为JSON格式
langcheck.metrics.is_json_array(production_outputs)

安全护栏

您还可以使用langchek作为提高LLM输出安全性的防护措施。

# 从LLM获取一次输出
raw_output = my_llm_app(random_user_prompt)

# 如果包含不适当的词汇,则创建另一个输出来覆盖
while langcheck.metrics.contains_any_strings(raw_output, blacklist_words).any():
    raw_output = my_llm_app(random_user_prompt)

Core symbols most depended-on inside this repo

Shape

Function 308
Method 131
Route 109
Class 31

Languages

Python100%

Modules by API surface

src/langcheck/metrics/metric_value.py29 symbols
tests/metrics/en/test_reference_free_text_quality.py23 symbols
tests/metrics/de/test_reference_free_text_quality.py20 symbols
tests/metrics/test_text_structure.py18 symbols
tests/metrics/ja/test_reference_free_text_quality.py17 symbols
tests/metrics/ja/test_reference_based_text_quality.py16 symbols
tests/metrics/en/test_reference_based_text_quality.py16 symbols
src/langcheck/metrics/eval_clients/_openai.py16 symbols
tests/metrics/de/test_reference_based_text_quality.py14 symbols
tests/metrics/zh/test_reference_based_text_quality.py12 symbols
tests/metrics/ja/test_query_based_text_quality.py12 symbols
tests/metrics/en/test_query_based_text_quality.py12 symbols

For agents

$ claude mcp add langcheck \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page