Trex 项目介绍
项目概述
Trex 是一个用于将非结构化数据转换为结构化数据的工具。无论是使用正则表达式(Regex)还是上下文无关文法(CFG),Trex 都可以智能地重构数据,使其符合既定的模式。它的强大之处在于能够将复杂的自由文本数据转化为有组织的结构,从而帮助用户更方便地管理和分析数据。
安装与使用
想要体验 Trex 的功能,用户可以访问 playground 在线测试平台。
如果希望在本地使用 Trex 的 Python 客户端,可以通过以下命令安装:
pip install git+https://github.com/automorphic-ai/trex.git
对于希望在自己的云环境或使用自己的模型进行自托管的用户,可以通过邮件 联系我们。
使用指南
要使用 Trex,用户需要一个 API 密钥,可以通过在 automorphic.ai 免费注册账户获得。以下是一个简单的使用示例:
import trex
tx = trex.Trex('<YOUR_AUTOMORPHIC_API_KEY>')
prompt = '''生成一个如下格式的有效 JSON 对象:
{
"name": "string",
"age": "number",
"height": "number",
"pets": pet[]
}
在上述对象中,name 为字符串,代表人的姓名;age 为数字,代表人的年龄(整数);height 为数字,代表人的身高;pets 是一个宠物数组。
其中 pet 定义为:
{
"name": "string",
"species": "string",
"cost": "number",
"dob": "string"
}
在该对象中,name 为字符串代表宠物的名字;species 为字符串代表宠物的种类;cost 为数字代表宠物的费用;dob 为字符串代表宠物的出生日期。
基于上述信息,生成一个包含以下数据的有效 JSON 对象:一个名叫 Dave 的人,30 岁,5 英尺8英寸,拥有一只名叫 'trex' 的小狗。这只狗花费了100美元,出生于2001年9月11日。
'''
json_schema = {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"age": {
"type": "number"
},
"height": {
"type": "number"
},
"pets": {
"type": "array",
"items": [{
"type": "object",
"properties": {
"name": {
"type": "string"
},
"species": {
"type": "string"
},
"cost": {
"type": "number"
},
"dob": {
"type": "string"
}
}
}]
}
}
}
print(tx.generate_json(prompt, json_schema=json_schema).response)
以上代码实际运行后,会生成如下的 JSON 对象:
{
"name": "dave",
"age": 30,
"height": 58,
"pets": [
{
"name": "trex",
"species": "dog",
"cost": 100,
"dob": "2008-10-27"
}
]
}
未来发展路线图
Trex 项目目前已完成以下功能开发:
- 结构化 JSON 生成
- 自定义 CFG 生成
- 自定义正则表达式生成
- 显著的速度提升
- 基于 JSON schema 的生成
未来计划包括:
- 自动生成非结构化数据的 ETL 提示
- 开发更智能的模型