| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- """Info Definition Generator Test - 从文本自动生成关键信息定义的示例.
- 演示如何使用 InfoExtractor.extract_definition 从输入文本中
- 自动生成结构化的关键信息定义 JSON。
- 用法:
- python test_definition.py
- """
- from __future__ import annotations
- import json
- import logging
- import os
- from src.extractor import InfoExtractor
- logging.basicConfig(
- level=logging.INFO,
- format="%(asctime)s [%(levelname)s] %(name)s: %(message)s",
- )
- # 示例输入文本:与 test.py 一致,但仅用于生成信息定义
- SAMPLE_ARTICLE = (
- """保卫延安的命令
- 一、敌以五师十二旅约八万人进攻延安,经三天猛烈攻击,突破我第一线阵地,由于我军坚决英勇抵抗,敌伤亡甚大,困难增加,颇疲劳,今后将更甚。
- 二、我边区各兵团有坚决保卫延安任务,必须在三十里铺、松树岭线以南,甘泉、南泥湾、金盆湾地区再抗击十天至两星期(十六日至二十九日),才能取得外线配合,粉碎胡军进攻延安企图。为完成上述任务,各兵团守备任务区分如下:
- 1.独一旅、八旅、警七团为右翼兵团,归张宗逊廖汉生同志指挥,在道佐铺、甘泉、大小劳山、清泉沟、山神庙地区组织防御战斗,坚决抗击。
- 2.教导旅、二纵队(王震部)为左翼兵团,归王震罗元发同志指挥,在王震未到前由罗元发同志指挥。教导旅在南泥湾、金盆湾、临真、松树岭地区组织防御战斗。上述地区至少坚持七天。
- 3.新四旅为中央兵团,以不少于四个营兵力在庙尔梁、程子沟(不含)、三十里铺地区组织防御战斗,坚决抗击由南泥湾向延安前进之敌。旅属炮兵应加强庙尔梁阵地。余为预备队,位置延安,兼防敌伞兵控制机场。该旅首长仍兼延安卫戍。
- 三、各守备兵团应利用地形组织短促火力,大量使用手榴弹、地雷杀伤敌人,掌握预备队,灵活反击夜袭歼灭敌小部。
- 四、在防御战斗中疲劳与消耗敌人之后,即可集五个旅以上打运动战,各个歼灭敌人,彻底粉碎敌人进攻。
- 此令
- 中央革命军事委员会主席 毛泽东
- 一九四七年三月十六日
- """
- )
- def main() -> None:
- # 复用 test.py 中的 API 配置
- extractor = InfoExtractor(
- model_name="glm-5.2",
- api_key=os.environ.get("INFO_EXTRACTOR_API_KEY", "18fadfc9bd0a49db85b95c36910ab347.oJDKNbgKqdEGzb77"),
- base_url=os.environ.get("INFO_EXTRACTOR_BASE_URL", "https://open.bigmodel.cn/api/coding/paas/v4"),
- temperature=0,
- max_retries=3,
- )
- # 从文本中提取关键信息定义
- definition = extractor.extract_definition(
- text=SAMPLE_ARTICLE,
- verbose=True,
- debug=True,
- )
- # 输出生成的定义
- print("\n" + "=" * 60)
- print("生成的关键信息定义:")
- print("=" * 60)
- print(json.dumps(definition, ensure_ascii=False, indent=2))
- if __name__ == "__main__":
- main()
|