Browse Source

初次提交

unknown 3 weeks ago
commit
f8fe4afd71
100 changed files with 26522 additions and 0 deletions
  1. 47 0
      RAGAS/dataset.json
  2. 22 0
      RAGAS/dataset_qa.json
  3. 4 0
      RAGAS/dataset_qa_full.json
  4. 5 0
      RAGAS/dataset_qa_result.json
  5. 138 0
      RAGAS/dome.py
  6. 268 0
      RAGAS/frontend/index.html
  7. 841 0
      RAGAS/frontend/rag_eval.html
  8. 60 0
      RAGAS/logs/rag.chat_message.log
  9. 1 0
      RAGAS/logs/rag.db.log
  10. 13 0
      RAGAS/logs/rag.db.log.2025-11-05
  11. 7747 0
      RAGAS/logs/rag.llm.log
  12. 0 0
      RAGAS/logs/rag.vector_db.milvus_vector.log
  13. 283 0
      RAGAS/ragas_eval.py
  14. 420 0
      RAGAS/ragas_eval_with_rag.py
  15. 407 0
      RAGAS/ragas_eval_with_rag_api.py
  16. 168 0
      RAGAS/requirements.txt
  17. 130 0
      config.py
  18. 466 0
      data_cleanup_script.py
  19. 125 0
      data_cleanup_script_api.py
  20. 134 0
      lb_gateway.py
  21. 1 0
      mineru/__init__.py
  22. 1 0
      mineru/backend/__init__.py
  23. 1 0
      mineru/backend/hybrid/__init__.py
  24. 526 0
      mineru/backend/hybrid/hybrid_analyze.py
  25. 618 0
      mineru/backend/hybrid/hybrid_magic_model.py
  26. 212 0
      mineru/backend/hybrid/hybrid_model_output_to_middle_json.py
  27. 1 0
      mineru/backend/pipeline/__init__.py
  28. 436 0
      mineru/backend/pipeline/batch_analyze.py
  29. 365 0
      mineru/backend/pipeline/model_init.py
  30. 263 0
      mineru/backend/pipeline/model_json_to_middle_json.py
  31. 9 0
      mineru/backend/pipeline/model_list.py
  32. 381 0
      mineru/backend/pipeline/para_split.py
  33. 206 0
      mineru/backend/pipeline/pipeline_analyze.py
  34. 373 0
      mineru/backend/pipeline/pipeline_magic_model.py
  35. 314 0
      mineru/backend/pipeline/pipeline_middle_json_mkcontent.py
  36. 24 0
      mineru/backend/utils.py
  37. 1 0
      mineru/backend/vlm/__init__.py
  38. 131 0
      mineru/backend/vlm/model_output_to_middle_json.py
  39. 103 0
      mineru/backend/vlm/utils.py
  40. 300 0
      mineru/backend/vlm/vlm_analyze.py
  41. 543 0
      mineru/backend/vlm/vlm_magic_model.py
  42. 704 0
      mineru/backend/vlm/vlm_middle_json_mkcontent.py
  43. 1 0
      mineru/cli/__init__.py
  44. 223 0
      mineru/cli/client.py
  45. 571 0
      mineru/cli/common.py
  46. 371 0
      mineru/cli/fast_api.py
  47. 506 0
      mineru/cli/gradio_app.py
  48. 154 0
      mineru/cli/models_download.py
  49. 61 0
      mineru/cli/vlm_server.py
  50. 1 0
      mineru/data/__init__.py
  51. 17 0
      mineru/data/data_reader_writer/__init__.py
  52. 63 0
      mineru/data/data_reader_writer/base.py
  53. 11 0
      mineru/data/data_reader_writer/dummy.py
  54. 62 0
      mineru/data/data_reader_writer/filebase.py
  55. 144 0
      mineru/data/data_reader_writer/multi_bucket_s3.py
  56. 72 0
      mineru/data/data_reader_writer/s3.py
  57. 6 0
      mineru/data/io/__init__.py
  58. 42 0
      mineru/data/io/base.py
  59. 37 0
      mineru/data/io/http.py
  60. 114 0
      mineru/data/io/s3.py
  61. 1 0
      mineru/data/utils/__init__.py
  62. 40 0
      mineru/data/utils/exceptions.py
  63. 33 0
      mineru/data/utils/path_utils.py
  64. 20 0
      mineru/data/utils/schemas.py
  65. 1 0
      mineru/model/__init__.py
  66. 1 0
      mineru/model/layout/__init__.py
  67. 119 0
      mineru/model/layout/doclayoutyolo.py
  68. 1 0
      mineru/model/mfd/__init__.py
  69. 114 0
      mineru/model/mfd/yolo_v8.py
  70. 1 0
      mineru/model/mfr/__init__.py
  71. 0 0
      mineru/model/mfr/pp_formulanet_plus_m/__init__.py
  72. 152 0
      mineru/model/mfr/pp_formulanet_plus_m/predict_formula.py
  73. 657 0
      mineru/model/mfr/pp_formulanet_plus_m/processors.py
  74. 207 0
      mineru/model/mfr/unimernet/Unimernet.py
  75. 0 0
      mineru/model/mfr/unimernet/__init__.py
  76. 13 0
      mineru/model/mfr/unimernet/unimernet_hf/__init__.py
  77. 176 0
      mineru/model/mfr/unimernet/unimernet_hf/modeling_unimernet.py
  78. 8 0
      mineru/model/mfr/unimernet/unimernet_hf/unimer_mbart/__init__.py
  79. 163 0
      mineru/model/mfr/unimernet/unimernet_hf/unimer_mbart/configuration_unimer_mbart.py
  80. 2361 0
      mineru/model/mfr/unimernet/unimernet_hf/unimer_mbart/modeling_unimer_mbart.py
  81. 0 0
      mineru/model/mfr/unimernet/unimernet_hf/unimer_mbart/tokenization_unimer_mbart.py
  82. 9 0
      mineru/model/mfr/unimernet/unimernet_hf/unimer_swin/__init__.py
  83. 132 0
      mineru/model/mfr/unimernet/unimernet_hf/unimer_swin/configuration_unimer_swin.py
  84. 174 0
      mineru/model/mfr/unimernet/unimernet_hf/unimer_swin/image_processing_unimer_swin.py
  85. 1084 0
      mineru/model/mfr/unimernet/unimernet_hf/unimer_swin/modeling_unimer_swin.py
  86. 338 0
      mineru/model/mfr/utils.py
  87. 1 0
      mineru/model/ocr/__init__.py
  88. 300 0
      mineru/model/ocr/pytorch_paddle.py
  89. 1 0
      mineru/model/ori_cls/__init__.py
  90. 282 0
      mineru/model/ori_cls/paddle_ori_cls.py
  91. 1 0
      mineru/model/reading_order/__init__.py
  92. 125 0
      mineru/model/reading_order/layout_reader.py
  93. 242 0
      mineru/model/reading_order/xycut.py
  94. 1 0
      mineru/model/table/__init__.py
  95. 1 0
      mineru/model/table/cls/__init__.py
  96. 148 0
      mineru/model/table/cls/paddle_table_cls.py
  97. 154 0
      mineru/model/table/rec/RapidTable.py
  98. 1 0
      mineru/model/table/rec/__init__.py
  99. 0 0
      mineru/model/table/rec/slanet_plus/__init__.py
  100. 212 0
      mineru/model/table/rec/slanet_plus/main.py

+ 47 - 0
RAGAS/dataset.json

@@ -0,0 +1,47 @@
+[
+  {
+    "question": "谁发明了电话?",
+    "contexts": [
+      "亚历山大·格拉汉姆·贝尔于1876年获得了电话的发明专利,被认为是电话的主要发明者。",
+      "电话的发明历史中,安东尼奥·梅乌奇和伊莱沙·格雷也对电话的发展做出了重要贡献。"
+    ],
+    "ground_truth": "亚历山大·格拉汉姆·贝尔被认为是电话的主要发明者,他于1876年获得了电话的发明专利。",
+    "answer": "电话的主要发明者是亚历山大·格拉汉姆·贝尔,他于1876年获得了电话的发明专利。"
+  },
+  {
+    "question": "地球上最大的哺乳动物是什么?",
+    "contexts": [
+      "蓝鲸是目前已知的地球上最大的哺乳动物,成年蓝鲸体长可达30米,重量可达180吨。",
+      "蓝鲸属于海洋哺乳动物,分布在世界各大洋中,以磷虾等小型甲壳类动物为食。"
+    ],
+    "ground_truth": "蓝鲸是地球上最大的哺乳动物,体长可达30米,重量可达180吨。",
+    "answer": "地球上最大的哺乳动物是蓝鲸,成年蓝鲸体长可达30米,重量可达180吨。"
+  },
+  {
+    "question": "Python中列表和元组的主要区别是什么?",
+    "contexts": [
+      "Python中列表是可变的序列类型,可以进行增删改操作,而元组是不可变的序列类型,创建后不能修改。",
+      "列表使用方括号[]定义,元组使用圆括号()定义。由于元组的不可变性,它可以作为字典的键,而列表不能。"
+    ],
+    "ground_truth": "列表是可变的,可以修改;元组是不可变的,创建后不能修改。元组可以作为字典的键,而列表不能。",
+    "answer": "列表是可变的,可以进行增删改操作;元组是不可变的,创建后不能修改。因此元组可以作为字典的键,而列表不能。"
+  },
+  {
+    "question": "第一次工业革命开始于什么时候?",
+    "contexts": [
+      "第一次工业革命始于18世纪60年代的英国,以蒸汽机的发明和应用为标志。",
+      "工业革命从纺织业开始,逐渐扩展到交通运输、冶金等多个行业,彻底改变了生产方式。"
+    ],
+    "ground_truth": "第一次工业革命开始于18世纪60年代的英国。",
+    "answer": "第一次工业革命开始于18世纪60年代的英国,以蒸汽机的发明和应用为标志。"
+  },
+  {
+    "question": "水的化学式是什么?",
+    "contexts": [
+      "水的化学式是H₂O,表示一个水分子由两个氢原子和一个氧原子组成。",
+      "水在常温常压下为无色无味的液体,是地球上最常见的化合物之一。"
+    ],
+    "ground_truth": "水的化学式是H₂O。",
+    "answer": "水的化学式是H₂O,表示一个水分子由两个氢原子和一个氧原子组成。"
+  }
+]

+ 22 - 0
RAGAS/dataset_qa.json

@@ -0,0 +1,22 @@
+[
+  {
+    "question": "谁发明了电话?",
+    "ground_truth": "电话的主要发明者是亚历山大·格拉汉姆·贝尔,他于1876年获得了电话的发明专利。"
+  },
+  {
+    "question": "地球上最大的哺乳动物是什么?",
+    "ground_truth": "地球上最大的哺乳动物是蓝鲸,成年蓝鲸体长可达30米,重量可达180吨。"
+  },
+  {
+    "question": "Python中列表和元组的主要区别是什么?",
+    "ground_truth": "列表是可变的,可以进行增删改操作;元组是不可变的,创建后不能修改。因此元组可以作为字典的键,而列表不能。"
+  },
+  {
+    "question": "第一次工业革命开始于什么时候?",
+    "ground_truth": "第一次工业革命开始于18世纪60年代的英国,以蒸汽机的发明和应用为标志。"
+  },
+  {
+    "question": "水的化学式是什么?",
+    "ground_truth": "水的化学式是H₂O,表示一个水分子由两个氢原子和一个氧原子组成。"
+  }
+]

File diff suppressed because it is too large
+ 4 - 0
RAGAS/dataset_qa_full.json


File diff suppressed because it is too large
+ 5 - 0
RAGAS/dataset_qa_result.json


+ 138 - 0
RAGAS/dome.py

@@ -0,0 +1,138 @@
+import os
+import json
+import pandas as pd
+from datasets import Dataset
+
+from ragas import evaluate
+from ragas.metrics import (
+    faithfulness,
+    answer_correctness,
+    answer_relevancy,
+    context_precision,
+    context_recall,
+    NoiseSensitivity
+)
+
+from langchain_openai import ChatOpenAI, OpenAIEmbeddings
+
+VLLM_LLM_BASE = "http://xia0miduo.gicp.net:8102/v1"
+VLLM_LLM_KEY = "vllm-dummy-key"
+
+VLLM_EMBEDDING_BASE = "http://10.168.100.17:8787/v1/"
+
+vllm_generator = ChatOpenAI(
+    model="Qwen3-Coder-30B-loft",
+    base_url=VLLM_LLM_BASE,
+    api_key=VLLM_LLM_KEY,
+    temperature=0,
+    max_tokens=512,
+)
+
+vllm_embeddings = OpenAIEmbeddings(
+    model="",
+    base_url=VLLM_EMBEDDING_BASE,
+    api_key=VLLM_LLM_KEY,
+)
+
+# --- 2. 加载和准备数据集 ---
+def load_data_from_json(json_path):
+    """
+    从 JSON 文件加载数据并转换为 datasets.Dataset 格式。
+
+    假设的 JSON 结构:
+    [
+        {
+            "question": "...",
+            "answer": "...",
+            "contexts": ["...", "..."],
+            "ground_truth": "..."
+        },
+        ...
+    ]
+    """
+    try:
+        with open(json_path, 'r', encoding='utf-8') as f:
+            data_list = json.load(f)
+        
+        df = pd.DataFrame(data_list)
+
+        required_cols = {'question', 'answer', 'contexts'}
+        if not required_cols.issubset(df.columns):
+            raise ValueError(f"JSON 文件必须包含 'question', 'answer', 和 'contexts' 键")
+
+        if 'ground_truth' not in df.columns:
+            print("警告: 未找到 'ground_truth' 列。'context_recall' 指标将无法计算。")
+            
+        dataset = Dataset.from_pandas(df)
+        return dataset
+
+    except Exception as e:
+        print(f"加载数据时出错: {e}")
+        return None
+
+# --- 3. 定义指标 ---
+metrics_to_run = [
+    faithfulness,
+    answer_correctness,
+    answer_relevancy,
+    context_precision,
+    context_recall,
+    NoiseSensitivity(llm=vllm_generator),
+]
+
+# --- 4. 执行评估 ---
+def run_evaluation(dataset_path):
+    print(f"正在从 {dataset_path} 加载数据...")
+    dataset = load_data_from_json(dataset_path)
+
+    if dataset is None:
+        print("数据加载失败,退出评估。")
+        return
+
+    print(f"成功加载 {len(dataset)} 条评估数据。")
+
+    final_metrics = list(metrics_to_run)
+    if 'ground_truth' not in dataset.column_names:
+        print("由于缺少 'ground_truth',将跳过 'context_recall' 指标。")
+        final_metrics.remove(context_recall)
+
+    if not final_metrics:
+        print("没有可执行的指标。退出。")
+        return
+
+    print("开始 RAGAS 评估... (这可能需要一些时间)")
+    
+    # 核心:调用 evaluate
+    result = evaluate(
+        dataset=dataset,
+        metrics=final_metrics,
+        llm=vllm_generator,
+        embeddings=vllm_embeddings
+    )
+
+    print("评估完成!")
+    result_df = result.to_pandas()
+    print(json.dumps(result_df.to_dict(orient="records"), indent=4, ensure_ascii=False))
+
+# --- 主程序入口 ---
+if __name__ == "__main__":
+    
+    input_json_file = "dataset.json" 
+    
+    if not os.path.exists(input_json_file):
+        print(f"错误: 找不到 {input_json_file}")
+        print("请创建一个示例 JSON 文件,结构如下:")
+        print("""
+        [
+            {
+                "question": "什么是 RAGAS?",
+                "answer": "RAGAS 是一个评估 RAG 管道的框架。",
+                "contexts": ["RAGAS (Retrieval-Augmented Generation Assessment) 是一个用于评估 RAG 管道的框架。"],
+                "ground_truth": "RAGAS 是一个专为评估 RAG 管道设计的框架,它关注检索和生成的质量。"
+            }
+        ]
+        """)
+    else:
+        run_evaluation(input_json_file)
+
+

+ 268 - 0
RAGAS/frontend/index.html

@@ -0,0 +1,268 @@
+<!DOCTYPE html>
+<html lang="zh-CN">
+<head>
+  <meta charset="UTF-8" />
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+  <title>RAGAS 评估面板</title>
+  <link rel="preconnect" href="https://fonts.googleapis.com">
+  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
+  <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&display=swap" rel="stylesheet">
+  <script src="https://cdn.jsdelivr.net/npm/chart.js@4.4.1/dist/chart.umd.min.js"></script>
+  <style>
+    :root {
+      --bg: #f6f7fb; /* light background */
+      --panel: #ffffff; /* white panel */
+      --card: #ffffff; /* white card */
+      --muted: #64748b; /* slate-500 */
+      --text: #0f172a; /* slate-900 */
+      --accent: #3b82f6; /* blue-500 */
+      --accent-2: #6366f1; /* indigo-500 */
+      --ok: #16a34a; /* green-600 */
+      --warn: #d97706; /* amber-600 */
+      --bad: #dc2626; /* red-600 */
+      --border: #e5e7eb; /* gray-200 */
+      --shadow: 0 8px 24px rgba(15, 23, 42, 0.08);
+    }
+    * { box-sizing: border-box; }
+    body {
+      margin: 0;
+      font-family: 'Inter', system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji";
+      background: var(--bg);
+      color: var(--text);
+    }
+    header {
+      padding: 24px 32px;
+      border-bottom: 1px solid var(--border);
+      background: rgba(255,255,255,0.8);
+      backdrop-filter: blur(6px);
+      position: sticky;
+      top: 0; z-index: 10;
+    }
+    header h1 { margin: 0; font-size: 22px; letter-spacing: 0.4px; font-weight: 700; }
+    header p { margin: 6px 0 0; color: var(--muted); font-size: 13px; }
+
+    .container { max-width: 1100px; margin: 24px auto; padding: 0 16px; }
+    .panel {
+      background: var(--panel);
+      border: 1px solid var(--border);
+      border-radius: 16px; padding: 20px; box-shadow: var(--shadow);
+    }
+
+    .uploader {
+      border: 2px dashed var(--border); border-radius: 16px; padding: 24px; text-align: center;
+      background: linear-gradient(180deg, #ffffff, #f8fafc);
+    }
+    .uploader:hover { border-color: var(--accent); }
+    .uploader input { display: none; }
+    .uploader label { display: inline-block; padding: 10px 16px; background: var(--accent); color: #ffffff; border-radius: 10px; cursor: pointer; font-weight: 600; box-shadow: 0 6px 16px rgba(59,130,246,0.25); }
+    .uploader small { display: block; margin-top: 10px; color: var(--muted); }
+
+    .actions { margin-top: 12px; display: flex; gap: 12px; justify-content: center; }
+    .btn {
+      padding: 10px 14px; border-radius: 10px; border: 1px solid var(--border); background: #ffffff; color: var(--text);
+      cursor: pointer; font-weight: 600; box-shadow: var(--shadow);
+    }
+    .btn.primary { background: var(--accent); color: #ffffff; border-color: transparent; }
+    .btn:disabled { opacity: 0.6; cursor: not-allowed; }
+
+    .grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-top: 16px; }
+    .card { background: var(--card); border: 1px solid var(--border); border-radius: 12px; padding: 12px; box-shadow: var(--shadow); }
+    .metric { display: flex; justify-content: space-between; align-items: baseline; }
+    .metric h3 { margin: 0; font-size: 14px; color: var(--muted); }
+    .metric .value { font-size: 20px; font-weight: 700; color: var(--accent-2); }
+    .bar { height: 8px; background: #f1f5f9; border-radius: 999px; overflow: hidden; margin-top: 8px; border: 1px solid var(--border); }
+    .bar > span { display: block; height: 100%; background: linear-gradient(90deg, #3b82f6, #22c55e); }
+
+    .section-title { margin: 22px 0 10px; font-size: 15px; color: var(--muted); letter-spacing: .2px; }
+    .table { width: 100%; border-collapse: collapse; background: #ffffff; border: 1px solid var(--border); border-radius: 12px; overflow: hidden; box-shadow: var(--shadow); }
+    .table th, .table td { border-bottom: 1px solid var(--border); padding: 10px 12px; font-size: 13px; }
+    .table th { text-align: left; color: var(--muted); font-weight: 600; background: #f8fafc; }
+    .table tr:hover td { background: #f8fafc; }
+    .muted { color: var(--muted); }
+    .note { font-size: 12px; color: var(--muted); margin-top: 8px; }
+  </style>
+</head>
+<body>
+  <header>
+    <h1>RAGAS 评估面板</h1>
+    <p>上传包含 question/answer/contexts/ground_truth 的 JSON,查看评估结果</p>
+  </header>
+
+  <div class="container">
+    <div class="panel">
+      <div class="uploader" id="uploader">
+        <input type="file" id="file" accept="application/json,.json" />
+        <label for="file">选择 JSON 文件</label>
+        <small>示例结构是一个数组,每条记录包含 question、answer、contexts、ground_truth(可选)</small>
+        <div class="actions">
+          <button class="btn primary" id="runBtn" disabled>开始评估</button>
+          <button class="btn" id="resetBtn" disabled>重置</button>
+        </div>
+      </div>
+
+      <div id="result" style="display:none;">
+        <h2 class="section-title">总体指标</h2>
+        <div class="grid" id="summaryGrid"></div>
+        <canvas id="summaryChart" style="margin-top: 10px; background:#ffffff; border: 1px solid var(--border); border-radius:12px; padding:8px; box-shadow: var(--shadow);"></canvas>
+
+        <h2 class="section-title">逐条详单</h2>
+        <table class="table" id="rowsTable">
+          <thead>
+            <tr>
+              <th>#</th>
+              <th>question</th>
+              <th>faithfulness</th>
+              <th>answer_correctness</th>
+              <th>answer_relevancy</th>
+              <th>context_precision</th>
+              <th>context_recall</th>
+            </tr>
+          </thead>
+          <tbody></tbody>
+        </table>
+        <div class="note" id="note"></div>
+      </div>
+    </div>
+  </div>
+
+  <script>
+    const fileInput = document.getElementById('file');
+    const runBtn = document.getElementById('runBtn');
+    const resetBtn = document.getElementById('resetBtn');
+    const resultWrap = document.getElementById('result');
+    const summaryGrid = document.getElementById('summaryGrid');
+    const rowsTableBody = document.querySelector('#rowsTable tbody');
+    const note = document.getElementById('note');
+    let chartInstance = null;
+
+    fileInput.addEventListener('change', () => {
+      const hasFile = fileInput.files && fileInput.files.length > 0;
+      runBtn.disabled = !hasFile;
+      resetBtn.disabled = !hasFile;
+    });
+
+    resetBtn.addEventListener('click', () => {
+      fileInput.value = '';
+      runBtn.disabled = true;
+      resetBtn.disabled = true;
+      resultWrap.style.display = 'none';
+      summaryGrid.innerHTML = '';
+      rowsTableBody.innerHTML = '';
+      note.textContent = '';
+      if (chartInstance) { chartInstance.destroy(); chartInstance = null; }
+    });
+
+    runBtn.addEventListener('click', async () => {
+      if (!fileInput.files || fileInput.files.length === 0) return;
+      runBtn.disabled = true;
+      runBtn.textContent = '评估中...';
+
+      try {
+        const fd = new FormData();
+        fd.append('file', fileInput.files[0]);
+        const resp = await fetch('/api/evaluate', { method: 'POST', body: fd });
+        if (!resp.ok) {
+          const err = await resp.json().catch(() => ({}));
+          throw new Error(err.detail || '评估请求失败');
+        }
+        const data = await resp.json();
+        renderResult(data);
+      } catch (e) {
+        alert(e.message || e);
+      } finally {
+        runBtn.textContent = '开始评估';
+        runBtn.disabled = false;
+      }
+    });
+
+    function toPercent(v) { return Math.round((v || 0) * 1000) / 10; }
+
+    function renderSummaryCard(name, value) {
+      const card = document.createElement('div');
+      card.className = 'card';
+      const percent = toPercent(value);
+      card.innerHTML = `
+        <div class="metric">
+          <h3>${name}</h3>
+          <div class="value">${percent}%</div>
+        </div>
+        <div class="bar"><span style="width:${percent}%;"></span></div>
+      `;
+      summaryGrid.appendChild(card);
+    }
+
+    function renderChart(summary) {
+      const ctx = document.getElementById('summaryChart');
+      const labels = Object.keys(summary);
+      const values = labels.map(k => Math.round((summary[k] || 0) * 1000) / 10);
+      if (chartInstance) chartInstance.destroy();
+      chartInstance = new Chart(ctx, {
+        type: 'bar',
+        data: {
+          labels,
+          datasets: [{
+            label: '总体指标(%)',
+            data: values,
+            backgroundColor: ['#60a5fa','#34d399','#93c5fd','#a78bfa','#fbbf24'],
+          }]
+        },
+        options: {
+          responsive: true,
+          scales: {
+            y: { beginAtZero: true, max: 100, grid: { color: '#e5e7eb' } },
+            x: { grid: { color: '#f1f5f9' } }
+          },
+          plugins: {
+            legend: { labels: { color: '#0f172a' } }
+          }
+        }
+      });
+    }
+
+    function renderRows(rows) {
+      rowsTableBody.innerHTML = '';
+      rows.forEach((r, i) => {
+        const tr = document.createElement('tr');
+        const cells = [
+          i + 1,
+          r.question || '',
+          fmt(r.faithfulness),
+          fmt(r.answer_correctness),
+          fmt(r.answer_relevancy),
+          fmt(r.context_precision),
+          fmt(r.context_recall),
+        ];
+        cells.forEach(c => {
+          const td = document.createElement('td');
+          td.textContent = c;
+          tr.appendChild(td);
+        });
+        rowsTableBody.appendChild(tr);
+      });
+    }
+
+    function fmt(v) {
+      if (v === null || v === undefined || v === '') return '';
+      return (Math.round(v * 1000) / 10) + '%';
+    }
+
+    function renderResult(data) {
+      resultWrap.style.display = 'block';
+      summaryGrid.innerHTML = '';
+      rowsTableBody.innerHTML = '';
+
+      const summary = data.summary || {};
+      Object.keys(summary).forEach(k => renderSummaryCard(k, summary[k]));
+      renderChart(summary);
+
+      renderRows(data.rows || []);
+
+      if (data.skipped_metrics && data.skipped_metrics.length) {
+        note.textContent = '已跳过指标: ' + data.skipped_metrics.join(', ') + '(缺少 ground_truth)';
+      } else {
+        note.textContent = '';
+      }
+    }
+  </script>
+</body>
+</html>

+ 841 - 0
RAGAS/frontend/rag_eval.html

@@ -0,0 +1,841 @@
+<!DOCTYPE html>
+<html lang="zh-CN">
+<head>
+  <meta charset="UTF-8">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  <title>RAGAS RAG 评估系统</title>
+  <link rel="preconnect" href="https://fonts.googleapis.com">
+  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
+  <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet">
+  <script src="https://cdn.jsdelivr.net/npm/chart.js@4.4.1/dist/chart.umd.min.js"></script>
+  <style>
+    :root {
+      --primary: #3b82f6;
+      --primary-dark: #2563eb;
+      --success: #10b981;
+      --warning: #f59e0b;
+      --danger: #ef4444;
+      --bg: #f8fafc;
+      --surface: #ffffff;
+      --text: #0f172a;
+      --text-muted: #64748b;
+      --border: #e2e8f0;
+      --shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
+      --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
+    }
+    
+    * {
+      margin: 0;
+      padding: 0;
+      box-sizing: border-box;
+    }
+    
+    body {
+      font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
+      background: var(--bg);
+      color: var(--text);
+      line-height: 1.6;
+    }
+    
+    /* Header */
+    .header {
+      background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);
+      color: white;
+      padding: 2rem 0;
+      box-shadow: var(--shadow-lg);
+    }
+    
+    .header-content {
+      max-width: 1200px;
+      margin: 0 auto;
+      padding: 0 2rem;
+    }
+    
+    .header h1 {
+      font-size: 2rem;
+      font-weight: 700;
+      margin-bottom: 0.5rem;
+    }
+    
+    .header p {
+      font-size: 1rem;
+      opacity: 0.9;
+    }
+    
+    /* Container */
+    .container {
+      max-width: 1200px;
+      margin: 2rem auto;
+      padding: 0 2rem;
+    }
+    
+    /* Card */
+    .card {
+      background: var(--surface);
+      border-radius: 12px;
+      padding: 2rem;
+      box-shadow: var(--shadow);
+      margin-bottom: 2rem;
+    }
+    
+    .card-title {
+      font-size: 1.25rem;
+      font-weight: 600;
+      margin-bottom: 1.5rem;
+      color: var(--text);
+    }
+    
+    /* Upload Section */
+    .upload-area {
+      border: 2px dashed var(--border);
+      border-radius: 12px;
+      padding: 3rem 2rem;
+      text-align: center;
+      background: linear-gradient(to bottom, #ffffff, #f8fafc);
+      transition: all 0.3s ease;
+    }
+    
+    .upload-area:hover {
+      border-color: var(--primary);
+      background: linear-gradient(to bottom, #ffffff, #eff6ff);
+    }
+    
+    .upload-icon {
+      font-size: 3rem;
+      margin-bottom: 1rem;
+    }
+    
+    .upload-area input[type="file"] {
+      display: none;
+    }
+    
+    .upload-label {
+      display: inline-block;
+      padding: 0.75rem 2rem;
+      background: var(--primary);
+      color: white;
+      border-radius: 8px;
+      cursor: pointer;
+      font-weight: 600;
+      transition: all 0.3s ease;
+      box-shadow: var(--shadow);
+    }
+    
+    .upload-label:hover {
+      background: var(--primary-dark);
+      transform: translateY(-2px);
+      box-shadow: var(--shadow-lg);
+    }
+    
+    .upload-hint {
+      margin-top: 1rem;
+      color: var(--text-muted);
+      font-size: 0.875rem;
+    }
+    
+    /* Form */
+    .form-group {
+      margin-bottom: 1.5rem;
+    }
+    
+    .form-label {
+      display: block;
+      margin-bottom: 0.5rem;
+      font-weight: 600;
+      color: var(--text);
+      font-size: 0.875rem;
+    }
+    
+    .form-input,
+    .form-select {
+      width: 100%;
+      padding: 0.75rem 1rem;
+      border: 1px solid var(--border);
+      border-radius: 8px;
+      font-size: 0.875rem;
+      font-family: inherit;
+      transition: all 0.3s ease;
+    }
+    
+    .form-input:focus,
+    .form-select:focus {
+      outline: none;
+      border-color: var(--primary);
+      box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
+    }
+    
+    .form-hint {
+      margin-top: 0.5rem;
+      font-size: 0.75rem;
+      color: var(--text-muted);
+    }
+    
+    /* Buttons */
+    .btn-group {
+      display: flex;
+      gap: 1rem;
+      margin-top: 2rem;
+    }
+    
+    .btn {
+      padding: 0.75rem 1.5rem;
+      border: none;
+      border-radius: 8px;
+      font-weight: 600;
+      font-size: 0.875rem;
+      cursor: pointer;
+      transition: all 0.3s ease;
+      box-shadow: var(--shadow);
+    }
+    
+    .btn-primary {
+      background: var(--primary);
+      color: white;
+    }
+    
+    .btn-primary:hover:not(:disabled) {
+      background: var(--primary-dark);
+      transform: translateY(-2px);
+      box-shadow: var(--shadow-lg);
+    }
+    
+    .btn-secondary {
+      background: var(--surface);
+      color: var(--text);
+      border: 1px solid var(--border);
+    }
+    
+    .btn-secondary:hover:not(:disabled) {
+      background: var(--bg);
+    }
+    
+    .btn:disabled {
+      opacity: 0.5;
+      cursor: not-allowed;
+    }
+    
+    /* Loading */
+    .loading {
+      display: none;
+      text-align: center;
+      padding: 2rem;
+    }
+    
+    .loading.active {
+      display: block;
+    }
+    
+    .spinner {
+      border: 4px solid var(--border);
+      border-top: 4px solid var(--primary);
+      border-radius: 50%;
+      width: 40px;
+      height: 40px;
+      animation: spin 1s linear infinite;
+      margin: 0 auto 1rem;
+    }
+    
+    @keyframes spin {
+      0% { transform: rotate(0deg); }
+      100% { transform: rotate(360deg); }
+    }
+    
+    /* Results */
+    .results {
+      display: none;
+    }
+    
+    .results.active {
+      display: block;
+    }
+    
+    .metrics-grid {
+      display: grid;
+      grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
+      gap: 1rem;
+      margin-bottom: 2rem;
+    }
+    
+    .metric-card {
+      background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);
+      color: white;
+      padding: 1.5rem;
+      border-radius: 12px;
+      box-shadow: var(--shadow);
+    }
+    
+    .metric-name {
+      font-size: 0.875rem;
+      opacity: 0.9;
+      margin-bottom: 0.5rem;
+    }
+    
+    .metric-value {
+      font-size: 2rem;
+      font-weight: 700;
+    }
+    
+    .metric-bar {
+      height: 6px;
+      background: rgba(255, 255, 255, 0.3);
+      border-radius: 3px;
+      margin-top: 0.75rem;
+      overflow: hidden;
+    }
+    
+    .metric-bar-fill {
+      height: 100%;
+      background: white;
+      border-radius: 3px;
+      transition: width 0.5s ease;
+    }
+    
+    /* Chart */
+    .chart-container {
+      margin: 2rem 0;
+      padding: 1.5rem;
+      background: var(--surface);
+      border-radius: 12px;
+      box-shadow: var(--shadow);
+      position: relative;
+      height: 400px;
+    }
+    
+    .chart-wrapper {
+      position: relative;
+      height: 100%;
+      width: 100%;
+    }
+    
+    /* Table */
+    .table-container {
+      overflow-x: auto;
+      margin-top: 2rem;
+    }
+    
+    .table {
+      width: 100%;
+      border-collapse: collapse;
+      background: var(--surface);
+      border-radius: 12px;
+      overflow: hidden;
+      box-shadow: var(--shadow);
+    }
+    
+    .table th,
+    .table td {
+      padding: 1rem;
+      text-align: left;
+      border-bottom: 1px solid var(--border);
+    }
+    
+    .table th {
+      background: var(--bg);
+      font-weight: 600;
+      color: var(--text);
+      font-size: 0.875rem;
+      text-transform: uppercase;
+      letter-spacing: 0.5px;
+    }
+    
+    .table td {
+      font-size: 0.875rem;
+    }
+    
+    .table tr:hover td {
+      background: var(--bg);
+    }
+    
+    .table tr:last-child td {
+      border-bottom: none;
+    }
+    
+    /* Score Badge */
+    .score {
+      display: inline-block;
+      padding: 0.25rem 0.75rem;
+      border-radius: 6px;
+      font-weight: 600;
+      font-size: 0.75rem;
+    }
+    
+    .score-high {
+      background: #d1fae5;
+      color: #065f46;
+    }
+    
+    .score-medium {
+      background: #fef3c7;
+      color: #92400e;
+    }
+    
+    .score-low {
+      background: #fee2e2;
+      color: #991b1b;
+    }
+    
+    /* Alert */
+    .alert {
+      padding: 1rem;
+      border-radius: 8px;
+      margin-bottom: 1rem;
+    }
+    
+    .alert-info {
+      background: #dbeafe;
+      color: #1e40af;
+      border-left: 4px solid var(--primary);
+    }
+    
+    .alert-success {
+      background: #d1fae5;
+      color: #065f46;
+      border-left: 4px solid var(--success);
+    }
+    
+    /* Responsive */
+    @media (max-width: 768px) {
+      .header h1 {
+        font-size: 1.5rem;
+      }
+      
+      .container {
+        padding: 0 1rem;
+      }
+      
+      .card {
+        padding: 1.5rem;
+      }
+      
+      .metrics-grid {
+        grid-template-columns: 1fr;
+      }
+      
+      .btn-group {
+        flex-direction: column;
+      }
+      
+      .chart-container {
+        height: 300px;
+      }
+      
+      .table-container {
+        overflow-x: scroll;
+      }
+    }
+  </style>
+</head>
+<body>
+  <!-- Header -->
+  <div class="header">
+    <div class="header-content">
+      <h1>🎯 RAGAS RAG 评估系统</h1>
+      <p>智能评估 RAG 系统的检索和生成质量</p>
+    </div>
+  </div>
+
+  <!-- Main Container -->
+  <div class="container">
+    <!-- Upload Card -->
+    <div class="card">
+      <h2 class="card-title">📤 上传评估数据</h2>
+      
+      <div class="upload-area">
+        <div class="upload-icon">📄</div>
+        <input type="file" id="fileInput" accept=".json">
+        <label for="fileInput" class="upload-label">选择 JSON 文件</label>
+        <p class="upload-hint">
+          上传包含 <code>question</code> 和 <code>ground_truth</code> 的 JSON 文件<br>
+          系统将自动通过 RAG 获取 contexts 和 answer
+        </p>
+      </div>
+
+      <!-- Configuration -->
+      <div style="margin-top: 2rem;">
+        <h3 style="font-size: 1rem; font-weight: 600; margin-bottom: 1rem;">⚙️ RAG 配置</h3>
+        
+        <div class="form-group">
+          <label class="form-label">知识库 ID *</label>
+          <input 
+            type="text" 
+            id="knowledgeIds" 
+            class="form-input"
+            placeholder="例如: a2963496869283893248 或 id1,id2,id3"
+            required
+          >
+          <p class="form-hint">多个 ID 用英文逗号分隔</p>
+        </div>
+
+        <div class="form-group">
+          <label class="form-label">嵌入模型</label>
+          <select id="embeddingId" class="form-select">
+            <option value="e5" selected>e5 (默认)</option>
+            <option value="multilingual-e5-large-instruct">multilingual-e5-large-instruct</option>
+          </select>
+          <p class="form-hint">选择用于向量检索的嵌入模型</p>
+        </div>
+
+        <div class="form-group">
+          <label class="form-label">LLM 模型</label>
+          <select id="model" class="form-select">
+            <option value="Qwen3-Coder-30B-loft" selected>Qwen3-Coder-30B-loft</option>
+            <option value="Qwen3-30B">Qwen3-30B</option>
+          </select>
+          <p class="form-hint">选择用于生成答案的 LLM 模型</p>
+        </div>
+
+        <div style="display: grid; grid-template-columns: 1fr 1fr; gap: 1rem;">
+          <div class="form-group">
+            <label class="form-label">温度 (Temperature)</label>
+            <input 
+              type="number" 
+              id="temperature" 
+              class="form-input"
+              value="0.6"
+              min="0"
+              max="1"
+              step="0.1"
+            >
+            <p class="form-hint">控制生成随机性 (0.0-1.0)</p>
+          </div>
+
+          <div class="form-group">
+            <label class="form-label">Top P</label>
+            <input 
+              type="number" 
+              id="topP" 
+              class="form-input"
+              value="0.7"
+              min="0"
+              max="1"
+              step="0.1"
+            >
+            <p class="form-hint">核采样参数 (0.0-1.0)</p>
+          </div>
+        </div>
+
+        <div style="display: grid; grid-template-columns: 1fr 1fr; gap: 1rem;">
+          <div class="form-group">
+            <label class="form-label">最大 Token 数</label>
+            <input 
+              type="number" 
+              id="maxTokens" 
+              class="form-input"
+              value="4096"
+              min="512"
+              max="8192"
+              step="512"
+            >
+            <p class="form-hint">生成答案的最大长度</p>
+          </div>
+
+          <div class="form-group">
+            <label class="form-label">检索切片数</label>
+            <input 
+              type="number" 
+              id="sliceCount" 
+              class="form-input"
+              value="5"
+              min="1"
+              max="20"
+              step="1"
+            >
+            <p class="form-hint">每次检索的文档切片数量</p>
+          </div>
+        </div>
+
+        <div class="form-group">
+          <label class="form-label" style="display: flex; align-items: center; gap: 0.5rem;">
+            <input type="checkbox" id="enableThink" style="width: auto; margin: 0;">
+            <span>启用思考模式</span>
+          </label>
+          <p class="form-hint">启用后 LLM 会先思考再回答(适用于 Qwen3-30B)</p>
+        </div>
+      </div>
+
+      <!-- Actions -->
+      <div class="btn-group">
+        <button id="evaluateBtn" class="btn btn-primary" disabled>
+          🚀 开始评估
+        </button>
+        <button id="resetBtn" class="btn btn-secondary" disabled>
+          🔄 重置
+        </button>
+      </div>
+    </div>
+
+    <!-- Loading -->
+    <div id="loading" class="loading">
+      <div class="spinner"></div>
+      <p style="color: var(--text-muted);">正在评估中,请稍候...</p>
+    </div>
+
+    <!-- Results -->
+    <div id="results" class="results">
+      <!-- Summary Card -->
+      <div class="card">
+        <h2 class="card-title">📊 评估结果</h2>
+        
+        <div class="alert alert-success" id="successAlert" style="display: none;">
+          <strong>✅ 评估完成!</strong> 共评估 <span id="totalCount">0</span> 条数据
+        </div>
+
+        <div class="metrics-grid" id="metricsGrid"></div>
+
+        <div class="chart-container">
+          <div class="chart-wrapper">
+            <canvas id="metricsChart"></canvas>
+          </div>
+        </div>
+      </div>
+
+      <!-- Details Card -->
+      <div class="card">
+        <h2 class="card-title">📋 详细结果</h2>
+        
+        <div class="table-container">
+          <table class="table">
+            <thead>
+              <tr>
+                <th>#</th>
+                <th>问题</th>
+                <th>Faithfulness</th>
+                <th>Answer Correctness</th>
+                <th>Answer Relevancy</th>
+                <th>Context Precision</th>
+                <th>Context Recall</th>
+              </tr>
+            </thead>
+            <tbody id="resultsTable"></tbody>
+          </table>
+        </div>
+      </div>
+    </div>
+  </div>
+
+  <script>
+    // DOM Elements
+    const fileInput = document.getElementById('fileInput');
+    const knowledgeIdsInput = document.getElementById('knowledgeIds');
+    const embeddingIdSelect = document.getElementById('embeddingId');
+    const modelSelect = document.getElementById('model');
+    const temperatureInput = document.getElementById('temperature');
+    const topPInput = document.getElementById('topP');
+    const maxTokensInput = document.getElementById('maxTokens');
+    const sliceCountInput = document.getElementById('sliceCount');
+    const enableThinkCheckbox = document.getElementById('enableThink');
+    const evaluateBtn = document.getElementById('evaluateBtn');
+    const resetBtn = document.getElementById('resetBtn');
+    const loading = document.getElementById('loading');
+    const results = document.getElementById('results');
+    const metricsGrid = document.getElementById('metricsGrid');
+    const resultsTable = document.getElementById('resultsTable');
+    const successAlert = document.getElementById('successAlert');
+    const totalCount = document.getElementById('totalCount');
+
+    let chartInstance = null;
+
+    // File Input Handler
+    fileInput.addEventListener('change', () => {
+      const hasFile = fileInput.files && fileInput.files.length > 0;
+      evaluateBtn.disabled = !hasFile;
+      resetBtn.disabled = !hasFile;
+    });
+
+    // Reset Handler
+    resetBtn.addEventListener('click', () => {
+      fileInput.value = '';
+      evaluateBtn.disabled = true;
+      resetBtn.disabled = true;
+      results.classList.remove('active');
+      metricsGrid.innerHTML = '';
+      resultsTable.innerHTML = '';
+      if (chartInstance) {
+        chartInstance.destroy();
+        chartInstance = null;
+      }
+    });
+
+    // Evaluate Handler
+    evaluateBtn.addEventListener('click', async () => {
+      if (!fileInput.files || fileInput.files.length === 0) {
+        alert('请选择文件');
+        return;
+      }
+
+      const knowledgeIds = knowledgeIdsInput.value.trim();
+      if (!knowledgeIds) {
+        alert('请输入知识库 ID');
+        knowledgeIdsInput.focus();
+        return;
+      }
+
+      evaluateBtn.disabled = true;
+      resetBtn.disabled = true;
+      loading.classList.add('active');
+      results.classList.remove('active');
+
+      try {
+        const formData = new FormData();
+        formData.append('file', fileInput.files[0]);
+        formData.append('knowledge_ids', knowledgeIds);
+        formData.append('embedding_id', embeddingIdSelect.value);
+        formData.append('model', modelSelect.value);
+        formData.append('temperature', parseFloat(temperatureInput.value));
+        formData.append('top_p', parseFloat(topPInput.value));
+        formData.append('max_tokens', parseInt(maxTokensInput.value));
+        formData.append('slice_count', parseInt(sliceCountInput.value));
+        formData.append('enable_think', enableThinkCheckbox.checked);
+
+        const response = await fetch('/api/evaluate', {
+          method: 'POST',
+          body: formData
+        });
+
+        if (!response.ok) {
+          const error = await response.json();
+          throw new Error(error.detail || '评估失败');
+        }
+
+        const data = await response.json();
+        renderResults(data);
+
+      } catch (error) {
+        alert('评估失败: ' + error.message);
+        console.error(error);
+      } finally {
+        loading.classList.remove('active');
+        evaluateBtn.disabled = false;
+        resetBtn.disabled = false;
+      }
+    });
+
+    // Render Results
+    function renderResults(data) {
+      results.classList.add('active');
+      successAlert.style.display = 'block';
+      totalCount.textContent = data.count;
+
+      // Render Metrics
+      metricsGrid.innerHTML = '';
+      const summary = data.summary || {};
+      
+      Object.keys(summary).forEach(key => {
+        const value = summary[key];
+        const percent = Math.round((value || 0) * 100);
+        
+        const card = document.createElement('div');
+        card.className = 'metric-card';
+        card.innerHTML = `
+          <div class="metric-name">${formatMetricName(key)}</div>
+          <div class="metric-value">${percent}%</div>
+          <div class="metric-bar">
+            <div class="metric-bar-fill" style="width: ${percent}%"></div>
+          </div>
+        `;
+        metricsGrid.appendChild(card);
+      });
+
+      // Render Chart
+      renderChart(summary);
+
+      // Render Table
+      renderTable(data.rows || []);
+    }
+
+    // Render Chart
+    function renderChart(summary) {
+      const ctx = document.getElementById('metricsChart');
+      const labels = Object.keys(summary).map(formatMetricName);
+      const values = Object.values(summary).map(v => Math.round((v || 0) * 100));
+
+      if (chartInstance) {
+        chartInstance.destroy();
+      }
+
+      chartInstance = new Chart(ctx, {
+        type: 'bar',
+        data: {
+          labels: labels,
+          datasets: [{
+            label: '评估分数 (%)',
+            data: values,
+            backgroundColor: [
+              'rgba(59, 130, 246, 0.8)',
+              'rgba(16, 185, 129, 0.8)',
+              'rgba(245, 158, 11, 0.8)',
+              'rgba(139, 92, 246, 0.8)',
+              'rgba(236, 72, 153, 0.8)'
+            ],
+            borderRadius: 8,
+          }]
+        },
+        options: {
+          responsive: true,
+          maintainAspectRatio: false,
+          plugins: {
+            legend: {
+              display: false
+            }
+          },
+          scales: {
+            y: {
+              beginAtZero: true,
+              max: 100,
+              ticks: {
+                callback: value => value + '%'
+              }
+            }
+          }
+        }
+      });
+    }
+
+    // Render Table
+    function renderTable(rows) {
+      resultsTable.innerHTML = '';
+      
+      rows.forEach((row, index) => {
+        const tr = document.createElement('tr');
+        tr.innerHTML = `
+          <td>${index + 1}</td>
+          <td style="max-width: 300px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;" title="${row.question}">${row.question}</td>
+          <td>${formatScore(row.faithfulness)}</td>
+          <td>${formatScore(row.answer_correctness)}</td>
+          <td>${formatScore(row.answer_relevancy)}</td>
+          <td>${formatScore(row.context_precision)}</td>
+          <td>${formatScore(row.context_recall)}</td>
+        `;
+        resultsTable.appendChild(tr);
+      });
+    }
+
+    // Format Score
+    function formatScore(value) {
+      if (value === null || value === undefined || isNaN(value)) {
+        return '<span class="score score-low">N/A</span>';
+      }
+      
+      const percent = Math.round(value * 100);
+      let className = 'score-low';
+      
+      if (percent >= 80) className = 'score-high';
+      else if (percent >= 60) className = 'score-medium';
+      
+      return `<span class="score ${className}">${percent}%</span>`;
+    }
+
+    // Format Metric Name
+    function formatMetricName(name) {
+      const names = {
+        'faithfulness': 'Faithfulness',
+        'answer_correctness': 'Answer Correctness',
+        'answer_relevancy': 'Answer Relevancy',
+        'context_precision': 'Context Precision',
+        'context_recall': 'Context Recall'
+      };
+      return names[name] || name;
+    }
+  </script>
+</body>
+</html>

+ 60 - 0
RAGAS/logs/rag.chat_message.log

@@ -0,0 +1,60 @@
+2025-11-05 14:21:47,574 - rag.chat_message - 90 - ERROR - 查询集合 2924812721300312064 时出错: 'str' object is not callable
+2025-11-05 14:21:51,185 - rag.chat_message - 90 - ERROR - 查询集合 2924812721300312064 时出错: 'str' object is not callable
+2025-11-05 14:21:54,498 - rag.chat_message - 90 - ERROR - 查询集合 2924812721300312064 时出错: 'str' object is not callable
+2025-11-05 14:22:03,349 - rag.chat_message - 90 - ERROR - 查询集合 2924812721300312064 时出错: 'str' object is not callable
+2025-11-05 14:22:07,262 - rag.chat_message - 90 - ERROR - 查询集合 2924812721300312064 时出错: 'str' object is not callable
+2025-11-05 14:25:17,598 - rag.chat_message - 90 - ERROR - 查询集合 2924812721300312064 时出错: <MilvusException: (code=100, message=collection not found[database=default][collection=2924812721300312064])>
+2025-11-05 14:25:21,411 - rag.chat_message - 90 - ERROR - 查询集合 2924812721300312064 时出错: <MilvusException: (code=100, message=collection not found[database=default][collection=2924812721300312064])>
+2025-11-05 14:25:24,481 - rag.chat_message - 90 - ERROR - 查询集合 2924812721300312064 时出错: <MilvusException: (code=100, message=collection not found[database=default][collection=2924812721300312064])>
+2025-11-05 14:25:33,255 - rag.chat_message - 90 - ERROR - 查询集合 2924812721300312064 时出错: <MilvusException: (code=100, message=collection not found[database=default][collection=2924812721300312064])>
+2025-11-05 14:25:37,210 - rag.chat_message - 90 - ERROR - 查询集合 2924812721300312064 时出错: <MilvusException: (code=100, message=collection not found[database=default][collection=2924812721300312064])>
+2025-11-05 14:27:51,849 - rag.chat_message - 90 - ERROR - 查询集合 460445058887009241 时出错: <MilvusException: (code=100, message=collection not found[database=default][collection=460445058887009241])>
+2025-11-05 14:27:55,289 - rag.chat_message - 90 - ERROR - 查询集合 460445058887009241 时出错: <MilvusException: (code=100, message=collection not found[database=default][collection=460445058887009241])>
+2025-11-05 14:27:58,202 - rag.chat_message - 90 - ERROR - 查询集合 460445058887009241 时出错: <MilvusException: (code=100, message=collection not found[database=default][collection=460445058887009241])>
+2025-11-05 14:28:16,112 - rag.chat_message - 90 - ERROR - 查询集合 460445058887009241 时出错: <MilvusException: (code=100, message=collection not found[database=default][collection=460445058887009241])>
+2025-11-05 14:28:19,245 - rag.chat_message - 90 - ERROR - 查询集合 460445058887009241 时出错: <MilvusException: (code=100, message=collection not found[database=default][collection=460445058887009241])>
+2025-11-05 14:30:39,329 - rag.chat_message - 44 - INFO - 重排序的得分:[0.31114158034324646, 0.3914356231689453, 0.30391940474510193, 0.3914356231689453, 0.3104212284088135]
+2025-11-05 14:30:44,215 - rag.chat_message - 44 - INFO - 重排序的得分:[0.36383748054504395, 0.24369946122169495, 0.325950562953949, 0.24173693358898163, 0.2967701256275177]
+2025-11-05 14:31:00,900 - rag.chat_message - 44 - INFO - 重排序的得分:[0.34087762236595154, 0.3828859329223633, 0.3828859329223633, 0.31241193413734436, 0.3828859329223633]
+2025-11-05 14:31:13,060 - rag.chat_message - 44 - INFO - 重排序的得分:[0.2926696538925171, 0.3319289982318878, 0.2578659951686859, 0.3268783986568451, 0.26637163758277893]
+2025-11-05 14:31:19,552 - rag.chat_message - 44 - INFO - 重排序的得分:[0.2435477375984192, 0.3618256449699402, 0.2435477375984192, 0.3860265910625458, 0.24512852728366852]
+2025-11-05 14:38:24,440 - rag.chat_message - 44 - INFO - 重排序的得分:[0.31114158034324646, 0.3914356231689453, 0.30391940474510193, 0.3914356231689453, 0.3104212284088135]
+2025-11-05 14:38:28,165 - rag.chat_message - 44 - INFO - 重排序的得分:[0.36383748054504395, 0.24369946122169495, 0.325950562953949, 0.24173693358898163, 0.2967701256275177]
+2025-11-05 14:38:34,105 - rag.chat_message - 44 - INFO - 重排序的得分:[0.34087762236595154, 0.3828859329223633, 0.3828859329223633, 0.31241193413734436, 0.3828859329223633]
+2025-11-05 14:38:41,101 - rag.chat_message - 44 - INFO - 重排序的得分:[0.2926696538925171, 0.3319289982318878, 0.2578659951686859, 0.3268783986568451, 0.26637163758277893]
+2025-11-05 14:38:46,134 - rag.chat_message - 44 - INFO - 重排序的得分:[0.2435477375984192, 0.3618256449699402, 0.2435477375984192, 0.3860265910625458, 0.24512852728366852]
+2025-11-05 14:44:56,501 - rag.chat_message - 44 - INFO - 重排序的得分:[0.31114158034324646, 0.3914356231689453, 0.30391940474510193, 0.3914356231689453, 0.3104212284088135]
+2025-11-05 14:45:13,310 - rag.chat_message - 44 - INFO - 重排序的得分:[0.36383748054504395, 0.24369946122169495, 0.325950562953949, 0.24173693358898163, 0.2967701256275177]
+2025-11-05 14:45:30,137 - rag.chat_message - 44 - INFO - 重排序的得分:[0.34087762236595154, 0.3828859329223633, 0.3828859329223633, 0.31241193413734436, 0.3828859329223633]
+2025-11-05 14:45:46,978 - rag.chat_message - 44 - INFO - 重排序的得分:[0.2926696538925171, 0.3319289982318878, 0.2578659951686859, 0.3268783986568451, 0.26637163758277893]
+2025-11-05 14:45:50,747 - rag.chat_message - 44 - INFO - 重排序的得分:[0.2435477375984192, 0.3618256449699402, 0.2435477375984192, 0.3860265910625458, 0.24512852728366852]
+2025-11-05 14:46:27,404 - rag.chat_message - 44 - INFO - 重排序的得分:[0.31114158034324646, 0.3914356231689453, 0.30391940474510193, 0.3914356231689453, 0.3104212284088135]
+2025-11-05 14:46:30,472 - rag.chat_message - 44 - INFO - 重排序的得分:[0.36383748054504395, 0.24369946122169495, 0.325950562953949, 0.24173693358898163, 0.2967701256275177]
+2025-11-05 14:46:47,193 - rag.chat_message - 44 - INFO - 重排序的得分:[0.34087762236595154, 0.3828859329223633, 0.3828859329223633, 0.31241193413734436, 0.3828859329223633]
+2025-11-05 14:46:48,419 - rag.chat_message - 44 - INFO - 重排序的得分:[0.2926696538925171, 0.3319289982318878, 0.2578659951686859, 0.3268783986568451, 0.26637163758277893]
+2025-11-05 14:46:50,394 - rag.chat_message - 44 - INFO - 重排序的得分:[0.2435477375984192, 0.3618256449699402, 0.2435477375984192, 0.3860265910625458, 0.24512852728366852]
+2025-11-05 14:58:00,387 - rag.chat_message - 44 - INFO - 重排序的得分:[0.31114158034324646, 0.3914356231689453, 0.30391940474510193, 0.3914356231689453, 0.3104212284088135]
+2025-11-05 14:58:03,961 - rag.chat_message - 44 - INFO - 重排序的得分:[0.36383748054504395, 0.24369946122169495, 0.325950562953949, 0.24173693358898163, 0.2967701256275177]
+2025-11-05 14:58:06,554 - rag.chat_message - 44 - INFO - 重排序的得分:[0.34087762236595154, 0.3828859329223633, 0.3828859329223633, 0.31241193413734436, 0.3828859329223633]
+2025-11-05 14:58:07,795 - rag.chat_message - 44 - INFO - 重排序的得分:[0.2926696538925171, 0.3319289982318878, 0.2578659951686859, 0.3268783986568451, 0.26637163758277893]
+2025-11-05 14:58:09,830 - rag.chat_message - 44 - INFO - 重排序的得分:[0.2435477375984192, 0.3618256449699402, 0.2435477375984192, 0.3860265910625458, 0.24512852728366852]
+2025-11-05 15:13:15,960 - rag.chat_message - 44 - INFO - 重排序的得分:[0.31114158034324646, 0.3914356231689453, 0.30391940474510193, 0.3914356231689453, 0.3104212284088135]
+2025-11-05 15:13:19,401 - rag.chat_message - 44 - INFO - 重排序的得分:[0.36383748054504395, 0.24369946122169495, 0.325950562953949, 0.24173693358898163, 0.2967701256275177]
+2025-11-05 15:13:20,908 - rag.chat_message - 44 - INFO - 重排序的得分:[0.34087762236595154, 0.3828859329223633, 0.3828859329223633, 0.31241193413734436, 0.3828859329223633]
+2025-11-05 15:13:23,451 - rag.chat_message - 44 - INFO - 重排序的得分:[0.2926696538925171, 0.3319289982318878, 0.2578659951686859, 0.3268783986568451, 0.26637163758277893]
+2025-11-05 15:13:25,461 - rag.chat_message - 44 - INFO - 重排序的得分:[0.2435477375984192, 0.3618256449699402, 0.2435477375984192, 0.3860265910625458, 0.24512852728366852]
+2025-11-05 15:20:01,554 - rag.chat_message - 44 - INFO - 重排序的得分:[0.31114158034324646, 0.3914356231689453, 0.30391940474510193, 0.3914356231689453, 0.3104212284088135]
+2025-11-05 15:20:04,924 - rag.chat_message - 44 - INFO - 重排序的得分:[0.36383748054504395, 0.24369946122169495, 0.325950562953949, 0.24173693358898163, 0.2967701256275177]
+2025-11-05 15:20:06,483 - rag.chat_message - 44 - INFO - 重排序的得分:[0.34087762236595154, 0.3828859329223633, 0.3828859329223633, 0.31241193413734436, 0.3828859329223633]
+2025-11-05 15:20:10,248 - rag.chat_message - 44 - INFO - 重排序的得分:[0.2926696538925171, 0.3319289982318878, 0.2578659951686859, 0.3268783986568451, 0.26637163758277893]
+2025-11-05 15:20:12,234 - rag.chat_message - 44 - INFO - 重排序的得分:[0.2435477375984192, 0.3618256449699402, 0.2435477375984192, 0.3860265910625458, 0.24512852728366852]
+2025-11-05 16:44:56,351 - rag.chat_message - 44 - INFO - 重排序的得分:[0.31114158034324646, 0.3914356231689453, 0.30391940474510193, 0.3914356231689453, 0.3104212284088135]
+2025-11-05 16:44:59,779 - rag.chat_message - 44 - INFO - 重排序的得分:[0.36383748054504395, 0.24369946122169495, 0.325950562953949, 0.24173693358898163, 0.2967701256275177]
+2025-11-05 16:45:02,325 - rag.chat_message - 44 - INFO - 重排序的得分:[0.34087762236595154, 0.3828859329223633, 0.3828859329223633, 0.31241193413734436, 0.3828859329223633]
+2025-11-05 16:45:03,610 - rag.chat_message - 44 - INFO - 重排序的得分:[0.2926696538925171, 0.3319289982318878, 0.2578659951686859, 0.3268783986568451, 0.26637163758277893]
+2025-11-05 16:45:06,453 - rag.chat_message - 44 - INFO - 重排序的得分:[0.2435477375984192, 0.3618256449699402, 0.2435477375984192, 0.3860265910625458, 0.24512852728366852]
+2025-11-05 16:51:40,855 - rag.chat_message - 44 - INFO - 重排序的得分:[0.31114158034324646, 0.3914356231689453, 0.30391940474510193, 0.3914356231689453, 0.3104212284088135]
+2025-11-05 16:51:59,044 - rag.chat_message - 44 - INFO - 重排序的得分:[0.36383748054504395, 0.24369946122169495, 0.325950562953949, 0.24173693358898163, 0.2967701256275177]
+2025-11-05 16:52:02,637 - rag.chat_message - 44 - INFO - 重排序的得分:[0.34087762236595154, 0.3828859329223633, 0.3828859329223633, 0.31241193413734436, 0.3828859329223633]
+2025-11-05 16:52:03,974 - rag.chat_message - 44 - INFO - 重排序的得分:[0.2926696538925171, 0.3319289982318878, 0.2578659951686859, 0.3268783986568451, 0.26637163758277893]
+2025-11-05 16:52:06,000 - rag.chat_message - 44 - INFO - 重排序的得分:[0.2435477375984192, 0.3618256449699402, 0.2435477375984192, 0.3860265910625458, 0.24512852728366852]

+ 1 - 0
RAGAS/logs/rag.db.log

@@ -0,0 +1 @@
+2025-11-06 10:41:41,359 - rag.db - 601 - INFO - MySQL 连接池初始化成功

+ 13 - 0
RAGAS/logs/rag.db.log.2025-11-05

@@ -0,0 +1,13 @@
+2025-11-05 14:21:46,867 - rag.db - 601 - INFO - MySQL 连接池初始化成功
+2025-11-05 14:25:16,394 - rag.db - 601 - INFO - MySQL 连接池初始化成功
+2025-11-05 14:27:50,663 - rag.db - 601 - INFO - MySQL 连接池初始化成功
+2025-11-05 14:30:38,061 - rag.db - 601 - INFO - MySQL 连接池初始化成功
+2025-11-05 14:38:23,228 - rag.db - 603 - ERROR - MySQL 连接池初始化失败: 2003: Can't connect to MySQL server on 'xia0miduo.gicp.net:3336' (Errno -3: Temporary failure in name resolution)
+2025-11-05 14:44:55,249 - rag.db - 601 - INFO - MySQL 连接池初始化成功
+2025-11-05 14:46:26,159 - rag.db - 601 - INFO - MySQL 连接池初始化成功
+2025-11-05 14:57:59,094 - rag.db - 601 - INFO - MySQL 连接池初始化成功
+2025-11-05 15:13:14,706 - rag.db - 601 - INFO - MySQL 连接池初始化成功
+2025-11-05 15:20:00,278 - rag.db - 601 - INFO - MySQL 连接池初始化成功
+2025-11-05 16:18:11,518 - rag.db - 601 - INFO - MySQL 连接池初始化成功
+2025-11-05 16:19:35,586 - rag.db - 601 - INFO - MySQL 连接池初始化成功
+2025-11-05 16:44:24,535 - rag.db - 601 - INFO - MySQL 连接池初始化成功

+ 7747 - 0
RAGAS/logs/rag.llm.log

@@ -0,0 +1,7747 @@
+2025-11-05 14:21:48,262 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role='assistant', tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:48,263 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='根据', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:48,264 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='历史', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:48,272 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='记录', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:48,288 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:48,306 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='电话', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:48,320 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:48,335 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='发明', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:48,351 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='者', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:48,366 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:48,382 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:48,397 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='亚', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:48,413 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='历', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:48,428 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='山', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:48,444 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='大', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:48,459 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='·', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:48,475 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='格', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:48,490 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='雷', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:48,505 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='厄', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:48,521 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='姆', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:48,536 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='·', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:48,552 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='贝尔', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:48,567 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:48,586 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='Alexander', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:48,598 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content=' Graham', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:48,614 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content=' Bell', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:48,629 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content=')', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:48,645 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:48,660 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='。\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:48,676 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='贝尔', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:48,692 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='在', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:48,711 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:48,734 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='8', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:48,741 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='7', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:48,762 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='6', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:48,786 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='年', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:48,790 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='3', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:48,805 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='月', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:48,814 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:48,837 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:48,886 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='日成功发明', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:48,891 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='并', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:48,930 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='申请了', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:48,949 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='电话', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:48,956 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='专利', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:48,975 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:48,998 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='他', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:49,000 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='与', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:49,030 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='他的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:49,037 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='助手', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:49,057 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='托', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:49,065 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='马', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:49,079 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='斯', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:49,097 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='·', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:49,108 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='沃', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:49,125 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='森', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:49,139 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:49,158 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='Thomas', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:49,173 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content=' Watson', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:49,188 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content=')', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:49,204 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='一起', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:49,220 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='进行了', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:49,230 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='首次', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:49,247 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='成功的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:49,262 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='电话', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:49,277 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='通话', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:49,293 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:49,308 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='贝尔', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:49,327 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:49,342 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='发明', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:49,355 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='基于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:49,373 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='他对', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:49,389 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='声音', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:49,404 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='传输', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:49,420 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='的研究', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:49,435 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:49,451 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='他', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:49,462 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='设计', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:49,478 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:49,493 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='电话', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:49,509 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='系统', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:49,524 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='能够', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:49,539 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='将', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:49,555 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='声音', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:49,571 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='振动', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:49,586 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='转换', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:49,601 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='为', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:49,617 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='电信', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:49,632 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='号', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:49,648 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='进行', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:49,663 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='远', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:49,679 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='距离', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:49,696 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='传输', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:49,712 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='。\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:49,728 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='虽然', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:49,745 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='当时', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:49,762 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='也有', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:49,778 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='其他', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:49,794 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='发明', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:49,811 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='家', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:49,827 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='如', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:49,844 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='伊', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:49,860 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='莱', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:49,876 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='沙', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:49,893 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='·', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:49,909 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='格', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:49,926 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='雷', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:49,942 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:49,958 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='E', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:49,975 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='lish', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:49,991 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='a', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:50,008 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content=' Gray', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:50,024 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content=')', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:50,041 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='和', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:50,057 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='安东尼', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:50,074 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='奥', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:50,090 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='·', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:50,106 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='梅', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:50,123 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='乌', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:50,139 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='奇', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:50,155 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:50,172 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='Ant', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:50,188 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='onio', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:50,205 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content=' Me', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:50,221 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='ucci', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:50,238 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content=')', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:50,254 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='等人', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:50,270 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='也在', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:50,287 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='研究', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:50,303 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='类似', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:50,320 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='的技术', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:50,336 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:50,352 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='但', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:50,369 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='贝尔', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:50,385 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='被认为是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:50,402 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='第一个', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:50,418 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='获得', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:50,435 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='电话', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:50,451 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='专利', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:50,472 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='并', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:50,484 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='成功', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:50,501 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='实现', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:50,517 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='商业化', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:50,533 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='应用', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:50,550 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='的人', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:50,566 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:50,583 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='因此', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:50,599 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:50,615 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='贝尔', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:50,632 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='被', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:50,649 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='广泛', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:50,665 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='认为', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:50,681 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:50,698 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='电话', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:50,714 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:50,730 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='发明', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:50,747 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='者', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:50,763 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='。\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:50,780 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='贝尔', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:50,796 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:50,812 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='这项', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:50,829 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='发明', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:50,845 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='彻底', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:50,862 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='改变了', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:50,878 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='人类', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:50,894 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:50,911 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='通信', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:50,927 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='方式', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:50,944 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:50,961 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='为', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:50,977 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='现代', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:50,993 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='电信', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:51,009 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='技术', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:51,026 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='的发展', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:51,042 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='奠定了', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:51,058 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='基础', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:51,075 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:51,093 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2b9cc7ab372247b98d88a6aa79a60315', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason='stop', index=0, logprobs=None, stop_reason=None)], created=1762323708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:51,762 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role='assistant', tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:51,764 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='根据', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:51,779 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='您', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:51,795 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='提供的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:51,810 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='知识', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:51,826 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='内容', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:51,841 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:51,860 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='我', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:51,872 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='无法', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:51,888 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='直接', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:51,903 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='回答', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:51,919 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='"', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:51,934 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='地球上', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:51,949 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='最大的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:51,964 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='哺乳', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:51,980 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='动物', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:51,995 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='是什么', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:52,011 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='"', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:52,026 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='这个问题', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:52,041 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:52,057 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='因为', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:52,072 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='您', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:52,088 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='给出', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:52,103 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='的知识', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:52,118 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='内容', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:52,134 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='中', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:52,150 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='没有', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:52,165 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='包含', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:52,180 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='关于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:52,196 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='地球', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:52,211 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='哺乳', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:52,226 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='动物', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:52,242 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='大小', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:52,258 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='的信息', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:52,273 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='。\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:52,288 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='不过', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:52,304 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:52,319 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='我可以', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:52,335 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='基于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:52,351 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='通用', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:52,366 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='知识', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:52,381 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='来', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:52,396 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='回答', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:52,412 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='这个问题', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:52,427 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content=':\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:52,443 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:52,459 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='地球上', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:52,474 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='最大的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:52,490 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='哺乳', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:52,505 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='动物', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:52,521 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:52,537 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='蓝', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:52,552 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='鲸', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:52,567 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:52,583 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='。\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:52,598 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='蓝', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:52,614 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='鲸', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:52,629 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:52,644 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='目前已', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:52,660 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='知', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:52,675 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:52,691 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='地球上', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:52,706 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='最大的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:52,722 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='动物', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:52,737 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:52,753 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='也是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:52,768 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='最大的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:52,784 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='哺乳', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:52,799 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='动物', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:52,815 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:52,830 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='成', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:52,845 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='年', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:52,861 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='蓝', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:52,876 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='鲸', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:52,892 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:52,907 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='体', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:52,923 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='长', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:52,938 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='可达', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:52,953 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='3', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:52,969 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:52,984 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='米', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:53,000 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:53,015 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='约', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:53,030 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:53,046 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:53,061 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:53,076 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='英', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:53,092 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='尺', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:53,107 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='),', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:53,122 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='体重', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:53,138 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='可', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:53,153 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='达到', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:53,169 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='2', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:53,185 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:53,202 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:53,218 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='吨', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:53,234 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='以上', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:53,251 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:53,267 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='蓝', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:53,284 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='鲸', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:53,300 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='不仅', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:53,317 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='在', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:53,333 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='体型', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:53,350 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='上', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:53,366 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='巨大', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:53,383 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content=',在', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:53,399 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='声音', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:53,416 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='传播', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:53,432 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='方面', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:53,449 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='也很', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:53,465 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='出色', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:53,481 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:53,498 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='它们', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:53,514 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:53,531 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='叫声', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:53,547 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='可以在', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:53,564 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='海洋', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:53,580 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='中', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:53,597 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='传播', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:53,613 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='数百', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:53,629 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='公里', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:53,646 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='。\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:53,663 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='需要注意', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:53,679 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='的是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:53,695 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:53,712 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='虽然', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:53,729 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='蓝', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:53,745 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='鲸', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:53,761 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:53,778 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='现存', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:53,794 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='最大的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:53,811 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='哺乳', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:53,827 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='动物', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:53,844 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:53,860 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='但', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:53,877 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='已', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:53,893 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='灭', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:53,910 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='绝', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:53,926 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:53,943 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='某些', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:53,959 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='史', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:53,976 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='前', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:53,993 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='哺乳', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:54,009 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='动物', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:54,025 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='可能', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:54,042 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='更大', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:54,059 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:54,075 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='比如', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:54,091 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='一些', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:54,108 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='恐龙', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:54,124 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='时代的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:54,141 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='巨型', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:54,157 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='哺乳', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:54,174 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='动物', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:54,191 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:54,208 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='但在', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:54,224 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='现代', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:54,242 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='生物', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:54,259 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='中', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:54,276 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:54,292 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='蓝', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:54,309 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='鲸', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:54,326 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='无疑是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:54,342 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='最大的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:54,359 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='哺乳', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:54,376 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='动物', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:54,392 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:54,409 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-315b1a71d1f64abb99fbb1fa29c1f2a5', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason='stop', index=0, logprobs=None, stop_reason=None)], created=1762323711, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:55,091 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role='assistant', tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:55,093 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='Python', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:55,107 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='中', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:55,122 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='列表', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:55,138 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='和', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:55,154 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='元', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:55,169 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='组', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:55,184 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='的主要', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:55,200 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='区别', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:55,215 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='如下', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:55,231 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=':\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:55,246 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='##', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:55,261 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:55,277 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:55,292 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='.', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:55,307 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:55,323 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='可', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:55,338 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='变', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:55,354 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='性', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:55,369 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='**\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:55,384 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:55,399 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:55,415 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='列表', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:55,431 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:55,446 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='List', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:55,461 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=')', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:55,477 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:55,492 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=':', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:55,507 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='可', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:55,523 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='变', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:55,538 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:55,554 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='mutable', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:55,570 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='),', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:55,585 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='创建', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:55,600 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='后', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:55,616 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='可以', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:55,631 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='修改', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:55,646 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='、', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:55,662 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='添加', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:55,677 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='、', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:55,693 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='删除', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:55,708 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='元素', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:55,724 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:55,739 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:55,754 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:55,773 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='元', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:55,786 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='组', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:55,801 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:55,816 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='Tuple', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:55,832 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=')', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:55,848 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:55,864 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=':', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:55,878 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='不可', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:55,894 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='变', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:55,909 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:55,925 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='immutable', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:55,940 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='),', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:55,956 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='创建', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:55,971 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='后', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:55,987 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='不能', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:56,002 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='修改', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:56,017 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:56,033 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='```', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:56,048 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='python', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:56,064 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:56,079 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='#', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:56,094 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:56,109 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' 列', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:56,125 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='表', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:56,140 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='示', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:56,156 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='例', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:56,171 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:56,187 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='my', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:56,202 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='_list', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:56,217 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' =', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:56,233 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' [', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:56,248 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:56,264 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:56,279 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:56,295 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='2', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:56,311 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:56,326 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:56,342 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='3', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:56,357 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=']\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:56,372 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='my', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:56,388 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='_list', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:56,403 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='[', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:56,419 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:56,434 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=']', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:56,450 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' =', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:56,467 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:56,483 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:56,500 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:56,516 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:56,532 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' #', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:56,549 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:56,565 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' 可', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:56,582 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='以', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:56,598 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='修改', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:56,615 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:56,631 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='my', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:56,648 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='_list', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:56,665 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='.append', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:56,681 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:56,698 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='4', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:56,718 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=')', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:56,732 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:56,748 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' #', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:56,764 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:56,781 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' 可', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:56,798 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='以', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:56,814 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='添加', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:56,831 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='元素', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:56,847 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:56,864 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='#', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:56,881 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:56,897 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' 元', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:56,915 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='组', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:56,932 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='示', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:56,948 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='例', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:56,965 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:56,981 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='my', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:56,998 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='_tuple', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:57,015 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' =', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:57,031 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' (', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:57,048 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:57,065 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:57,081 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:57,098 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='2', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:57,114 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:57,131 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:57,147 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='3', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:57,163 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=')\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:57,180 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='#', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:57,196 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' my', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:57,213 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='_tuple', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:57,230 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='[', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:57,246 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:57,263 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=']', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:57,281 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' =', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:57,297 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:57,314 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:57,331 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:57,347 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:57,364 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' #', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:57,380 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:57,397 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' 这', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:57,413 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='会', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:57,430 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='报', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:57,447 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='错', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:57,463 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='!', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:57,480 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:57,496 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='``', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:57,512 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='`\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:57,529 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='##', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:57,546 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:57,562 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='2', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:57,578 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='.', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:57,595 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:57,611 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='语法', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:57,628 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='表示', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:57,645 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='**\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:57,662 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:57,678 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:57,695 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='列表', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:57,711 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:57,728 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=':', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:57,744 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='使用', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:57,761 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='方', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:57,777 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='括', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:57,794 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='号', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:57,810 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' `', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:57,827 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='[]', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:57,843 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='`\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:57,860 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:57,876 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:57,892 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='元', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:57,909 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='组', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:57,925 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:57,942 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=':', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:57,958 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='使用', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:57,975 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='圆', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:57,991 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='括', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:58,008 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='号', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:58,024 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' `', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:58,041 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='()`', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:58,058 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' 或', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:58,074 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='者', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:58,091 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='不', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:58,108 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='使用', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:58,124 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='括', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:58,140 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='号', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:58,157 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:58,173 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='```', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:58,190 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='python', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:58,206 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:58,222 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='my', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:58,239 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='_list', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:58,255 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' =', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:58,272 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' [', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:58,288 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:58,305 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:58,321 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:58,338 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='2', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:58,355 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:58,371 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:58,387 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='3', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:58,404 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=']\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:58,420 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='my', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:58,437 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='_tuple', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:58,453 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' =', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:58,470 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' (', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:58,486 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:58,503 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:58,520 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:58,536 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='2', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:58,553 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:58,569 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:58,585 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='3', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:58,602 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=')\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:58,619 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='another', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:58,635 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='_tuple', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:58,652 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' =', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:58,669 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:58,685 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:58,701 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:58,718 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:58,735 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='2', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:58,751 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:58,768 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:58,784 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='3', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:58,801 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:58,818 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' #', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:58,834 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' 不', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:58,850 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='需要', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:58,867 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='括', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:58,883 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='号', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:58,900 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:58,916 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='``', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:58,933 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='`\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:58,952 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='##', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:58,965 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:58,982 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='3', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:59,001 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='.', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:59,014 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:59,031 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='性能', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:59,047 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='差异', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:59,064 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='**\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:59,080 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:59,102 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:59,114 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='列表', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:59,130 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:59,147 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=':', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:59,163 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='由于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:59,179 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='可', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:59,196 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='变', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:59,212 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='性', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:59,229 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:59,245 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='内存', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:59,262 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='分配', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:59,278 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='和', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:59,295 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='操作', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:59,311 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='相对', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:59,328 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='复杂', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:59,344 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:59,361 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='性能', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:59,377 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='稍', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:59,395 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='低', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:59,411 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:59,427 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:59,444 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:59,461 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='元', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:59,477 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='组', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:59,493 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:59,510 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=':', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:59,526 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='由于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:59,542 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='不可', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:59,559 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='变', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:59,575 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='性', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:59,592 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:59,608 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='内存', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:59,624 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='占用', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:59,642 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='更', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:59,658 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='少', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:59,674 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:59,691 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='访问', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:59,707 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='速度', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:59,724 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='更快', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:59,740 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:59,756 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='##', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:59,773 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:59,790 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='4', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:59,806 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='.', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:59,823 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:59,839 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='方法', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:59,856 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='支持', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:59,872 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='**\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:59,889 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:59,905 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:59,922 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='列表', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:59,938 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:59,954 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=':', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:59,972 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='提供', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:21:59,988 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='丰富的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:00,004 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='修改', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:00,020 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='方法', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:00,037 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='如', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:00,053 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' `', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:00,070 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='append', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:00,086 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='()', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:00,103 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='`,', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:00,120 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' `', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:00,136 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='remove', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:00,152 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='()', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:00,169 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='`,', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:00,185 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' `', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:00,202 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='sort', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:00,218 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='()`', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:00,235 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:00,251 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:00,268 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' 等', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:00,284 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:00,301 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:00,317 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:00,334 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='元', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:00,350 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='组', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:00,367 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:00,384 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=':', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:00,400 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='只', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:00,416 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='支持', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:00,433 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='查询', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:00,449 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='方法', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:00,466 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='如', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:00,482 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' `', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:00,498 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='count', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:00,515 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='()', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:00,531 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='`,', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:00,548 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' `', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:00,565 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='index', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:00,581 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='()`', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:00,598 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:00,614 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='不', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:00,631 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='支持', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:00,647 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='修改', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:00,664 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='方法', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:00,681 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:00,697 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='```', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:00,713 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='python', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:00,730 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:00,746 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='my', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:00,763 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='_list', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:00,779 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' =', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:00,796 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' [', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:00,812 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:00,829 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:00,845 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:00,862 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='2', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:00,879 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:00,895 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:00,911 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='3', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:00,928 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=']\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:00,945 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='my', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:00,962 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='_list', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:00,978 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='.append', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:00,995 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:01,011 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='4', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:01,027 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=')', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:01,044 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:01,060 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' #', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:01,077 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:01,093 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='有效', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:01,109 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:01,126 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='my', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:01,143 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='_tuple', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:01,159 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' =', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:01,176 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' (', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:01,192 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:01,209 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:01,225 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:01,242 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='2', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:01,258 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:01,275 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:01,291 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='3', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:01,308 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=')\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:01,324 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='#', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:01,341 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' my', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:01,358 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='_tuple', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:01,374 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='.append', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:01,390 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:01,406 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='4', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:01,423 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=')', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:01,440 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:01,457 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' #', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:01,474 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:01,493 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='无效', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:01,510 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:01,527 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='会', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:01,544 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='报', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:01,560 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='错', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:01,577 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:01,593 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='``', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:01,610 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='`\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:01,627 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='##', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:01,643 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:01,660 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='5', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:01,676 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='.', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:01,693 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:01,710 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='使用', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:01,727 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='场景', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:01,743 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='**\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:01,760 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:01,777 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:01,793 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='列表', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:01,810 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:01,826 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=':', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:01,843 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='适合', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:01,859 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='需要', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:01,876 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='频繁', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:01,892 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='修改', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:01,909 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='的数据', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:01,925 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='集合', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:01,942 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:01,959 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:01,976 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:01,992 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='元', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:02,008 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='组', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:02,025 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:02,042 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=':', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:02,058 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='适合', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:02,075 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='存储', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:02,091 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='不变', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:02,107 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='的数据', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:02,124 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:02,141 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='如', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:02,157 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='坐标', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:02,174 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='点', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:02,190 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='、', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:02,207 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='数据库', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:02,223 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='记录', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:02,240 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='等', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:02,257 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:02,273 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='##', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:02,291 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:02,306 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='6', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:02,323 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='.', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:02,341 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:02,357 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='安全性', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:02,374 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='**\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:02,390 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:02,407 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:02,424 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='元', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:02,440 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='组', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:02,457 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:02,474 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=':', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:02,491 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='由于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:02,507 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='不可', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:02,524 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='变', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:02,540 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='性', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:02,557 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=',在', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:02,574 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='多', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:02,591 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='线', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:02,608 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='程', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:02,624 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='环境中', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:02,641 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='更', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:02,657 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='安全', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:02,674 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:02,690 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:02,708 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:02,724 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='列表', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:02,741 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:02,757 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=':', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:02,774 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='在', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:02,791 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='多', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:02,807 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='线', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:02,824 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='程', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:02,841 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='环境中', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:02,858 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='需要', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:02,874 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='额外', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:02,891 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:02,908 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='同步', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:02,924 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='机制', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:02,941 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:02,958 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='总的来说', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:02,974 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:02,991 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='选择', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:03,008 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='列表', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:03,024 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='还是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:03,041 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='元', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:03,057 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='组', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:03,073 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='主要', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:03,090 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='取决于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:03,106 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='数据', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:03,124 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='是否', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:03,139 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='需要', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:03,156 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='修改', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:03,172 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='以及', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:03,189 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='对', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:03,205 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='性能', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:03,222 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='的要求', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:03,238 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:03,256 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c0450f4bf91e4034b91ca5f23e256d20', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason='stop', index=0, logprobs=None, stop_reason=None)], created=1762323715, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:03,970 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role='assistant', tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:03,971 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='根据', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:03,984 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='历史', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:04,000 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='学', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:04,016 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='界的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:04,031 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='普遍', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:04,047 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='认知', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:04,062 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:04,077 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='第一次', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:04,093 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='工业', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:04,108 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='革命', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:04,124 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='开始', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:04,139 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:04,156 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:04,170 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:04,185 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='8', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:04,201 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='世纪', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:04,216 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='中', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:04,231 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='后期', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:04,247 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:04,263 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:04,278 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='大约', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:04,293 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='在', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:04,309 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:04,324 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:04,340 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='7', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:04,356 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='6', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:04,372 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:04,387 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='年代', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:04,402 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:04,418 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='左右', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:04,433 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='。\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:04,449 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='具体', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:04,464 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='来说', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:04,480 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content=':\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:04,496 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:04,512 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='开始', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:04,526 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='时间', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:04,542 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:04,557 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content=':', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:04,573 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:04,589 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='8', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:04,604 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='世纪', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:04,619 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='6', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:04,634 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:04,650 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='年代', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:04,665 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:04,681 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='约', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:04,696 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:04,712 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='7', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:04,728 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='6', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:04,744 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:04,759 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='年', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:04,774 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='左右', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:04,790 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content=')\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:04,806 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:04,821 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='结束', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:04,836 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='时间', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:04,852 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:04,867 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content=':', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:04,883 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:04,898 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='9', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:04,914 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='世纪', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:04,929 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='中期', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:04,945 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:04,960 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='约', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:04,976 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:04,991 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='8', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:05,010 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='4', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:05,022 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:05,037 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='年', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:05,053 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='左右', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:05,069 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content=')\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:05,084 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:05,103 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='主要', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:05,115 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='标志', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:05,131 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:05,146 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content=':\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:05,162 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:05,177 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:05,193 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:05,208 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content=' 纺', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:05,224 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='织', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:05,240 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='业', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:05,255 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='的技术', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:05,271 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='革新', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:05,286 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:05,302 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='特别是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:05,317 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='珍', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:05,333 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='妮', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:05,349 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='纺', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:05,364 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='纱', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:05,381 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='机', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:05,397 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:05,414 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='发明', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:05,431 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:05,448 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:05,464 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='7', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:05,482 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='6', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:05,499 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='9', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:05,515 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='年', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:05,532 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content=')\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:05,548 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:05,566 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:05,581 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:05,599 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content=' 蒸', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:05,616 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='汽', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:05,633 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='机', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:05,650 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:05,667 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='改进', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:05,684 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='和', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:05,700 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='广泛应用', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:05,717 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:05,733 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='瓦', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:05,750 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='特', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:05,766 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='改良', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:05,783 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='蒸汽', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:05,799 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='机', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:05,816 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:05,832 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:05,849 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='7', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:05,866 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='8', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:05,883 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:05,899 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='年', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:05,917 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content=')\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:05,932 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:05,949 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:05,966 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='机械化', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:05,982 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='生产', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:05,999 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='方式', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:06,015 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:06,031 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='兴起', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:06,048 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:06,064 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:06,081 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='发', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:06,097 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='源', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:06,114 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='地', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:06,131 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:06,147 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content=':', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:06,164 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='英国', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:06,180 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:06,197 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:06,214 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='初期', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:06,230 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='领域', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:06,246 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:06,263 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content=':', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:06,282 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='纺织', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:06,296 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='业', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:06,312 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='、', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:06,329 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='冶金', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:06,345 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='业', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:06,362 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='、', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:06,379 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='煤炭', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:06,395 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='业', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:06,411 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='等', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:06,428 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:06,444 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='第一次', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:06,461 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='工业', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:06,479 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='革命', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:06,494 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='标志着', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:06,510 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='人类', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:06,527 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='从', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:06,543 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='手工', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:06,560 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='劳动', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:06,576 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='向', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:06,593 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='机器', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:06,610 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='生产的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:06,626 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='重大', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:06,643 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='转变', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:06,660 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:06,676 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='为', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:06,696 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='后来', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:06,713 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:06,729 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='第二次', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:06,746 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='工业', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:06,759 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='革命', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:06,775 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='奠定了', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:06,792 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='基础', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:06,808 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:06,825 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='这场', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:06,841 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='革命', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:06,858 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='不仅', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:06,874 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='改变了', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:06,892 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='生产', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:06,907 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='方式', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:06,924 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:06,940 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='也', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:06,957 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='深刻', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:06,973 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='影响', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:06,990 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='了', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:07,007 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='社会', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:07,023 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='结构', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:07,039 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='、', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:07,056 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='城市', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:07,075 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='化进程', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:07,088 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='和', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:07,104 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='人们', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:07,120 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='的生活', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:07,136 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='方式', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:07,152 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:07,168 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b64f6e8cb9846cd889551ce8f491500', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason='stop', index=0, logprobs=None, stop_reason=None)], created=1762323723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:07,890 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role='assistant', tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:07,892 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='水', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:07,907 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:07,923 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='化学', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:07,938 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='式', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:07,953 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:07,967 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:07,982 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='H', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:07,997 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='₂', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:08,013 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='O', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:08,027 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:08,042 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='。\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:08,057 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='详细', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:08,072 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='解释', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:08,087 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content=':\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:08,101 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:08,116 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:08,131 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:08,147 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content=' 水', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:08,161 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='分子', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:08,176 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='由', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:08,191 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='2', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:08,206 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='个', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:08,221 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='氢', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:08,236 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='原子', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:08,251 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:08,266 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='H', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:08,281 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content=')', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:08,296 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='和', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:08,311 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:08,326 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='个', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:08,341 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='氧', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:08,356 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='原子', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:08,371 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:08,386 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='O', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:08,402 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content=')', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:08,416 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='组成', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:08,431 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:08,446 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:08,461 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:08,476 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content=' 化', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:08,491 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='学', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:08,506 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='式', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:08,521 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='中的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:08,537 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='下', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:08,551 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='标', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:08,566 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='数字', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:08,581 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='表示', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:08,596 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='原子', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:08,611 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='的数量', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:08,626 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content=':', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:08,642 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='H', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:08,656 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='₂', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:08,671 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='表示', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:08,689 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='有', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:08,701 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='2', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:08,716 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='个', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:08,731 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='氢', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:08,746 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='原子', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:08,761 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:08,776 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='O', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:08,790 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='表示', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:08,805 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='有', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:08,820 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:08,835 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='个', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:08,850 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='氧', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:08,865 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='原子', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:08,880 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:08,896 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:08,910 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:08,924 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:08,940 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content=' 水', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:08,954 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='分子', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:08,969 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='中', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:08,984 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='氢', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:08,999 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='原子', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:09,014 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='和', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:09,029 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='氧', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:09,044 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='原子', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:09,059 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='通过', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:09,074 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='共', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:09,089 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='价', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:09,104 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='键', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:09,120 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='结合', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:09,136 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:09,150 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:09,165 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:09,179 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content=' 这', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:09,195 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='个', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:09,210 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='化学', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:09,225 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='式', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:09,240 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='准确', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:09,255 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='地', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:09,271 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='描述', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:09,287 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='了', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:09,302 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='水', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:09,318 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='分子', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:09,335 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='的基本', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:09,350 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='组成', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:09,366 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='结构', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:09,382 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:09,398 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='需要注意', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:09,414 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='的是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:09,430 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:09,446 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='虽然', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:09,462 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='我们', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:09,478 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='通常', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:09,494 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='说', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:09,510 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='"', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:09,526 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='水', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:09,542 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='"', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:09,558 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:09,573 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='但在', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:09,589 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='化学', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:09,606 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='上', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:09,621 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:09,637 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='H', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:09,652 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='₂', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:09,668 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='O', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:09,684 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:09,700 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='水', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:09,716 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='分子', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:09,733 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:09,748 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='准确', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:09,764 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='化学', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:09,780 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='表示', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:09,796 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:22:09,812 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b768ddbf9a024684a6211d331586e689', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason='stop', index=0, logprobs=None, stop_reason=None)], created=1762323727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:18,294 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role='assistant', tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:18,295 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='根据', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:18,296 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='历史', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:18,305 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='记录', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:18,318 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:18,334 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='电话', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:18,349 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:18,367 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='发明', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:18,383 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='者', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:18,398 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:18,415 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:18,430 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='亚', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:18,445 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='历', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:18,457 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='山', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:18,471 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='大', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:18,486 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='·', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:18,501 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='格', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:18,516 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='雷', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:18,531 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='厄', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:18,546 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='姆', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:18,561 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='·', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:18,576 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='贝尔', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:18,591 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:18,606 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='Alexander', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:18,621 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content=' Graham', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:18,636 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content=' Bell', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:18,650 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content=')', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:18,669 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:18,680 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='。\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:18,699 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='贝尔', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:18,712 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='在', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:18,725 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:18,740 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='8', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:18,755 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='7', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:18,770 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='6', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:18,785 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='年', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:18,800 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='3', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:18,815 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='月', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:18,829 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:18,843 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:18,859 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='日', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:18,874 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='成功', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:18,888 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='发明', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:18,902 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='并', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:18,917 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='申请', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:18,933 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='了', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:18,948 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='电话', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:18,966 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='专利', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:18,980 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:18,991 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='他', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:19,009 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='与', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:19,024 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='他的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:19,039 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='助手', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:19,050 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='托', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:19,069 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='马', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:19,080 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='斯', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:19,094 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='·', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:19,109 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='沃', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:19,124 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='森', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:19,139 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:19,154 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='Thomas', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:19,169 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content=' Watson', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:19,184 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content=')', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:19,199 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='一起', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:19,214 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='进行了', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:19,229 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='首次', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:19,243 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='成功的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:19,258 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='电话', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:19,277 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='通话', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:19,288 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:19,307 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='贝尔', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:19,317 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:19,337 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='发明', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:19,347 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='基于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:19,367 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='他对', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:19,377 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='声音', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:19,396 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='传输', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:19,408 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='的研究', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:19,426 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:19,441 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='他', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:19,456 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='最初', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:19,471 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='是为了', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:19,483 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='帮助', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:19,498 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='聋', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:19,513 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='哑', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:19,528 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='人', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:19,542 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='而', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:19,556 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='研究', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:19,571 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='声', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:19,589 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='学', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:19,603 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='和', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:19,619 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='语音', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:19,630 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='传输', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:19,646 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='技术', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:19,660 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='。\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:19,678 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='需要注意', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:19,689 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='的是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:19,706 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:19,720 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='关于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:19,736 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='电话', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:19,755 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='发明', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:19,771 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:19,784 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='争议', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:19,803 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='一直', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:19,814 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='存在', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:19,834 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:19,847 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='虽然', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:19,859 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='贝尔', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:19,874 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='获得了', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:19,888 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='第一个', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:19,904 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='电话', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:19,921 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='专利', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:19,936 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:19,951 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='但', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:19,967 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='也有', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:19,983 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='其他', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:19,999 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='发明', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:20,014 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='家', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:20,030 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='如', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:20,042 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='伊', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:20,056 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='莱', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:20,075 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='沙', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:20,090 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='·', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:20,106 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='格', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:20,122 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='雷', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:20,137 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:20,153 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='E', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:20,169 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='lish', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:20,182 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='a', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:20,196 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content=' Gray', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:20,210 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content=')', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:20,225 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='和', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:20,240 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='安东尼', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:20,255 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='奥', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:20,271 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='·', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:20,287 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='梅', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:20,303 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='乌', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:20,319 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='奇', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:20,336 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:20,350 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='Ant', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:20,367 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='onio', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:20,385 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content=' Me', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:20,402 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='ucci', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:20,416 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content=')', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:20,433 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='也', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:20,449 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='独立', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:20,462 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='地', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:20,480 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='进行了', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:20,496 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='类似', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:20,508 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='的研究', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:20,525 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='工作', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:20,542 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:20,559 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='不过', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:20,570 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:20,588 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='由于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:20,603 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='贝尔', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:20,619 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='率先', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:20,635 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='提交', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:20,651 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='了', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:20,667 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='专利', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:20,681 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='申请', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:20,701 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='并', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:20,713 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='成功', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:20,729 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='进行了', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:20,745 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='实用', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:20,761 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='化的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:20,777 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='演示', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:20,793 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:20,808 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='因此', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:20,825 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='他', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:20,840 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='被', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:20,856 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='公', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:20,872 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='认为', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:20,888 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='电话', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:20,903 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:20,919 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='发明', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:20,935 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='者', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:20,951 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='。\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:20,967 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='贝尔', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:20,984 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:20,998 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='这项', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:21,014 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='发明', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:21,030 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='彻底', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:21,046 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='改变了', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:21,062 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='人类', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:21,078 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:21,094 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='通信', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:21,109 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='方式', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:21,125 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:21,141 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='为', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:21,157 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='现代', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:21,173 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='电信', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:21,189 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='事业', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:21,208 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='奠定了', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:21,224 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='基础', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:21,240 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:21,257 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-2cf469b15e184a5bb542fd9db4c97be5', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason='stop', index=0, logprobs=None, stop_reason=None)], created=1762323918, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:21,994 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role='assistant', tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:21,996 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='根据', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:22,009 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='您', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:22,024 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='提供的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:22,039 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='知识', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:22,054 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='内容', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:22,069 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:22,083 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='我', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:22,102 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='无法', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:22,113 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='直接', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:22,127 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='回答', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:22,142 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='"', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:22,156 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='地球上', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:22,172 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='最大的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:22,187 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='哺乳', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:22,201 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='动物', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:22,216 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='是什么', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:22,231 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='"', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:22,246 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='这个问题', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:22,261 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:22,276 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='因为', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:22,291 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='您', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:22,306 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='给出', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:22,320 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='的知识', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:22,341 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='内容', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:22,351 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='中', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:22,365 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='没有', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:22,380 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='包含', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:22,395 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='关于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:22,412 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='地球', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:22,429 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='哺乳', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:22,443 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='动物', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:22,459 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='大小', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:22,474 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='的信息', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:22,488 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='。\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:22,503 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='不过', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:22,518 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:22,533 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='我可以', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:22,548 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='基于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:22,563 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='我的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:22,578 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='通用', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:22,593 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='知识', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:22,608 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='来', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:22,622 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='回答', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:22,637 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='这个问题', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:22,652 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content=':\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:22,670 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='地球上', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:22,681 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='最大的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:22,700 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='哺乳', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:22,713 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='动物', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:22,726 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:22,741 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:22,759 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='蓝', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:22,770 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='鲸', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:22,785 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:22,801 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='。\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:22,815 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='蓝', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:22,830 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='鲸', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:22,845 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='的一些', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:22,859 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='详细', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:22,874 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='信息', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:22,888 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content=':\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:22,903 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:22,918 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:22,933 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='体型', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:22,948 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:22,963 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content=':', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:22,978 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='成', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:22,993 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='年', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:23,007 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='蓝', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:23,021 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='鲸', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:23,037 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='长度', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:23,051 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='可达', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:23,066 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='3', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:23,081 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:23,095 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='米', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:23,110 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:23,125 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='约', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:23,140 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:23,155 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:23,170 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:23,186 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='英', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:23,199 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='尺', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:23,214 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='),', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:23,229 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='重量', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:23,244 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='可达', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:23,259 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='2', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:23,273 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:23,288 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:23,303 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='吨', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:23,318 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:23,334 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:23,348 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:23,363 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='栖', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:23,379 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='息', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:23,395 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='地', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:23,412 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:23,428 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content=':', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:23,444 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='生活在', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:23,459 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='世界各地', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:23,474 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:23,491 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='海洋', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:23,507 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='中', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:23,523 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:23,538 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:23,554 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:23,570 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='食', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:23,586 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='性', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:23,602 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:23,618 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content=':', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:23,634 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='主要', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:23,649 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='以', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:23,665 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='磷', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:23,681 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='虾', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:23,697 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='为', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:23,712 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='食', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:23,729 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:23,747 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:23,763 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:23,779 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='特征', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:23,795 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:23,811 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content=':', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:23,827 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='拥有', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:23,842 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='巨大的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:23,858 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='心脏', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:23,874 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:23,890 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='约', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:23,905 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='有', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:23,921 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='汽车', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:23,937 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='那么', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:23,953 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='大', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:23,969 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='),', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:23,985 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='叫声', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:24,001 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='可以', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:24,017 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='传播', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:24,032 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='数百', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:24,048 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='公里', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:24,064 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:24,079 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='蓝', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:24,095 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='鲸', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:24,112 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='不仅是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:24,127 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='现存', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:24,143 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='最大的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:24,159 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='哺乳', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:24,174 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='动物', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:24,190 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:24,206 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='也是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:24,222 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='地球', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:24,238 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='上有', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:24,254 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='史', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:24,269 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='以来', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:24,285 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='最大的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:24,301 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='动物', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:24,317 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:24,333 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-aa166f642c0c40b2bb0997513416432b', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason='stop', index=0, logprobs=None, stop_reason=None)], created=1762323921, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:25,097 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role='assistant', tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:25,099 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='Python', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:25,120 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='中', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:25,135 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='列表', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:25,150 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='和', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:25,165 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='元', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:25,180 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='组', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:25,194 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='的主要', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:25,210 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='区别', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:25,224 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='如下', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:25,239 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=':\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:25,254 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='##', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:25,268 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:25,283 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:25,298 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='.', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:25,313 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:25,328 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='可', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:25,343 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='变', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:25,358 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='性', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:25,372 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='**\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:25,387 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:25,402 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:25,417 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='列表', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:25,431 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:25,447 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='List', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:25,461 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=')', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:25,476 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:25,491 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=':', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:25,506 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='可', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:25,521 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='变', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:25,537 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:25,554 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='mutable', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:25,570 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='),', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:25,581 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='创建', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:25,596 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='后', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:25,611 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='可以', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:25,626 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='修改', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:25,640 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='、', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:25,655 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='添加', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:25,671 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='、', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:25,687 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='删除', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:25,704 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='元素', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:25,719 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:25,734 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:25,749 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:25,764 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='元', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:25,778 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='组', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:25,793 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:25,809 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='Tuple', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:25,825 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=')', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:25,841 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:25,856 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=':', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:25,870 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='不可', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:25,885 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='变', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:25,900 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:25,915 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='immutable', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:25,930 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='),', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:25,945 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='创建', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:25,960 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='后', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:25,974 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='不能', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:25,990 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='修改', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:26,004 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:26,019 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='```', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:26,034 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='python', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:26,049 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:26,064 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='#', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:26,079 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:26,093 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' 列', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:26,110 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='表', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:26,124 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='示', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:26,138 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='例', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:26,153 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:26,168 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='my', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:26,182 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='_list', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:26,197 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' =', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:26,212 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' [', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:26,227 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:26,242 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:26,257 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:26,272 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='2', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:26,287 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:26,301 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:26,316 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='3', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:26,331 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=']\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:26,346 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='my', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:26,361 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='_list', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:26,377 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='[', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:26,391 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:26,406 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=']', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:26,422 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' =', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:26,438 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:26,454 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:26,470 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:26,486 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:26,502 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' #', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:26,518 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:26,534 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' 可', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:26,549 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='以', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:26,565 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='修改', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:26,581 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:26,597 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='my', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:26,612 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='_list', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:26,628 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='.append', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:26,645 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:26,660 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='4', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:26,676 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=')', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:26,692 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:26,708 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' #', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:26,724 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:26,740 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' 可', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:26,756 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='以', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:26,772 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='添加', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:26,788 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='元素', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:26,803 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:26,819 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='#', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:26,835 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:26,851 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' 元', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:26,867 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='组', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:26,883 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='示', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:26,898 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='例', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:26,914 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:26,931 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='my', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:26,946 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='_tuple', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:26,962 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' =', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:26,978 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' (', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:26,993 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:27,013 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:27,025 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:27,042 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='2', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:27,058 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:27,073 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:27,090 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='3', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:27,105 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=')\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:27,121 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='#', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:27,137 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' my', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:27,153 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='_tuple', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:27,169 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='[', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:27,185 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:27,201 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=']', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:27,217 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' =', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:27,233 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:27,249 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:27,265 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:27,281 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:27,296 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' #', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:27,312 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:27,328 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' 这', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:27,345 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='会', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:27,361 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='报', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:27,376 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='错', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:27,392 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='!', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:27,408 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:27,424 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='``', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:27,440 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='`\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:27,456 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='##', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:27,473 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:27,488 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='2', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:27,504 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='.', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:27,520 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:27,536 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='语法', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:27,552 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='表示', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:27,568 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='**\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:27,583 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:27,599 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:27,615 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='列表', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:27,631 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:27,647 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=':', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:27,663 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='使用', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:27,679 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='方', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:27,694 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='括', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:27,713 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='号', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:27,726 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' `', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:27,742 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='[]', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:27,758 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='`\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:27,774 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:27,790 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:27,805 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='元', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:27,822 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='组', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:27,837 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:27,853 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=':', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:27,869 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='使用', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:27,885 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='圆', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:27,900 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='括', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:27,916 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='号', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:27,932 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' `', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:27,948 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='()`', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:27,964 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:27,980 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='或', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:27,996 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='省', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:28,012 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='略', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:28,027 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='括', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:28,043 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='号', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:28,059 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:28,075 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='```', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:28,091 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='python', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:28,107 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:28,123 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='my', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:28,139 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='_list', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:28,155 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' =', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:28,170 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' [', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:28,186 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:28,202 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:28,218 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:28,234 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='2', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:28,250 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:28,266 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:28,282 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='3', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:28,298 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=']\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:28,313 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='my', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:28,330 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='_tuple', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:28,346 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' =', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:28,362 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' (', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:28,377 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:28,393 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:28,409 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:28,425 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='2', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:28,441 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:28,457 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:28,473 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='3', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:28,489 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=')\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:28,505 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='another', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:28,521 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='_tuple', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:28,537 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' =', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:28,552 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:28,568 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:28,584 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:28,603 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:28,616 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='2', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:28,632 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:28,651 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:28,664 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='3', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:28,679 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:28,695 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' #', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:28,711 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:28,727 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:28,744 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' 省', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:28,760 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='略', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:28,775 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='括', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:28,791 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='号', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:28,807 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='也是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:28,823 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='元', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:28,839 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='组', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:28,855 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:28,871 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='``', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:28,886 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='`\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:28,902 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='##', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:28,919 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:28,934 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='3', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:28,950 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='.', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:28,966 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:28,982 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='性能', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:28,998 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='差异', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:29,014 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='**\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:29,030 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:29,045 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:29,062 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='列表', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:29,077 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:29,093 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=':', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:29,109 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='由于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:29,125 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='可', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:29,142 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='变', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:29,157 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='性', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:29,173 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:29,189 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='内存', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:29,205 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='分配', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:29,221 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='和', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:29,237 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='操作', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:29,253 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='相对', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:29,268 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='复杂', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:29,287 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:29,303 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='性能', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:29,319 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='稍', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:29,335 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='低', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:29,350 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:29,367 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:29,382 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:29,398 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='元', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:29,414 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='组', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:29,430 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:29,446 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=':', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:29,462 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='由于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:29,478 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='不可', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:29,494 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='变', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:29,510 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='性', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:29,525 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:29,542 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='内存', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:29,558 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='使用', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:29,575 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='更', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:29,591 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='高效', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:29,610 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:29,623 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='访问', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:29,638 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='速度', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:29,654 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='更快', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:29,670 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:29,686 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='##', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:29,702 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:29,718 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='4', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:29,733 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='.', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:29,750 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:29,766 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='方法', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:29,782 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='支持', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:29,798 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='**\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:29,814 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:29,830 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:29,849 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='列表', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:29,861 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:29,877 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=':', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:29,893 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='提供', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:29,909 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='丰富的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:29,925 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='修改', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:29,941 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='方法', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:29,957 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='如', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:29,972 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' `', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:29,988 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='append', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:30,004 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='()', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:30,020 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='`,', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:30,036 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' `', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:30,052 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='remove', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:30,068 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='()', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:30,083 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='`,', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:30,099 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' `', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:30,115 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='sort', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:30,131 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='()`', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:30,150 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:30,163 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:30,179 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' 等', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:30,198 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:30,210 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:30,226 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:30,245 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='元', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:30,261 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='组', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:30,274 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:30,289 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=':', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:30,309 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='只', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:30,321 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='支持', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:30,339 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='查询', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:30,353 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='方法', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:30,373 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='如', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:30,386 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' `', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:30,403 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='count', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:30,416 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='()', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:30,432 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='`,', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:30,449 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' `', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:30,465 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='index', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:30,480 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='()`', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:30,496 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:30,512 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='不', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:30,528 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='支持', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:30,544 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='修改', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:30,560 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='方法', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:30,576 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:30,593 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='```', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:30,612 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='python', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:30,627 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:30,646 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='my', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:30,667 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='_list', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:30,681 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' =', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:30,699 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' [', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:30,718 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:30,737 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:30,754 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:30,772 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='2', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:30,790 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:30,809 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:30,826 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='3', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:30,845 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=']\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:30,863 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='my', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:30,881 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='_list', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:30,899 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='.append', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:30,917 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:30,935 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='4', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:30,950 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=')', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:30,966 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:30,982 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' #', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:30,998 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:31,014 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='有', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:31,030 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='此', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:31,046 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='方法', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:31,062 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:31,078 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='my', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:31,093 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='_tuple', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:31,109 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' =', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:31,125 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' (', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:31,141 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:31,160 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:31,173 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:31,189 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='2', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:31,208 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:31,220 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:31,237 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='3', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:31,252 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=')\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:31,268 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='#', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:31,284 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' my', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:31,303 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='_tuple', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:31,315 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='.append', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:31,331 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:31,347 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='4', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:31,363 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=')', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:31,379 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:31,395 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' #', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:31,411 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:31,430 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:31,443 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' 没', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:31,458 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='有', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:31,478 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='此', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:31,490 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='方法', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:31,506 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:31,522 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='``', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:31,538 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='`\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:31,554 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='##', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:31,573 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:31,586 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='5', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:31,601 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='.', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:31,617 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:31,633 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='使用', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:31,649 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='场景', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:31,665 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='**\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:31,681 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:31,697 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:31,713 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='列表', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:31,729 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:31,744 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=':', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:31,760 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='适合', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:31,776 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='需要', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:31,792 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='频繁', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:31,808 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='修改', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:31,824 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='的数据', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:31,840 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='集合', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:31,855 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:31,871 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:31,887 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:31,903 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='元', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:31,919 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='组', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:31,935 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:31,951 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=':', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:31,967 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='适合', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:31,983 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='存储', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:31,998 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='不变', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:32,014 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='的数据', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:32,030 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:32,046 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='如', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:32,062 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='坐标', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:32,078 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='、', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:32,093 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='数据库', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:32,109 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='记录', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:32,126 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='等', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:32,142 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:32,157 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='##', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:32,173 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:32,189 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='6', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:32,205 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='.', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:32,221 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:32,237 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='安全性', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:32,252 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='**\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:32,271 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:32,284 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:32,300 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='元', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:32,319 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='组', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:32,336 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:32,347 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=':', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:32,364 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='由于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:32,386 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='不可', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:32,395 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='变', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:32,411 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='性', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:32,427 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=',在', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:32,443 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='多', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:32,458 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='线', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:32,475 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='程', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:32,490 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='环境中', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:32,506 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='更', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:32,522 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='安全', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:32,538 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:32,554 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:32,570 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:32,586 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='列表', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:32,603 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:32,619 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=':', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:32,636 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='在', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:32,651 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='多', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:32,667 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='线', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:32,685 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='程', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:32,700 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='环境下', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:32,715 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='需要', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:32,730 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='额外', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:32,746 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:32,762 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='同步', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:32,778 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='机制', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:32,794 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:32,810 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='总的来说', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:32,827 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:32,846 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='选择', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:32,859 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='列表', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:32,875 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='还是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:32,891 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='元', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:32,907 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='组', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:32,923 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='主要', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:32,939 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='取决于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:32,955 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='数据', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:32,971 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='是否', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:32,990 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='需要', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:33,003 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='修改', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:33,019 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='以及', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:33,035 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='对', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:33,051 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='性能', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:33,067 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='的要求', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:33,083 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:33,100 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-94b59b9750234be0bcbe254cf60577d0', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason='stop', index=0, logprobs=None, stop_reason=None)], created=1762323925, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:33,866 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role='assistant', tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:33,867 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='根据', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:33,881 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='历史', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:33,899 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='学', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:33,915 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='界的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:33,925 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='普遍', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:33,945 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='认知', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:33,955 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:33,974 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='第一次', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:33,986 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='工业', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:34,004 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='革命', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:34,015 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='开始', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:34,034 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:34,045 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:34,060 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:34,075 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='8', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:34,090 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='世纪', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:34,105 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='中', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:34,120 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='后期', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:34,135 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:34,149 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:34,164 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='大约', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:34,179 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='在', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:34,194 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:34,209 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:34,224 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='7', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:34,238 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='6', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:34,253 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:34,269 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='年代', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:34,283 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='至', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:34,298 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:34,313 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='7', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:34,328 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='8', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:34,343 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:34,358 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='年代', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:34,372 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:34,387 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='之间', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:34,402 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='。\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:34,417 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='具体', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:34,432 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='来说', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:34,451 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content=':\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:34,462 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:34,480 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='开始', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:34,495 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='时间', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:34,510 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:34,521 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content=':', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:34,537 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:34,551 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='8', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:34,570 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='世纪', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:34,581 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='6', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:34,597 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:34,612 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='年代', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:34,630 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='左右', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:34,641 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:34,656 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='约', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:34,673 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:34,686 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='7', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:34,701 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='6', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:34,717 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:34,732 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='年', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:34,746 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content=')\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:34,761 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:34,777 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:34,791 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='以', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:34,806 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='英国', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:34,821 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:34,836 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='纺织', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:34,851 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='业', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:34,866 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='技术', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:34,884 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='革新', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:34,896 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='为', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:34,911 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='标志', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:34,926 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:34,940 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:34,955 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content=' 最', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:34,970 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='早', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:34,985 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='出现在', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:35,000 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='纺织', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:35,015 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='部门', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:35,030 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:35,045 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='特别是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:35,060 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='棉', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:35,075 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='纺织', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:35,090 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='业', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:35,105 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:35,120 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:35,135 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='主要', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:35,150 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='特征', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:35,165 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:35,184 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content=':\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:35,195 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:35,210 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:35,226 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:35,243 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content=' 蒸', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:35,262 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='汽', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:35,274 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='机', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:35,293 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:35,309 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='发明', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:35,325 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='和', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:35,341 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='应用', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:35,354 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:35,369 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='瓦', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:35,385 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='特', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:35,402 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='改良', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:35,417 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='蒸汽', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:35,433 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='机', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:35,453 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='在', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:35,469 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:35,484 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='7', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:35,497 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='6', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:35,516 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='9', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:35,532 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='年', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:35,548 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content=')\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:35,564 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:35,580 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:35,596 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='机器', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:35,612 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='生产', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:35,628 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='代替', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:35,640 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='手工', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:35,656 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='劳动', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:35,672 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:35,688 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:35,704 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:35,720 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content=' 工', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:35,736 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='厂', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:35,753 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='制度', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:35,774 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:35,791 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='建立', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:35,808 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:35,824 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:35,837 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:35,856 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='从', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:35,869 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='农业', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:35,885 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='社会', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:35,901 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='向', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:35,917 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='工业', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:35,933 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='社会', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:35,949 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='转变', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:35,965 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:35,982 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:36,001 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='地理', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:36,015 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='起点', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:36,031 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:36,047 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content=':', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:36,063 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='英国', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:36,079 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:36,094 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:36,114 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:36,130 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content=' 英', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:36,147 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='国', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:36,160 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='具备', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:36,178 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='了', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:36,194 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='进行', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:36,210 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='工业', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:36,226 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='革命', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:36,241 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:36,258 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='有利', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:36,272 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='条件', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:36,289 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content=':', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:36,306 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='丰富的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:36,320 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='煤炭', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:36,337 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='资源', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:36,355 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='、', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:36,377 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='充足的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:36,384 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='资本', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:36,405 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='、', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:36,413 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='广阔的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:36,435 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='海外市场', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:36,445 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='、', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:36,461 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='稳定', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:36,478 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='的政治', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:36,494 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='环境', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:36,509 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='等', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:36,526 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:36,544 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='因此', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:36,557 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:36,573 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='第一次', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:36,589 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='工业', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:36,605 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='革命', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:36,620 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='通常', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:36,636 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='被', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:36,652 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='界定', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:36,668 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='为', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:36,684 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='从', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:36,700 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:36,716 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='8', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:36,733 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='世纪', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:36,749 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='6', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:36,764 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:36,784 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='年代', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:36,802 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='开始', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:36,816 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:36,839 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='持续', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:36,855 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='到', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:36,864 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:36,880 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='9', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:36,893 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='世纪', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:36,912 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='中期', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:36,928 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:36,944 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:36,960 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='人类', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:36,976 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='历史上', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:36,990 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='第一次', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:37,006 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='重大', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:37,023 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='技术', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:37,036 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='革命', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:37,052 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:37,068 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1faff563eb304fabb2a2dd79fd2f831f', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason='stop', index=0, logprobs=None, stop_reason=None)], created=1762323933, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:37,797 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role='assistant', tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:37,799 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='水', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:37,812 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:37,827 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='化学', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:37,842 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='式', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:37,858 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:37,872 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:37,886 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='H', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:37,905 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='₂', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:37,916 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='O', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:37,931 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:37,946 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='。\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:37,965 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='详细', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:37,976 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='解释', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:37,990 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content=':\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:38,005 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:38,019 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:38,034 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:38,051 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content=' 水', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:38,064 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='分子', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:38,079 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='由', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:38,095 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='2', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:38,110 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='个', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:38,126 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='氢', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:38,141 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='原子', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:38,158 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:38,175 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='H', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:38,190 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content=')', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:38,206 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='和', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:38,222 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:38,237 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='个', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:38,253 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='氧', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:38,268 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='原子', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:38,284 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:38,300 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='O', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:38,315 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content=')', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:38,331 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='组成', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:38,346 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:38,362 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:38,377 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:38,393 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content=' 化', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:38,409 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='学', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:38,424 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='式', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:38,440 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='中的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:38,455 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='下', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:38,471 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='标', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:38,486 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='数字', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:38,502 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='表示', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:38,517 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='原子', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:38,533 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='的数量', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:38,549 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content=':', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:38,568 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='2', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:38,580 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='个', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:38,596 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='氢', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:38,615 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='原子', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:38,627 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:38,642 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:38,661 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='个', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:38,676 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='氧', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:38,691 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='原子', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:38,704 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:38,721 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:38,732 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:38,748 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:38,766 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content=' 水', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:38,780 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='分子', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:38,795 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='中', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:38,810 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='氢', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:38,824 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='原子', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:38,836 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='和', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:38,851 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='氧', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:38,869 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='原子', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:38,884 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='通过', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:38,895 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='共', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:38,910 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='价', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:38,925 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='键', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:38,940 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='结合', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:38,955 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:38,972 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:38,984 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:38,999 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content=' 这', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:39,017 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='个', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:39,029 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='化学', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:39,045 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='式', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:39,059 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='准确', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:39,077 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='地', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:39,092 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='描述', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:39,104 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='了', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:39,124 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='水', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:39,132 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='分子', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:39,148 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='的基本', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:39,161 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='组成', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:39,181 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='结构', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:39,192 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:39,209 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='需要注意', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:39,226 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='的是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:39,242 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:39,256 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='虽然', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:39,275 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='化学', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:39,289 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='式', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:39,307 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='写作', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:39,322 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='H', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:39,341 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='₂', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:39,352 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='O', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:39,370 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:39,386 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='但在', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:39,406 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='不同的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:39,421 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='语', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:39,433 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='境', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:39,451 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='下', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:39,466 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='也可能', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:39,481 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='看到', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:39,495 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='H', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:39,512 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='-O', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:39,529 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='-H', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:39,542 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='这样的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:39,558 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='结构', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:39,573 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='式', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:39,589 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='来', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:39,605 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='表示', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:39,621 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='水', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:39,640 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='分子', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:39,652 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='的空间', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:39,671 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='排列', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:39,684 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:25:39,700 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ee7b365944c24b699324d2d7ad832ade', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason='stop', index=0, logprobs=None, stop_reason=None)], created=1762323937, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:52,536 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role='assistant', tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:52,538 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='根据', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:52,539 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='历史', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:52,549 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='记录', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:52,563 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:52,579 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='电话', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:52,594 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:52,609 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='发明', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:52,624 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='者', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:52,639 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:52,654 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:52,668 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='亚', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:52,683 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='历', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:52,698 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='山', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:52,712 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='大', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:52,727 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='·', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:52,742 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='格', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:52,757 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='雷', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:52,772 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='厄', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:52,786 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='姆', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:52,801 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='·', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:52,816 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='贝尔', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:52,831 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:52,846 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='Alexander', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:52,860 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content=' Graham', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:52,875 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content=' Bell', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:52,890 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content=')', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:52,905 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:52,919 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='。\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:52,933 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='贝尔', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:52,949 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='在', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:52,963 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:52,977 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='8', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:52,993 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='7', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:53,007 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='6', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:53,023 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='年', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:53,037 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='3', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:53,052 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='月', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:53,067 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:53,081 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:53,096 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='日', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:53,111 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='成功', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:53,126 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='发明', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:53,141 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='并', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:53,155 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='申请', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:53,170 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='了', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:53,184 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='电话', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:53,198 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='专利', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:53,214 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:53,228 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='他', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:53,243 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='与', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:53,258 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='他的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:53,273 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='助手', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:53,286 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='托', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:53,302 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='马', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:53,317 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='斯', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:53,331 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='·', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:53,346 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='沃', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:53,361 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='森', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:53,375 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:53,390 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='Thomas', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:53,405 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content=' Watson', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:53,420 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content=')', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:53,434 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='一起', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:53,449 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='进行了', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:53,464 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='历史上', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:53,478 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='第一次', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:53,493 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='成功的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:53,508 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='电话', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:53,522 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='通话', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:53,537 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:53,552 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='贝尔', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:53,566 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:53,580 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='发明', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:53,596 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='基于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:53,610 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='他对', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:53,625 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='声音', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:53,640 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='传输', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:53,655 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='的研究', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:53,669 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:53,684 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='他', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:53,698 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='最初', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:53,713 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='是为了', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:53,728 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='帮助', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:53,743 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='听力', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:53,758 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='障碍', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:53,773 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='人士', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:53,787 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='而', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:53,801 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='研究', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:53,817 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='声音', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:53,831 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:53,847 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='传输', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:53,863 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='技术', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:53,878 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='。\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:53,893 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='需要注意', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:53,913 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='的是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:53,925 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:53,941 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='关于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:53,956 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='电话', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:53,971 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='发明', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:53,987 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:54,003 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='争议', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:54,019 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='一直', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:54,034 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='存在', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:54,050 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:54,065 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='因为', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:54,081 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='同时', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:54,099 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='期', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:54,116 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='还有', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:54,132 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='其他', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:54,147 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='发明', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:54,164 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='家', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:54,179 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='如', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:54,195 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='伊', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:54,211 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='莱', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:54,228 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='沙', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:54,244 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='·', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:54,259 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='格', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:54,275 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='雷', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:54,291 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:54,310 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='E', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:54,321 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='lish', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:54,337 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='a', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:54,352 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content=' Gray', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:54,369 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content=')', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:54,384 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='也', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:54,400 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='独立', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:54,415 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='地', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:54,431 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='进行了', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:54,447 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='类似', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:54,462 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='的研究', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:54,478 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='工作', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:54,494 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:54,510 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='但', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:54,526 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='贝尔', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:54,541 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='因其', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:54,561 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='率先', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:54,573 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='申请', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:54,588 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='专利', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:54,603 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='并在', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:54,619 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='实际', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:54,635 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='应用', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:54,650 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='中', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:54,666 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='取得', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:54,682 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='成功', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:54,698 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='而', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:54,714 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='被', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:54,729 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='广泛', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:54,746 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='认为', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:54,763 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:54,780 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='电话', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:54,796 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:54,813 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='发明', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:54,829 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='者', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:54,843 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='。\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:54,864 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='贝尔', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:54,874 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:54,892 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='这项', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:54,905 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='发明', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:54,925 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='彻底', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:54,937 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='改变了', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:54,953 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='人类', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:54,968 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:54,983 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='通信', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:55,000 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='方式', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:55,015 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:55,030 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='为', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:55,047 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='现代', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:55,064 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='电信', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:55,080 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='事业', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:55,097 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='奠定了', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:55,112 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='基础', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:55,125 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:55,142 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-28bd87dbd5894dc494ce91b1dae38a58', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason='stop', index=0, logprobs=None, stop_reason=None)], created=1762324072, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:55,889 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role='assistant', tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:55,891 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='根据', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:55,909 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='您', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:55,922 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='提供的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:55,939 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='知识', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:55,953 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='内容', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:55,968 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:55,983 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='我', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:55,997 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='无法', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:56,012 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='直接', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:56,027 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='回答', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:56,045 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='"', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:56,056 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='地球上', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:56,070 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='最大的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:56,085 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='哺乳', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:56,100 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='动物', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:56,118 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='是什么', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:56,133 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='"', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:56,148 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='这个问题', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:56,163 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:56,180 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='因为', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:56,196 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='您', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:56,207 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='给出', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:56,222 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='的知识', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:56,236 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='内容', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:56,250 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='中', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:56,265 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='没有', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:56,280 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='包含', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:56,296 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='关于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:56,313 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='地球', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:56,329 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='哺乳', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:56,340 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='动物', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:56,354 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='大小', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:56,368 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='的信息', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:56,383 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='。\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:56,398 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='不过', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:56,412 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:56,427 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='我可以', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:56,442 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='基于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:56,457 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='我的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:56,471 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='通用', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:56,486 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='知识', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:56,500 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='来', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:56,515 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='回答', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:56,530 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='这个问题', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:56,545 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content=':\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:56,560 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:56,574 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='地球上', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:56,589 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='最大的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:56,603 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='哺乳', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:56,631 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='动物', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:56,633 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:56,647 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='蓝', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:56,662 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='鲸', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:56,676 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:56,691 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='。\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:56,706 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='蓝', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:56,720 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='鲸', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:56,735 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:56,750 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='目前已', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:56,765 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='知', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:56,779 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='地球上', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:56,795 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='最大的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:56,810 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='哺乳', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:56,825 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='动物', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:56,840 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:56,854 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='也是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:56,869 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='地球', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:56,884 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='上有', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:56,898 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='史', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:56,913 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='以来', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:56,928 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='最大的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:56,943 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='动物', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:56,958 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:56,973 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='成', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:56,987 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='年', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:57,001 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='蓝', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:57,017 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='鲸', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:57,032 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:57,046 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='体', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:57,061 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='长', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:57,076 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='可达', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:57,090 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='2', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:57,105 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='5', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:57,120 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:57,135 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='3', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:57,150 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:57,165 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='米', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:57,180 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:57,194 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='体重', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:57,209 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='可达', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:57,224 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:57,239 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:57,255 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:57,270 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:57,286 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:57,305 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='5', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:57,317 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:57,333 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='吨', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:57,349 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:57,368 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='它们', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:57,379 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='生活在', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:57,396 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='海洋', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:57,411 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='中', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:57,426 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:57,442 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='以', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:57,459 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='磷', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:57,475 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='虾', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:57,491 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='为主要', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:57,507 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='食物', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:57,523 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:57,539 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='蓝', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:57,555 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='鲸', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:57,571 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='不仅', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:57,586 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='在', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:57,602 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='现存', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:57,618 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='哺乳', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:57,633 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='动物', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:57,649 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='中', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:57,668 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='体型', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:57,680 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='最大', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:57,695 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content=',在', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:57,713 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='整个', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:57,730 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='动物', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:57,743 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='界', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:57,763 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='中', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:57,774 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='也是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:57,790 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='体型', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:57,806 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='最大的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:57,821 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='动物', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:57,837 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='。\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:57,853 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='如果您', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:57,872 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='需要', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:57,884 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='更', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:57,900 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='详细', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:57,915 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='的信息', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:57,930 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='或者', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:57,947 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='有', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:57,964 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='其他', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:57,979 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='问题', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:57,997 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content=',请', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:58,013 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='随时', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:58,028 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='告诉我', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:58,042 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:58,058 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-4e39ed0f8cd742348dfee59558ffe25a', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason='stop', index=0, logprobs=None, stop_reason=None)], created=1762324075, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:58,784 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role='assistant', tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:58,786 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='Python', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:58,801 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='中', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:58,816 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='列表', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:58,832 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='和', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:58,847 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='元', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:58,862 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='组', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:58,878 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='的主要', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:58,892 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='区别', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:58,910 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='如下', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:58,922 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=':\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:58,937 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='##', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:58,951 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:58,969 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:58,980 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='.', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:58,995 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:59,010 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='可', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:59,025 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='变', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:59,040 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='性', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:59,055 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='**\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:59,068 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:59,084 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:59,098 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='列表', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:59,113 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:59,127 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='List', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:59,142 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=')', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:59,157 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:59,172 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=':', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:59,190 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='可', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:59,200 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='变', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:59,216 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:59,234 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='mutable', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:59,245 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='),', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:59,260 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='创建', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:59,274 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='后', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:59,289 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='可以', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:59,304 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='修改', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:59,318 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='、', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:59,333 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='添加', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:59,347 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='、', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:59,361 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='删除', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:59,377 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='元素', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:59,392 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:59,410 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:59,421 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:59,436 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='元', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:59,450 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='组', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:59,465 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:59,480 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='Tuple', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:59,494 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=')', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:59,509 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:59,524 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=':', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:59,538 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='不可', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:59,554 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='变', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:59,568 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:59,583 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='immutable', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:59,597 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='),', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:59,612 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='创建', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:59,631 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='后', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:59,642 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='不能', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:59,657 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='修改', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:59,671 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:59,686 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='```', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:59,701 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='python', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:59,716 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:59,734 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='#', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:59,746 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:59,760 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' 列', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:59,790 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='表', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:59,792 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='示', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:59,804 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='例', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:59,819 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:59,838 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='my', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:59,849 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='_list', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:59,863 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' =', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:59,878 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' [', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:59,893 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:59,911 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:59,923 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:59,937 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='2', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:59,952 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:59,967 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:59,982 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='3', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:27:59,996 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=']\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:00,012 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='my', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:00,026 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='_list', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:00,041 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='[', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:00,055 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:00,070 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=']', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:00,086 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' =', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:00,102 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:00,117 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:00,133 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:00,149 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:00,164 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' #', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:00,180 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:00,196 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' 可', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:00,211 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='以', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:00,227 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='修改', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:00,243 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:00,258 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='my', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:00,274 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='_list', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:00,292 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='.append', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:00,308 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:00,323 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='4', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:00,339 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=')', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:00,354 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:00,370 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' #', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:00,386 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:00,402 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' 可', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:00,418 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='以', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:00,434 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='添加', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:00,450 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='元素', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:00,465 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:00,481 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='#', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:00,497 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:00,513 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' 元', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:00,528 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='组', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:00,544 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='示', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:00,560 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='例', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:00,576 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:00,591 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='my', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:00,607 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='_tuple', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:00,623 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' =', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:00,638 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' (', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,785 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,787 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,788 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,789 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='2', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,791 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,792 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,793 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='3', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,794 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=')\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,796 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='#', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,797 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' my', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,798 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='_tuple', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,799 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='[', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,800 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,801 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=']', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,802 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' =', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,803 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,803 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,804 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,805 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,806 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' #', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,807 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,807 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' 这', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,808 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='会', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,809 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='报', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,810 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='错', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,810 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='!', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,811 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,811 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='``', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,812 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='`\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,812 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='##', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,813 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,814 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='2', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,814 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='.', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,815 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,815 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='语法', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,816 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='表示', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,816 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='**\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,817 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,817 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,818 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='列表', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,818 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,819 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=':', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,819 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='使用', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,820 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='方', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,820 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='括', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,821 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='号', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,821 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' `', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,822 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='[]', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,822 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='`\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,823 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,823 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,824 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='元', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,824 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='组', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,824 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,825 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=':', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,825 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='使用', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,826 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='圆', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,826 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='括', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,827 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='号', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,827 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' `', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,828 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='()`', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,828 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,829 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='或', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,829 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='省', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,830 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='略', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,830 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='括', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,830 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='号', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,831 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,831 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='```', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,832 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='python', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,833 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,833 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='my', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,834 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='_list', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,834 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' =', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,834 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' [', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,835 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,835 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,836 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,836 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='2', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,837 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,837 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,838 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='3', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,838 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=']\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,838 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='my', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,839 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='_tuple', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,839 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' =', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,840 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' (', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,840 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,841 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,841 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,842 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='2', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,842 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,843 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,843 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='3', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,843 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=')\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,844 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='another', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,844 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='_tuple', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,845 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' =', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,845 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,846 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,846 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,847 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,847 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='2', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,848 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,848 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,849 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='3', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,849 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,850 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' #', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,850 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,851 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,851 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' 省', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,851 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='略', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,852 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='括', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,852 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='号', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,853 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='也是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,853 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='元', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,854 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='组', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,854 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,855 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='``', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,855 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='`\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,856 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='##', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,856 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,856 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='3', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,857 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='.', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,857 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,858 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='性能', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,858 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='差异', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,859 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='**\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,859 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,860 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,860 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='列表', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,861 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,861 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=':', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,861 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='由于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,862 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='可', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,862 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='变', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,863 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='性', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,863 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,864 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='内存', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,864 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='分配', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,865 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='和', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,866 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='操作', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,866 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='相对', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,866 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='复杂', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,867 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,867 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='性能', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,868 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='稍', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,868 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='低', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,869 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,869 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,870 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,870 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='元', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,870 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='组', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,871 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,871 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=':', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,872 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='由于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,872 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='不可', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,873 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='变', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,873 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='性', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,874 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,874 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='内存', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,875 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='占用', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,875 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='更', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,875 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='少', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,876 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,876 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='访问', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,877 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='速度', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,877 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='更快', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,878 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,878 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='##', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,879 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,879 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='4', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,880 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='.', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,880 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,881 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='方法', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,881 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='支持', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,882 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='**\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,882 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,883 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,883 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='列表', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,884 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,884 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=':', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,885 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='提供', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,885 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='丰富的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,885 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='修改', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,886 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='方法', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,886 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='如', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,887 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' `', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,887 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='append', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,888 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='()', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,888 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='`,', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,889 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' `', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,889 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='remove', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,889 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='()', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,890 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='`,', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,890 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' `', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,891 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='sort', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,891 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='()`', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,892 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,892 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,893 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' 等', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,893 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,894 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,894 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,894 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='元', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,895 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='组', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,895 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,896 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=':', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,896 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='只', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,897 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='支持', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,897 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='查询', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,898 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='方法', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,898 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='如', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,899 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' `', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,899 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='count', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,900 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='()', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,900 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='`,', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,901 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' `', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,901 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='index', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,902 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='()`', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,902 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,903 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='不', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,903 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='支持', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,904 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='修改', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,904 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='方法', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,904 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,905 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='```', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,905 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='python', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,906 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,906 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='my', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,907 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='_list', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,907 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' =', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,908 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' [', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,908 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,908 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,909 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,909 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='2', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,910 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,910 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,911 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='3', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,911 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=']\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,912 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='my', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,912 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='_list', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,913 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='.append', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,913 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,914 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='4', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,914 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=')', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,915 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,915 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' #', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,916 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,916 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='有', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,917 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='此', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,917 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='方法', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,917 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,918 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='my', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,918 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='_tuple', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,919 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' =', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,919 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' (', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,920 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,920 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,921 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,921 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='2', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,921 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,922 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,922 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='3', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,923 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=')\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,923 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='#', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,924 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' my', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,924 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='_tuple', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,925 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='.append', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,925 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,925 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='4', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,926 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=')', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,926 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,927 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' #', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,927 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,928 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,928 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' 没', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,929 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='有', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,929 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='此', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,930 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='方法', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,930 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,931 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='``', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,931 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='`\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,932 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='##', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,932 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,933 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='5', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,933 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='.', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,934 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,934 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='使用', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,935 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='场景', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,935 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='**\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,936 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,936 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,936 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='列表', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,937 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,937 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=':', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,938 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='适合', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,938 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='需要', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,939 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='频繁', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,939 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='修改', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,940 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='的数据', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,940 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='集合', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,940 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,941 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,941 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,942 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='元', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,943 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='组', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,943 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,944 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=':', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,944 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='适合', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,945 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='存储', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,945 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='不变', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,945 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='的数据', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,946 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,946 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='如', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,947 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='坐标', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,947 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='点', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,948 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='、', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,949 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='数据库', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,949 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='记录', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,949 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='等', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,950 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,950 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='##', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,951 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,951 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='6', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,952 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='.', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,952 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,953 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='安全性', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,953 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='**\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,953 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,954 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,954 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='元', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,955 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='组', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,955 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,956 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=':', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,956 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='由于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,957 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='不可', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,957 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='变', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,958 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='性', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,958 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=',在', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,958 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='多', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,959 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='线', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,959 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='程', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,960 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='环境中', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,960 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='更', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,961 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='安全', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,961 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,962 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,962 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,963 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='列表', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,963 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,964 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=':', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,964 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='在', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,965 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='多', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,965 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='线', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,966 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='程', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,966 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='环境下', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,967 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='需要', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,967 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='额外', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,968 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,968 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='同步', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,968 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='机制', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,969 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,969 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='总的来说', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,970 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,970 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='选择', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,971 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='列表', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,971 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='还是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,972 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='元', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,972 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='组', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,973 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='主要', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,973 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='取决于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,973 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='数据', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,974 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='是否', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,974 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='需要', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,975 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='修改', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,975 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='以及', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,976 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='对', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,976 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='性能', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,977 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='的要求', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,977 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:15,978 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-edc09076bce54ff5b9d410170dc80472', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason='stop', index=0, logprobs=None, stop_reason=None)], created=1762324078, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:16,736 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role='assistant', tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:16,738 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='根据', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:16,751 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='历史', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:16,766 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='学', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:16,780 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='界的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:16,796 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='普遍', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:16,812 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='认知', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:16,828 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:16,844 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='第一次', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:16,860 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='工业', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:16,875 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='革命', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:16,891 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='开始', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:16,907 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:16,923 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:16,939 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:16,955 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='8', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:16,971 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='世纪', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:16,986 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='中', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:17,000 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='后期', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:17,016 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:17,032 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:17,047 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='大约', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:17,063 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='在', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:17,078 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:17,094 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:17,110 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='7', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:17,125 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='6', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:17,140 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:17,156 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='年代', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:17,171 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:17,186 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='左右', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:17,201 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='。\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:17,215 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='具体', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:17,230 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='来说', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:17,245 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content=':\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:17,259 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:17,280 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='开始', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:17,289 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='时间', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:17,303 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:17,318 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content=':', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:17,333 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='约', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:17,349 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:17,363 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='7', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:17,377 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='6', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:17,392 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:17,407 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='年代', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:17,421 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:17,437 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:17,451 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='结束', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:17,466 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='时间', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:17,481 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:17,496 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content=':', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:17,510 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='约', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:17,525 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:17,539 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='8', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:17,555 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='4', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:17,569 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:17,583 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='年代', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:17,599 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:17,615 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:17,630 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='主要', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:17,645 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='发', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:17,660 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='源', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:17,675 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='地', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:17,690 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:17,705 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content=':', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:17,720 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='英国', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:17,734 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:17,749 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='第一次', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:17,764 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='工业', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:17,779 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='革命', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:17,794 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:17,809 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='标志性', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:17,824 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='事件', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:17,839 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='包括', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:17,857 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content=':\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:17,868 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:17,883 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:17,898 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:17,913 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='7', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:17,929 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='6', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:17,942 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='4', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:17,959 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='年', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:17,972 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='珍', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:17,987 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='妮', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:18,002 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='纺', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:18,016 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='纱', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:18,031 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='机', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:18,046 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:18,060 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='发明', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:18,075 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:18,090 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:18,106 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:18,121 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:18,137 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='7', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:18,153 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='8', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:18,168 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='4', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:18,184 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='年', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:18,200 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='瓦', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:18,215 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='特', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:18,231 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='改良', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:18,247 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='蒸汽', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:18,262 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='机', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:18,278 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:18,294 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='投入使用', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:18,309 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:18,325 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:18,341 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:18,356 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:18,372 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='8', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:18,388 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:18,403 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='4', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:18,420 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='年', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:18,435 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='斯', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:18,451 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='蒂', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:18,467 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='芬', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:18,483 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='森', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:18,499 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='发明', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:18,515 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='蒸汽', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:18,531 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='机', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:18,547 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='车', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:18,563 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:18,578 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='这场', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:18,594 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='革命', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:18,610 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='首先', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:18,626 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='从', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:18,642 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='英国', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:18,658 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:18,674 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='纺织', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:18,689 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='业', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:18,705 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='开始', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:18,721 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:18,737 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='随后', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:18,753 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='扩展', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:18,768 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='到', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:18,784 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='采矿', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:18,800 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='、', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:18,816 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='冶金', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:18,832 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='、', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:18,848 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='交通运输', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:18,864 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='等多个', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:18,879 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='领域', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:18,895 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:18,911 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='标志着', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:18,927 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='人类', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:18,943 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='社会', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:18,958 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='从', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:18,974 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='手工', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:18,990 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='生产', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:19,005 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='向', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:19,021 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='机器', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:19,037 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='生产的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:19,052 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='重大', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:19,068 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='转变', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:19,084 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:19,100 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-86a080ab8b60484eac9028ec5c4e7300', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason='stop', index=0, logprobs=None, stop_reason=None)], created=1762324096, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:19,832 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role='assistant', tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:19,834 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='水', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:19,847 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:19,862 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='化学', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:19,877 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='式', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:19,892 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:19,906 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:19,922 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='H', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:19,936 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='₂', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:19,951 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='O', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:19,965 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:19,980 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='。\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:19,995 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='详细', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:20,010 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='解释', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:20,024 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content=':\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:20,039 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:20,054 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:20,068 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:20,083 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content=' 水', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:20,098 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='分子', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:20,113 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='由', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:20,127 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='2', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:20,142 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='个', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:20,157 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='氢', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:20,172 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='原子', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:20,187 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:20,201 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='H', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:20,216 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content=')', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:20,231 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='和', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:20,245 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:20,260 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='个', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:20,275 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='氧', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:20,290 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='原子', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:20,304 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:20,319 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='O', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:20,334 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content=')', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:20,349 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='组成', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:20,363 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:20,378 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:20,393 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:20,408 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content=' 化', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:20,422 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='学', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:20,437 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='式', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:20,452 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='H', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:20,466 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='₂', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:20,481 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='O', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:20,496 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='表示', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:20,510 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='每个', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:20,525 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='水', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:20,540 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='分子', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:20,555 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='中含有', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:20,569 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='2', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:20,584 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='个', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:20,599 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='氢', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:20,614 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='原子', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:20,629 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='和', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:20,643 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:20,658 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='个', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:20,673 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='氧', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:20,687 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='原子', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:20,702 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:20,717 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:20,732 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:20,747 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content=' 这', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:20,763 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='种', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:20,776 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='分子', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:20,791 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='结构', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:20,806 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='使得', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:20,821 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='水', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:20,835 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='具有', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:20,850 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='独特的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:20,866 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='物理', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:20,880 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='和', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:20,895 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='化学', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:20,909 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='性质', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:20,924 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:20,939 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='如', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:20,954 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='高', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:20,968 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='沸', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:20,983 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='点', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:20,998 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='、', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:21,013 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='良好的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:21,027 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='溶', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:21,042 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='剂', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:21,057 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='能力', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:21,071 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='等', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:21,086 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:21,101 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:21,115 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:21,130 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:21,145 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content=' 水', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:21,160 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:21,175 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='生命', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:21,191 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='存在的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:21,208 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='基础', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:21,222 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='物质', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:21,238 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:21,253 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='也是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:21,269 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='地球上', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:21,285 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='最常见的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:21,300 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='化合物', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:21,316 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='之一', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:28:21,332 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-582c1b2fc5354cb1940a593756448917', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason='stop', index=0, logprobs=None, stop_reason=None)], created=1762324099, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:40,514 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role='assistant', tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:40,515 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='根据', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:40,517 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='您', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:40,526 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='提供的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:40,544 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='知识', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:40,560 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='内容', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:40,576 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:40,593 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='其中', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:40,609 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='并未', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:40,625 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='包含', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:40,642 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='关于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:40,658 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='“', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:40,674 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='谁', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:40,690 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='发明', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:40,706 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='了', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:40,722 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='电话', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:40,738 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='”的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:40,754 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='相关信息', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:40,771 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:40,787 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='该', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:40,804 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='文档', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:40,820 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='主要', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:40,837 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='介绍', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:40,853 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='的是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:40,870 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='《', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:40,887 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='智能', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:40,904 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='建筑工程', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:40,920 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='质量', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:40,936 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='验收', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:40,952 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='规范', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:40,969 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='》', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:40,986 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='GB', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:41,002 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='5', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:41,018 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:41,034 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='3', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:41,050 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='3', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:41,066 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='9', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:41,082 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:41,098 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='2', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:41,114 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:41,130 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:41,146 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='3', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:41,162 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:41,178 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='修订', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:41,194 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='说明', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:41,210 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='、', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:41,226 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='章节', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:41,242 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='结构', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:41,258 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='及', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:41,274 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='内容', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:41,290 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='概述', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:41,307 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:41,322 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='重点', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:41,338 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='在于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:41,354 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='智能', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:41,370 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='建筑工程', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:41,386 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='的质量', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:41,402 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='验收', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:41,418 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='标准', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:41,434 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='和技术', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:41,450 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='要求', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:41,467 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content=',并', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:41,482 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='未', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:41,498 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='涉及', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:41,514 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='电话', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:41,530 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='发明', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:41,546 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='的历史', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:41,562 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='背景', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:41,578 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='或', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:41,595 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='人物', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:41,611 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='。\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:41,627 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='###', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:41,643 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:41,659 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content=' 准', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:41,675 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='确', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:41,691 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='答案', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:41,707 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content=':\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:41,723 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:41,739 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='电话', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:41,755 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='是由', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:41,772 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='亚', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:41,787 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='历', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:41,803 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='山', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:41,819 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='大', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:41,835 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='·', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:41,851 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='格', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:41,867 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='雷', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:41,883 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='厄', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:41,900 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='姆', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:41,915 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='·', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:41,931 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='贝尔', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:41,948 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:41,964 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='Alexander', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:41,980 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content=' Graham', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:41,995 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content=' Bell', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:42,011 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content=')', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:42,028 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='发明', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:42,043 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:42,059 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:42,075 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='**\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:42,092 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='###', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:42,108 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:42,124 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content=' 补', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:42,140 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='充', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:42,156 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='说明', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:42,172 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content=':\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:42,188 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:42,204 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:42,220 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='发明', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:42,236 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='时间', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:42,252 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:42,268 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content=':', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:42,284 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:42,300 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='8', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:42,316 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='7', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:42,332 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='6', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:42,348 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='年', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:42,364 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='。\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:42,380 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:42,396 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:42,412 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='关键', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:42,428 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='事件', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:42,443 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:42,459 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content=':', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:42,475 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='贝尔', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:42,491 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='在', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:42,507 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:42,523 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='8', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:42,539 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='7', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:42,555 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='6', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:42,571 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='年', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:42,587 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='3', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:42,603 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='月', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:42,619 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:42,635 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:42,651 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='日', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:42,667 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='成功', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:42,683 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='进行了', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:42,699 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='人类', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:42,715 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='历史上', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:42,731 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='第一次', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:42,748 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='通过', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:42,763 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='电话', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:42,779 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='进行', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:42,795 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:42,811 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='语音', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:42,828 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='通话', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:42,843 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='。\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:42,859 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:42,875 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:42,891 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='专利', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:42,907 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='申请', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:42,923 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:42,939 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content=':', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:42,956 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='同年', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:42,972 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='他', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:42,987 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='获得了', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:43,003 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='美国', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:43,019 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='专利', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:43,035 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='局', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:43,051 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='颁发', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:43,066 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:43,082 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='电话', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:43,098 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='专利', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:43,114 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:43,130 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='No', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:43,146 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='.', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:43,162 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:43,178 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:43,193 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='7', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:43,209 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='4', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:43,225 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:43,241 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='4', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:43,257 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='6', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:43,273 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='5', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:43,289 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content=')', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:43,305 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='。\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:43,321 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:43,337 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:43,353 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='其他', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:43,369 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='贡献', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:43,384 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:43,400 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content=':', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:43,416 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='除了', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:43,432 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='发明', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:43,448 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='电话', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:43,464 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='外', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:43,480 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:43,496 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='贝尔', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:43,512 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='还', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:43,528 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='对', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:43,544 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='听力', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:43,560 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='学', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:43,581 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='、', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:43,592 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='航空', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:43,607 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='科学', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:43,623 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='等领域', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:43,639 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='有所', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:43,655 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='贡献', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:43,671 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='。\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:43,687 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='如果您', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:43,703 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='需要', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:43,720 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='了解更多', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:43,735 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='关于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:43,750 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='电话', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:43,766 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='发展', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:43,782 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='史', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:43,798 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='或其他', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:43,814 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='相关', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:43,830 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='知识', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:43,846 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content=',请', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:43,862 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='告知', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:43,879 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='我', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:43,895 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:43,911 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='我可以', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:43,927 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='为您提供', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:43,943 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='更', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:43,959 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='全面', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:43,975 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='的信息', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:43,991 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:30:44,009 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9b16ad4d7e644353a87e2462907bb34a', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason='stop', index=0, logprobs=None, stop_reason=None)], created=1762324240, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:06,880 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role='assistant', tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:06,882 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='根据', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:06,903 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='您', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:06,921 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='提供的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:06,939 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='知识', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:06,957 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='内容', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:06,975 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:06,993 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='我', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:07,011 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='无法', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:07,028 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='准确', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:07,046 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='回答', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:07,064 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='关于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:07,081 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='Python', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:07,099 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='中', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:07,117 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='列表', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:07,134 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='和', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:07,152 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='元', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:07,170 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='组', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:07,187 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='主要', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:07,205 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='区', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:07,223 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='别的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:07,240 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='问题', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:07,258 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:07,275 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='您', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:07,293 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='提供的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:07,324 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='知识', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:07,340 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='内容', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:07,356 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='主要', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:07,371 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='涉及', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:07,387 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content=':\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:07,403 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:07,419 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='.', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:07,435 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:07,450 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content=' 综', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:07,466 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='合', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:07,482 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='布', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:07,498 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='线', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:07,514 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='系统的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:07,530 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='测试', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:07,546 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='要求', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:07,562 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:07,577 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='8', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:07,593 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='.', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:07,609 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:07,625 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='.', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:07,641 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='5', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:07,656 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='、', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:07,672 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='8', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:07,688 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='.', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:07,704 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:07,720 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='.', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:07,736 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='6', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:07,751 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='条', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:07,767 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content=')\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:07,783 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='2', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:07,799 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='.', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:07,815 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:07,830 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content=' 功能', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:07,846 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='房间', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:07,862 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='清单', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:07,878 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='相关', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:07,894 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='操作', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:07,910 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='流程', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:07,926 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:07,942 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='3', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:07,958 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='.', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:07,974 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:07,991 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content=' 客', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:08,007 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='户', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:08,023 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='管理系统', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:08,039 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='的新', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:08,055 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='建', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:08,071 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='流程', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:08,087 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:08,103 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='这些', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:08,119 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='内容', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:08,134 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='与', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:08,150 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='Python', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:08,166 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='编程', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:08,182 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='语言', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:08,198 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='中的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:08,214 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='数据', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:08,230 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='类型', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:08,246 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='差异', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:08,261 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='无关', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:08,277 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='。\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:08,293 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='不过', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:08,309 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='我可以', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:08,325 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='为您', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:08,341 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='详细', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:08,357 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='解释', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:08,372 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='Python', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:08,389 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='中', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:08,405 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='列表', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:08,420 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='和', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:08,439 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='元', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:08,452 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='组', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:08,468 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='的主要', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:08,484 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='区别', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:08,500 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content=':\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:08,516 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='##', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:08,531 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content=' Python', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:08,547 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='中', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:08,564 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='列表', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:08,579 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='和', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:08,595 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='元', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:08,611 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='组', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:08,627 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='的主要', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:08,642 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='区别', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:08,659 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content=':\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:08,674 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='###', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:08,690 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:08,706 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:08,722 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='.', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:08,738 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:08,754 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='可', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:08,770 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='变', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:08,786 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='性', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:08,802 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='**\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:08,817 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:08,834 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:08,849 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='列表', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:08,865 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:08,881 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='List', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:08,897 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content=')', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:08,913 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:08,929 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content=':', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:08,945 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='可', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:08,961 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='变', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:08,977 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='对象', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:08,992 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:09,008 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='创建', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:09,024 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='后', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:09,040 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='可以', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:09,056 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='修改', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:09,072 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='、', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:09,088 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='添加', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:09,103 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='、', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:09,119 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='删除', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:09,135 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='元素', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:09,151 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:09,167 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:09,183 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:09,199 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='元', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:09,215 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='组', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:09,230 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:09,246 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='Tuple', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:09,262 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content=')', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:09,278 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:09,294 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content=':', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:09,310 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='不可', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:09,325 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='变', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:09,342 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='对象', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:09,357 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:09,373 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='创建', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:09,389 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='后', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:09,405 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='不能', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:09,422 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='修改', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:09,437 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:09,453 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='###', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:09,469 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:09,484 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='2', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:09,500 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='.', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:09,516 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:09,532 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='语法', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:09,548 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='表示', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:09,564 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='**\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:09,579 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:09,595 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:09,611 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='列表', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:09,627 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:09,643 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content=':', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:09,659 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='用', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:09,675 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='方', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:09,690 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='括', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:09,706 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='号', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:09,722 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='`', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:09,738 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='[]', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:09,754 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='`', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:09,770 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='表示', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:09,786 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:09,802 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='如', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:09,817 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='`', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:09,833 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='[', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:09,849 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:09,865 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:09,881 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:09,896 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='2', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:09,912 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:09,928 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:09,944 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='3', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:09,960 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content=']', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:09,976 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='`\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:09,992 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:10,008 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:10,024 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='元', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:10,039 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='组', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:10,055 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:10,071 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content=':', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:10,087 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='用', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:10,103 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='圆', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:10,119 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='括', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:10,135 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='号', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:10,151 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='`', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:10,167 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='()`', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:10,182 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='表示', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:10,199 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:10,214 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='如', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:10,230 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='`(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:10,246 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:10,262 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:10,278 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:10,293 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='2', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:10,309 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:10,329 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:10,341 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='3', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:10,357 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content=')', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:10,373 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='`\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:10,389 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='###', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:10,405 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:10,420 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='3', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:10,436 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='.', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:10,452 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:10,468 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='性能', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:10,483 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='**\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:10,499 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:10,515 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:10,531 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='列表', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:10,547 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:10,563 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content=':', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:10,580 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='由于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:10,596 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='可', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:10,612 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='变', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:10,628 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='性', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:10,644 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:10,660 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='操作', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:10,676 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='相对', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:10,692 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='慢', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:10,707 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='一些', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:10,724 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:10,740 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:10,757 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:10,774 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='元', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:10,790 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='组', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:10,807 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:10,824 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content=':', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:10,841 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='由于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:10,858 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='不可', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:10,875 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='变', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:10,892 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='性', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:10,908 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:10,925 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='访问', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:10,941 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='速度', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:10,957 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='更快', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:10,974 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:10,990 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='内存', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:11,006 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='占用', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:11,022 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='更', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:11,039 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='少', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:11,055 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:11,072 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='###', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:11,088 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:11,104 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='4', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:11,121 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='.', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:11,136 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:11,153 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='方法', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:11,170 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='支持', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:11,186 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='**\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:11,202 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:11,218 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:11,234 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='列表', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:11,250 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:11,266 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content=':', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:11,286 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='支持', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:11,299 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='丰富的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:11,316 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='修改', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:11,333 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='方法', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:11,350 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='如', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:11,366 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='`', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:11,383 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='append', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:11,400 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='()', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:11,417 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='`,', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:11,433 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content=' `', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:11,450 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='remove', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:11,467 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='()', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:11,484 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='`,', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:11,501 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content=' `', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:11,518 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='sort', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:11,535 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='()`', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:11,551 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='等', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:11,568 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:11,585 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:11,601 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:11,618 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='元', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:11,636 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='组', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:11,653 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:11,672 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content=':', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:11,688 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='只', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:11,705 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='支持', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:11,721 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='查询', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:11,737 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='方法', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:11,753 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='如', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:11,770 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='`', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:11,786 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='count', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:11,801 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='()', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:11,817 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='`,', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:11,833 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content=' `', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:11,849 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='index', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:11,865 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='()`', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:11,881 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='等', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:11,897 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:11,913 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='###', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:11,929 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:11,945 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='5', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:11,961 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='.', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:11,977 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:11,993 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='使用', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:12,009 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='场景', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:12,025 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='**\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:12,041 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:12,056 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:12,072 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='列表', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:12,088 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:12,104 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content=':', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:12,120 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='适合', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:12,137 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='需要', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:12,152 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='频繁', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:12,168 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='修改', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:12,184 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='的数据', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:12,200 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='集合', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:12,216 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:12,232 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:12,248 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:12,264 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='元', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:12,280 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='组', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:12,295 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:12,311 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content=':', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:12,328 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='适合', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:12,344 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='存储', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:12,360 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='不变', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:12,375 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='的数据', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:12,391 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:12,407 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='如', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:12,423 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='坐标', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:12,439 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='、', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:12,455 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='配置', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:12,471 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='信息', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:12,487 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='等', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:12,502 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:12,518 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='如果您', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:12,535 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='需要', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:12,550 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='了解', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:12,566 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='综合', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:12,582 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='布', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:12,598 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='线', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:12,614 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='系统', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:12,630 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='或', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:12,646 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='客户', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:12,661 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='管理', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:12,677 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='系统的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:12,693 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='相关内容', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:12,709 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:12,725 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='我可以', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:12,741 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='基于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:12,757 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='您', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:12,773 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='提供的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:12,790 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='知识', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:12,803 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='内容', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:12,820 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='来', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:12,836 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='回答', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:12,852 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:12,868 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-e190d956e7614bd39f7e464f23f79253', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason='stop', index=0, logprobs=None, stop_reason=None)], created=1762324266, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:14,006 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role='assistant', tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:14,008 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='第一次', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:14,022 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='工业', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:14,039 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='革命', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:14,055 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='开始', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:14,071 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:14,087 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:14,102 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:14,119 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='8', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:14,136 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='世纪', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:14,154 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='末', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:14,166 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='期', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:14,182 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:14,198 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:14,214 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='大约', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:14,230 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='在', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:14,246 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:14,262 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:14,278 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='7', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:14,294 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='6', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:14,310 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:14,326 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='年代', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:14,342 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:14,358 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='至', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:14,374 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:14,389 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:14,406 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='8', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:14,422 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='4', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:14,438 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:14,454 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='年代', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:14,470 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:14,485 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='之间', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:14,501 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:14,517 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='它', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:14,533 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='起', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:14,552 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='源于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:14,566 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='英国', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:14,582 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content=',并', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:14,597 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='逐渐', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:14,614 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='扩展', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:14,629 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='到', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:14,645 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='欧洲', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:14,661 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='和', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:14,677 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='北美', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:14,693 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='地区', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:14,712 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='。\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:14,725 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='###', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:14,741 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:14,757 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='详细', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:14,774 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='背景', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:14,790 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content=':\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:14,806 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:14,821 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='.', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:14,837 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:14,853 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='时间', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:14,870 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='范围', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:14,885 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:14,902 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content=':\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:14,917 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='  ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:14,933 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content=' -', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:14,949 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:14,965 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='一般', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:14,981 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='认为', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:14,997 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='第一次', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:15,013 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='工业', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:15,029 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='革命', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:15,045 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='始于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:15,061 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:15,077 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:15,093 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='7', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:15,109 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='6', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:15,125 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:15,141 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='年代', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:15,157 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:15,173 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='左右', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:15,189 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='。\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:15,205 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='  ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:15,221 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content=' -', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:15,237 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content=' 结', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:15,253 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='束', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:15,269 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='时间', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:15,285 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='大致', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:15,301 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='在', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:15,317 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:15,333 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:15,349 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='8', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:15,365 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='4', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:15,381 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:15,396 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='年代', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:15,412 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:15,429 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:15,444 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='标志着', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:15,461 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='从', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:15,476 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='手工', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:15,492 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='生产', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:15,508 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='向', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:15,524 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='机器', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:15,540 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='生产的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:15,557 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='转变', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:15,572 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='基本', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:15,588 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='完成', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:15,604 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='。\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:15,620 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='2', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:15,637 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='.', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:15,652 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:15,668 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='起源', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:15,684 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='地', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:15,700 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:15,716 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content=':\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:15,732 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='  ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:15,747 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content=' -', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:15,763 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:15,779 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content=' 工', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:15,795 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='业', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:15,811 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='革命', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:15,827 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='最早', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:15,843 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='发生在', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:15,859 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:15,875 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='英国', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:15,891 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:15,907 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:15,923 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='因其', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:15,939 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='具备', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:15,955 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='了', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:15,971 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='发展', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:15,987 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='工业', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:16,003 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='所需的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:16,019 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='条件', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:16,035 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:16,051 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='如', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:16,067 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='丰富的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:16,083 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='煤炭', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:16,098 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='资源', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:16,114 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='、', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:16,131 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='充足的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:16,147 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='资本', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:16,163 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='、', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:16,179 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='劳动力', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:16,194 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='以及', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:16,210 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='稳定的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:16,226 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='政', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:16,242 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='局', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:16,258 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='等', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:16,274 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='。\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:16,290 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='3', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:16,306 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='.', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:16,322 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:16,338 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='关键', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:16,354 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='特征', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:16,370 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:16,386 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content=':\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:16,402 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='  ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:16,418 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content=' -', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:16,434 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content=' 使用', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:16,451 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:16,466 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='蒸汽', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:16,482 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='机', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:16,498 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:16,514 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='作为', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:16,530 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='动力', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:16,546 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='源', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:16,562 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:16,578 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='推动', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:16,594 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='纺织', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:16,610 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='、', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:16,626 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='冶金', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:16,642 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='、', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:16,658 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='交通运输', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:16,674 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='等行业', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:16,690 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='的发展', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:16,706 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content=';\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:16,722 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='  ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:16,739 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content=' -', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:16,755 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:16,771 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content=' 手', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:16,787 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='工', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:16,802 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='劳动', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:16,819 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='被', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:16,834 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='机械化', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:16,850 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='替代', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:16,866 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content=';\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:16,882 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='  ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:16,898 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content=' -', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:16,914 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:16,930 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:16,947 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content=' 城', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:16,964 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='市', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:16,981 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='化进程', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:16,997 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='加快', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:17,014 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:17,030 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='大量', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:17,046 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='人口', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:17,062 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='从', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:17,078 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='农村', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:17,094 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='迁', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:17,110 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='移到', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:17,126 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='城市', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:17,144 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content=';\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:17,162 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='  ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:17,174 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content=' -', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:17,190 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:17,206 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content=' 社', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:17,222 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='会', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:17,238 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='结构', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:17,254 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='发生', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:17,270 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='重大', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:17,286 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='变化', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:17,302 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:17,318 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='资产', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:17,334 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='阶级', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:17,350 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='与', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:17,366 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='无', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:17,382 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='产', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:17,397 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='阶级', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:17,413 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='逐渐', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:17,429 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='形成', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:17,445 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='。\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:17,461 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='4', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:17,477 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='.', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:17,493 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:17,509 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='重要', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:17,525 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='发明', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:17,541 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='和技术', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:17,557 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='进步', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:17,576 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:17,592 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content=':\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:17,605 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='  ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:17,621 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content=' -', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:17,636 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:17,652 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:17,668 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content=' 詹', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:17,684 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='姆', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:17,700 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='斯', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:17,716 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='·', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:17,732 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='哈', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:17,748 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='格', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:17,764 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='里', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:17,780 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='夫', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:17,796 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='斯', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:17,812 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='发明', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:17,828 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='了', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:17,844 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='“', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:17,860 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='珍', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:17,876 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='妮', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:17,892 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='纺', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:17,908 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='纱', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:17,924 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='机', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:17,940 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='”', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:17,956 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:17,972 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:17,988 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='7', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:18,003 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='6', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:18,020 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='9', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:18,036 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='年', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:18,055 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content=')', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:18,069 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content=';\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:18,085 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='  ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:18,102 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content=' -', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:18,117 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:18,135 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:18,149 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content=' 瓦', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:18,165 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='特', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:18,182 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='改良', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:18,198 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='蒸汽', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:18,214 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='机', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:18,230 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:18,246 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:18,262 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='7', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:18,278 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='8', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:18,294 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:18,310 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='年', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:18,326 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content=')', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:18,343 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content=';\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:18,358 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='  ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:18,374 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content=' -', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:18,390 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:18,406 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:18,422 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content=' 铁', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:18,438 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='路', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:18,454 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='运输', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:18,471 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='的发展', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:18,487 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:18,503 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='如', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:18,520 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:18,535 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='8', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:18,551 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='2', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:18,567 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='5', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:18,583 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='年', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:18,599 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='第一条', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:18,614 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='客运', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:18,631 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='铁路', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:18,651 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='开通', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:18,663 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content=')', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:18,679 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content=';\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:18,696 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='  ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:18,712 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content=' -', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:18,730 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:18,745 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:18,762 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content=' 纺', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:18,778 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='织', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:18,791 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='业', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:18,810 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='、', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:18,822 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='采矿', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:18,838 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='业', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:18,858 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='和', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:18,874 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='冶金', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:18,890 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='业', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:18,902 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='的技术', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:18,918 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='革新', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:18,934 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='。\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:18,950 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='因此', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:18,966 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:18,983 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='第一次', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:18,999 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='工业', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:19,015 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='革命', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:19,031 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:19,047 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='人类', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:19,063 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='历史上', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:19,079 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='一次', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:19,095 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='深刻的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:19,111 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='经济', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:19,127 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='和社会', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:19,143 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='变革', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:19,159 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:19,175 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='其', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:19,191 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='核心', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:19,207 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='是从', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:19,223 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='农业', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:19,242 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='社会', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:19,258 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='向', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:19,271 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='工业', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:19,287 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='社会', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:19,303 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='过渡', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:19,319 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='的重要', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:19,335 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='阶段', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:19,351 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:19,368 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-29c71c0653224d9a9a89f1dfa54ed2a0', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason='stop', index=0, logprobs=None, stop_reason=None)], created=1762324273, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:20,436 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role='assistant', tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:20,438 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='根据', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:20,459 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='您', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:20,476 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='提供的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:20,492 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='知识', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:20,508 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='内容', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:20,524 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:20,540 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='我', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:20,556 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='无法', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:20,573 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='找到', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:20,588 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='关于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:20,605 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='水', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:20,623 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:20,638 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='化学', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:20,654 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='式', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:20,670 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='的信息', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:20,686 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='。\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:20,698 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='不过', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:20,718 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='我可以', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:20,734 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='为您提供', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:20,747 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='准确', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:20,765 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='的答案', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:20,782 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content=':\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:20,795 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='水', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:20,813 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:20,826 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='化学', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:20,842 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='式', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:20,858 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:20,874 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:20,890 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='H', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:20,906 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='₂', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:20,925 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='O', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:20,941 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:20,957 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='。\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:20,970 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='详细', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:20,986 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='解释', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:21,001 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content=':\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:21,021 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:21,032 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:21,049 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:21,065 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content=' 水', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:21,081 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='分子', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:21,100 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='由', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:21,113 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='2', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:21,128 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='个', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:21,146 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='氢', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:21,164 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='原子', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:21,180 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:21,192 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='H', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:21,211 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content=')', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:21,224 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='和', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:21,243 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:21,256 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='个', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:21,272 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='氧', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:21,287 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='原子', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:21,303 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:21,320 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='O', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:21,336 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content=')', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:21,352 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='组成', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:21,368 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:21,384 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:21,400 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:21,416 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:21,432 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content=' 每', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:21,448 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='个', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:21,464 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='水', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:21,481 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='分子', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:21,496 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='中有', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:21,514 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='2', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:21,530 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='个', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:21,544 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='氢', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:21,562 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='原子', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:21,576 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='和', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:21,592 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:21,611 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='个', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:21,627 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='氧', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:21,640 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='原子', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:21,659 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:21,675 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:21,690 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:21,706 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:21,722 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content=' 水', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:21,735 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='分子', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:21,753 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='呈', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:21,770 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='V', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:21,781 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='字', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:21,802 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='形', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:21,817 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='结构', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:21,833 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:21,850 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='氧', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:21,865 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='原子', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:21,881 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='与', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:21,896 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='两个', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:21,909 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='氢', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:21,925 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='原子', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:21,941 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='形成', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:21,957 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='共', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:21,973 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='价', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:21,989 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='键', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:22,005 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:22,021 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:22,037 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:22,053 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:22,069 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content=' 水', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:22,085 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='是一种', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:22,101 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='无', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:22,116 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='色', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:22,132 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='、', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:22,148 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='无', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:22,164 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='味', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:22,180 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='、', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:22,198 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='无', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:22,212 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='臭', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:22,228 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:22,244 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='液体', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:22,259 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content=',在', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:22,275 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='标准', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:22,291 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='条件下', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:22,307 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='沸', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:22,326 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='点', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:22,339 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='为', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:22,356 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:22,372 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:22,388 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:22,407 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='°C', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:22,422 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:22,439 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='冰', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:22,455 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='点', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:22,471 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='为', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:22,485 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:22,502 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='°C', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:22,521 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:22,534 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='如果您', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:22,550 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='需要', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:22,566 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='了解', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:22,584 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='关于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:22,601 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='妇', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:22,614 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='产', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:22,630 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='科', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:22,646 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='相关', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:22,661 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='服务', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:22,677 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='内容', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:22,693 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='的信息', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:22,709 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:22,725 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='我很', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:22,741 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='乐意', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:22,760 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='为您', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:22,776 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='介绍', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:22,788 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='知识', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:22,804 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='内容', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:22,819 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='中', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:22,839 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='提到', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:22,855 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:22,871 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='产', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:22,884 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='科', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:22,903 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='、', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:22,915 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='妇科', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:22,934 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='、', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:22,948 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='计划生育', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:22,963 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='科', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:22,983 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='等相关', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:22,999 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='服务', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:23,013 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='内容', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:23,028 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:31:23,044 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-71b52713fa824c3dbd603018d3ba335f', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason='stop', index=0, logprobs=None, stop_reason=None)], created=1762324280, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:25,608 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role='assistant', tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:25,609 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='根据', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:25,610 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='您', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:25,620 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='提供的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:25,636 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='知识', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:25,653 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='内容', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:25,669 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:25,685 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='其中', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:25,700 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='并未', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:25,716 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='包含', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:25,732 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='关于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:25,748 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='“', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:25,775 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='谁', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:25,779 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='发明', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:25,795 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='了', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:25,811 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='电话', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:25,829 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='”的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:25,846 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='相关信息', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:25,859 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:25,875 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='该', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:25,891 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='文档', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:25,906 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='主要', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:25,922 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='介绍', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:25,938 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='的是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:25,954 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='《', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:25,969 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='智能', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:25,985 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='建筑工程', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:26,001 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='质量', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:26,017 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='验收', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:26,036 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='规范', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:26,050 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='》', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:26,068 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='GB', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:26,083 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='5', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:26,097 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:26,115 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='3', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:26,128 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='3', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:26,147 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='9', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:26,159 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:26,175 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='2', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:26,190 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:26,209 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:26,223 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='3', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:26,242 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='的内容', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:26,255 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:26,271 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='包括', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:26,289 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='其', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:26,305 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='修订', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:26,317 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='说明', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:26,337 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='、', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:26,348 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='章节', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:26,365 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='结构', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:26,380 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='及', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:26,397 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='各', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:26,415 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='章节', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:26,429 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='的技术', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:26,447 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='要求', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:26,463 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='等', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:26,476 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:26,495 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='与', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:26,510 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='电话', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:26,523 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:26,539 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='发明', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:26,554 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='者', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:26,574 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='无关', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:26,587 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='。\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:26,605 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='不过', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:26,616 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:26,636 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='根据', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:26,652 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='通用', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:26,668 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='历史', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:26,684 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='知识', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:26,700 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:26,712 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:26,732 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='电话', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:26,744 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='是由', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:26,763 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='亚', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:26,780 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='历', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:26,793 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='山', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:26,811 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='大', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:26,827 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='·', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:26,843 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='格', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:26,856 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='雷', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:26,872 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='厄', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:26,887 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='姆', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:26,903 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='·', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:26,919 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='贝尔', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:26,935 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:26,951 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='Alexander', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:26,967 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content=' Graham', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:26,984 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content=' Bell', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:26,999 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content=')', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:27,015 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='发明', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:27,031 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:27,046 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:27,062 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:27,078 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='他在', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:27,094 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:27,109 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='8', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:27,125 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='7', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:27,141 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='6', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:27,157 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='年', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:27,173 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='获得了', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:27,189 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='电话', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:27,205 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:27,221 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='专利', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:27,236 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content=',并', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:27,252 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='成功', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:27,268 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='实现了', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:27,284 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='人类', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:27,300 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='历史上', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:27,316 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='第一次', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:27,331 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='清晰', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:27,347 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:27,363 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='语音', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:27,379 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='传输', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:27,395 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:27,411 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='因此', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:27,426 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:27,442 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='虽然', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:27,458 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='文档', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:27,474 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='未', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:27,490 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='提及', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:27,506 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='此', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:27,521 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='问题', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:27,538 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:27,553 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='但', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:27,569 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='基于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:27,585 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='常识', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:27,600 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='可以', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:27,616 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='明确', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:27,632 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='回答', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:27,648 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content=':\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:27,664 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='>', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:27,680 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:27,696 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='电话', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:27,711 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='是由', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:27,728 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='亚', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:27,743 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='历', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:27,759 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='山', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:27,775 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='大', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:27,791 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='·', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:27,806 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='格', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:27,822 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='雷', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:27,838 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='厄', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:27,853 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='姆', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:27,869 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='·', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:27,885 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='贝尔', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:27,901 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='发明', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:27,916 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:27,933 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:27,948 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:27,965 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3f2fc9755dbf4f7a8441f3af8a359edd', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason='stop', index=0, logprobs=None, stop_reason=None)], created=1762324705, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:29,098 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role='assistant', tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:29,100 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='地球上', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:29,114 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='最大的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:29,130 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='哺乳', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:29,146 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='动物', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:29,162 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:29,177 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:29,198 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='蓝', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:29,209 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='鲸', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:29,225 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:29,241 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:29,256 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='Blue', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:29,272 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content=' Whale', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:29,289 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content=')', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:29,305 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='。\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:29,321 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='###', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:29,338 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:29,354 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='详细', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:29,371 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='说明', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:29,387 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content=':\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:29,404 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:29,420 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='.', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:29,437 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:29,453 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='分类', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:29,469 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='与', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:29,486 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='特征', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:29,502 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:29,519 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content=':\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:29,535 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='  ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:29,555 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content=' -', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:29,568 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:29,584 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:29,601 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content=' 蓝', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:29,617 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='鲸', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:29,633 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='属于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:29,650 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='鲸', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:29,666 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='目', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:29,683 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:29,700 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='C', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:29,715 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='et', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:29,733 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='acea', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:29,750 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='),', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:29,766 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:29,782 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='须', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:29,797 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='鲸', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:29,814 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='亚', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:29,829 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='目', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:29,845 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:29,861 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='M', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:29,877 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='yst', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:29,892 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='ic', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:29,908 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='eti', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:29,924 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content=')', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:29,940 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='中', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:29,959 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='的一种', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:29,971 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='。\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:29,987 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='  ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:30,002 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content=' -', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:30,018 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:30,037 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content=' 它', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:30,053 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='们', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:30,068 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:30,081 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='目前已', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:30,097 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='知', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:30,113 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='地球上', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:30,129 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='体积', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:30,145 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='最大', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:30,160 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='、', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:30,179 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='重量', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:30,192 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='最', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:30,208 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='重', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:30,223 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:30,239 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='动物', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:30,255 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='。\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:30,271 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='2', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:30,286 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='.', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:30,304 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:30,318 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='体型', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:30,333 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='数据', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:30,349 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:30,365 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content=':\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:30,384 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='  ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:30,397 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content=' -', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:30,412 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:30,431 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='体', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:30,446 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='长', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:30,463 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:30,479 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content=':', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:30,494 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='成', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:30,506 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='年', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:30,522 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='蓝', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:30,539 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='鲸', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:30,554 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:30,570 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='平均', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:30,588 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='长度', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:30,604 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='约为', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:30,617 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:30,632 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='2', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:30,651 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='5', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:30,672 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='至', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:30,681 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='3', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:30,699 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:30,715 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='米', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:30,730 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:30,746 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:30,759 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='最长', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:30,774 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='可达', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:30,794 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:30,806 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='3', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:30,822 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:30,837 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='米', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:30,853 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='以上', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:30,872 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:30,884 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='。\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:30,900 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='  ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:30,916 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content=' -', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:30,932 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:30,947 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='体重', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:30,967 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:30,979 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content=':', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:30,995 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='成', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:31,010 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='年', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:31,026 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='蓝', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:31,042 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='鲸', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:31,058 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:31,074 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='体重', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:31,089 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='通常', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:31,105 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='在', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:31,124 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:31,137 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:31,152 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:31,168 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:31,184 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='至', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:31,199 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:31,215 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='5', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:31,231 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:31,247 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='吨', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:31,262 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:31,278 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='之间', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:31,294 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:31,309 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='有些', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:31,325 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='个体', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:31,341 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='甚至', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:31,357 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='超过', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:31,373 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:31,389 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:31,404 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='7', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:31,420 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:31,435 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='吨', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:31,450 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:31,467 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='。\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:31,483 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='3', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:31,499 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='.', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:31,514 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:31,530 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='生活', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:31,547 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='习', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:31,562 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='性', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:31,578 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:31,593 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content=':\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:31,609 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='  ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:31,625 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content=' -', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:31,640 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:31,656 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:31,672 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content=' 蓝', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:31,691 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='鲸', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:31,704 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='主要', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:31,720 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='栖', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:31,735 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='息', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:31,751 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='在全球', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:31,767 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='各大', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:31,783 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='洋', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:31,798 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='中', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:31,814 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:31,830 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='尤其是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:31,846 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='南极', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:31,861 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='海域', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:31,877 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='。\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:31,893 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='  ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:31,909 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content=' -', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:31,924 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:31,940 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content=' 它', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:31,956 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='们', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:31,973 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='以', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:31,988 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='磷', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:32,003 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='虾', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:32,019 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='为主要', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:32,035 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='食物', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:32,051 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='来源', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:32,066 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:32,082 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='每天', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:32,098 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='可以', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:32,113 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='消耗', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:32,129 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='多达', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:32,146 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:32,161 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='4', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:32,177 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='吨', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:32,192 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:32,208 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content=' 的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:32,224 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='磷', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:32,240 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='虾', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:32,255 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='。\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:32,271 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='  ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:32,287 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content=' -', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:32,303 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:32,318 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:32,334 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content=' 蓝', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:32,351 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='鲸', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:32,368 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='具有', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:32,384 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='迁', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:32,399 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='徙', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:32,415 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='行为', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:32,431 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content=',在', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:32,447 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='繁殖', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:32,463 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='季节', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:32,478 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='会', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:32,494 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='从', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:32,510 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='极', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:32,526 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='地', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:32,542 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='水域', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:32,557 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='游', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:32,573 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='向', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:32,589 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='热带', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:32,605 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='或', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:32,620 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='亚', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:32,636 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='热带', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:32,663 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='海域', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:32,667 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='。\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:32,683 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='4', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:32,699 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='.', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:32,715 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:32,731 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='保护', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:32,747 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='现状', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:32,763 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:32,781 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content=':\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:32,794 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='  ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:32,810 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content=' -', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:32,825 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:32,841 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='由于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:32,857 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='历史上', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:32,873 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='过度', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:32,888 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='捕', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:32,907 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='杀', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:32,920 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:32,936 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='蓝', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:32,952 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='鲸', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:32,968 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='数量', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:32,984 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='曾', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:32,999 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='急剧', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:33,015 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='下降', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:33,031 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:33,047 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='现', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:33,063 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='已被', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:33,081 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='列为', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:33,094 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='濒', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:33,110 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='危', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:33,126 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='物种', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:33,142 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='。\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:33,157 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='  ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:33,174 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content=' -', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:33,189 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:33,205 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content=' 目', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:33,221 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='前', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:33,236 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='国际', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:33,252 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='上', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:33,268 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='已', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:33,284 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='禁止', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:33,300 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='商业', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:33,319 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='捕', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:33,331 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='鲸', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:33,348 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='活动', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:33,363 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:33,379 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='但', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:33,395 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='蓝', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:33,411 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='鲸', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:33,427 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='种', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:33,442 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='群', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:33,458 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='恢复', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:33,474 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='仍', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:33,490 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='需', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:33,505 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='长期', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:33,522 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='努力', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:33,538 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='。\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:33,554 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='综', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:33,570 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='上', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:33,586 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='所述', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:33,601 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:33,617 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='蓝', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:33,633 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='鲸', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:33,649 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='不仅是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:33,665 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='地球上', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:33,681 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='现存', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:33,696 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='最大的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:33,712 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='哺乳', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:33,728 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='动物', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:33,744 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:33,760 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='也是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:33,776 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='动物', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:33,791 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='界', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:33,807 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='中', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:33,823 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='体型', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:33,839 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='最为', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:33,855 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='庞大的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:33,870 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='生物', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:33,886 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='之一', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:33,902 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:33,918 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-514505567d6f4fbfbd68c1c19bf03bbb', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason='stop', index=0, logprobs=None, stop_reason=None)], created=1762324708, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:34,980 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role='assistant', tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:34,982 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='根据', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:35,003 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='您', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:35,020 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='提供的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:35,036 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='知识', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:35,051 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='内容', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:35,067 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:35,083 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='我', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:35,099 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='无法', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:35,115 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='准确', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:35,130 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='回答', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:35,150 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='关于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:35,162 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='Python', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:35,178 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='中', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:35,193 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='列表', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:35,209 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='和', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:35,225 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='元', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:35,241 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='组', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:35,256 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='主要', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:35,272 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='区', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:35,288 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='别的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:35,303 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='问题', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:35,320 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:35,336 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='您', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:35,351 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='提供的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:35,367 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='知识', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:35,382 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='内容', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:35,398 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='主要', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:35,414 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='涉及', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:35,430 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content=':\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:35,445 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:35,461 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='.', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:35,477 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:35,492 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content=' 客', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:35,508 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='户', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:35,524 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='管理系统', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:35,540 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='操作', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:35,559 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='流程', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:35,572 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:35,587 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='B', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:35,603 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='MP', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:35,619 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='门户', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:35,635 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='客户', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:35,654 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='管理', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:35,666 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content=')\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:35,685 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='2', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:35,702 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='.', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:35,713 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:35,734 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content=' 综', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:35,747 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='合', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:35,763 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='布', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:35,780 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='线', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:35,795 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='系统的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:35,811 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='测试', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:35,826 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='要求', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:35,842 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:35,858 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='3', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:35,874 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='.', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:35,889 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:35,911 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content=' 功能', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:35,922 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='房间', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:35,938 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='清单', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:35,953 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:35,969 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='4', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:35,985 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='.', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:36,000 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:36,016 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content=' 综', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:36,032 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='合', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:36,048 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='布', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:36,063 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='线', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:36,079 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='管理', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:36,095 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='软件', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:36,110 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='功能', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:36,126 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:36,142 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='这些', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:36,158 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='内容', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:36,174 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='与', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:36,190 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='Python', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:36,205 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='编程', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:36,221 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='语言', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:36,237 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='中的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:36,253 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='列表', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:36,268 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='和', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:36,284 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='元', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:36,300 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='组', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:36,316 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='概念', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:36,331 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='无关', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:36,351 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='。\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:36,367 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='不过', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:36,380 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:36,398 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='我可以', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:36,413 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='为您', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:36,429 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='详细', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:36,442 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='解释', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:36,458 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='Python', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:36,473 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='中', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:36,489 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='列表', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:36,505 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='和', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:36,520 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='元', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:36,536 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='组', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:36,552 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='的主要', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:36,568 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='区别', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:36,584 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content=':\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:36,600 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:36,615 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='列表', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:36,631 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:36,648 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='List', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:36,668 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content=')', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:36,680 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='和', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:36,699 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='元', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:36,715 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='组', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:36,731 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:36,747 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='Tuple', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:36,759 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content=')', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:36,775 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='的主要', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:36,791 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='区别', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:36,806 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content=':', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:36,822 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='**\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:36,838 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:36,854 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='.', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:36,869 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:36,885 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='可', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:36,901 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='变', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:36,916 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='性', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:36,932 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:36,948 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content=':\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:36,964 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='  ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:36,983 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content=' -', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:36,996 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:37,015 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content=' 列', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:37,030 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='表', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:37,046 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:37,058 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='可', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:37,077 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='变', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:37,089 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:37,105 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:37,121 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='mutable', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:37,137 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='),', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:37,158 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='创建', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:37,168 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='后', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:37,188 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='可以', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:37,201 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='修改', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:37,217 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='、', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:37,233 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='添加', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:37,249 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='或', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:37,265 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='删除', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:37,280 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='元素', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:37,296 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:37,312 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='  ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:37,327 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content=' -', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:37,344 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:37,359 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content=' 元', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:37,375 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='组', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:37,391 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:37,407 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='不可', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:37,423 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='变', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:37,438 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:37,454 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:37,470 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='immutable', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:37,486 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='),', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:37,502 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='创建', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:37,518 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='后', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:37,534 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='不能', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:37,550 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='修改', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:37,566 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:37,582 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='2', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:37,598 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='.', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:37,614 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:37,629 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='语法', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:37,645 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='表示', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:37,661 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:37,677 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content=':\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:37,693 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='  ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:37,709 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content=' -', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:37,724 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:37,740 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content=' 列', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:37,756 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='表', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:37,772 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='用', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:37,788 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='方', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:37,804 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='括', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:37,819 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='号', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:37,852 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='[]', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:37,882 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='表示,', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:37,885 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='如', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:37,900 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content=':', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:37,916 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='`', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:37,933 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='my', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:37,948 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='_list', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:37,964 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content=' =', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:37,980 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content=' [', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:37,996 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:38,011 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:38,029 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:38,043 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='2', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:38,059 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:38,074 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:38,090 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='3', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:38,106 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content=']', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:38,122 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='`\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:38,138 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='  ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:38,154 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content=' -', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:38,169 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:38,185 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content=' 元', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:38,201 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='组', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:38,217 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='用', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:38,233 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='圆', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:38,249 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='括', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:38,264 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='号', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:38,280 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='()', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:38,296 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='表示', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:38,312 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:38,328 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='如', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:38,343 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content=':', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:38,359 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='`', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:38,375 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='my', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:38,390 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='_tuple', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:38,406 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content=' =', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:38,422 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content=' (', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:38,441 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:38,454 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:38,469 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:38,492 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='2', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:38,533 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content=', 3', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:38,548 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content=')', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:38,581 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='`\n\n3', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:38,632 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='.', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:38,640 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:38,649 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='性能', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:38,653 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:38,672 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content=':\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:38,691 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='   -', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:38,721 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:38,734 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content=' 元', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:38,747 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='组', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:38,762 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='由于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:38,794 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='不可', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:38,802 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='变', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:38,810 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='性', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:38,821 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content=',在', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:38,866 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='创建和', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:38,869 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='访问', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:38,891 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='时', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:38,905 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='通常', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:38,916 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='比', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:38,929 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='列表', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:38,944 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='更快', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:38,962 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:38,975 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='  ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:38,993 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content=' -', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:39,009 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:39,025 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content=' 列', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:39,042 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='表', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:39,054 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='由于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:39,074 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='需要', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:39,090 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='维护', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:39,103 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='可', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:39,122 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='变', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:39,134 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='性', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:39,150 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:39,165 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='性能', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:39,181 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='相对', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:39,199 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='较低', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:39,216 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:39,229 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='4', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:39,245 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='.', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:39,264 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:39,279 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='内存', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:39,295 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='使用', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:39,311 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:39,327 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content=':\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:39,339 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='  ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:39,355 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content=' -', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:39,371 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:39,386 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content=' 元', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:39,406 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='组', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:39,418 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='占用', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:39,436 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='更', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:39,452 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='少', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:39,467 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:39,483 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='内存', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:39,497 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='空间', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:39,516 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:39,528 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='  ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:39,545 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content=' -', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:39,561 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:39,577 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content=' 列', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:39,593 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='表', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:39,609 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='需要', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:39,628 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='额外', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:39,641 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:39,660 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='内存', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:39,673 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='来', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:39,692 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='支持', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:39,705 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='修改', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:39,720 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='操作', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:39,737 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:39,753 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='5', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:39,769 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='.', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:39,784 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:39,800 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='方法', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:39,816 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='支持', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:39,831 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:39,847 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content=':\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:39,863 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='  ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:39,880 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content=' -', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:39,895 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:39,911 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content=' 列', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:39,927 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='表', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:39,943 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='支持', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:39,959 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='丰富的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:39,976 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='修改', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:39,991 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='方法', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:40,008 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:40,023 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='append', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:40,039 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:40,055 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content=' remove', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:40,071 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:40,087 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content=' sort', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:40,103 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='等', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:40,119 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content=')\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:40,135 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='  ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:40,151 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content=' -', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:40,167 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:40,183 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content=' 元', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:40,199 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='组', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:40,215 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='只', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:40,231 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='支持', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:40,247 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='查询', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:40,263 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='方法', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:40,279 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:40,295 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='count', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:40,311 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:40,327 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content=' index', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:40,343 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='等', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:40,359 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content=')\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:40,375 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='6', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:40,395 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='.', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:40,407 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:40,423 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='使用', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:40,438 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='场景', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:40,455 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:40,470 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content=':\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:40,486 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='  ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:40,502 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content=' -', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:40,518 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:40,534 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content=' 列', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:40,550 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='表', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:40,566 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='适用于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:40,582 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='需要', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:40,598 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='频繁', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:40,614 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='修改', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:40,630 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='的数据', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:40,646 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='集合', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:40,662 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:40,678 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='  ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:40,694 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content=' -', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:40,709 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:40,725 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content=' 元', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:40,745 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='组', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:40,758 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='适用于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:40,777 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='数据', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:40,789 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='不变', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:40,806 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='且', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:40,825 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='需要', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:40,841 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='保证', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:40,857 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='安全', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:40,873 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='性的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:40,885 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='场景', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:40,902 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1c4c92a55fa043a3b5d45b5f0382b4da', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason='stop', index=0, logprobs=None, stop_reason=None)], created=1762324714, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:42,014 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role='assistant', tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:42,016 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='第一次', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:42,034 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='工业', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:42,048 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='革命', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:42,063 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='开始', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:42,079 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:42,095 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:42,111 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:42,127 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='8', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:42,147 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='世纪', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:42,163 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='末', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:42,177 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='期', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:42,194 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:42,210 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:42,227 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='大约', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:42,243 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='在', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:42,255 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:42,274 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:42,286 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='7', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:42,303 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='6', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:42,319 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:42,335 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='年代', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:42,354 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:42,367 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='至', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:42,383 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:42,399 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:42,415 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='8', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:42,430 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='4', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:42,447 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:42,462 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='年代', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:42,478 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:42,494 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='之间', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:42,514 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:42,529 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='它', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:42,545 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='起', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:42,558 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='源于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:42,577 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='英国', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:42,589 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content=',并', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:42,609 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='逐渐', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:42,621 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='扩展', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:42,637 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='到', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:42,653 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='欧洲', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:42,669 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='和', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:42,684 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='北美', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:42,700 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='地区', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:42,716 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='。\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:42,732 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='###', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:42,748 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:42,764 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='详细', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:42,779 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='背景', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:42,795 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content=':\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:42,811 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:42,830 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:42,842 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='时间', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:42,858 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='范围', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:42,878 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:42,890 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content=':', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:42,909 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='通常', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:42,921 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='认为', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:42,941 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='第一次', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:42,956 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='工业', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:42,973 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='革命', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:42,989 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='始于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:43,001 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:43,017 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='7', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:43,033 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='6', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:43,048 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:43,068 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='年代', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:43,080 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:43,096 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='结束', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:43,112 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:43,127 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:43,144 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='8', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:43,159 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='4', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:43,176 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:43,192 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='年代', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:43,210 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='。\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:43,222 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:43,239 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:43,255 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='起源', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:43,274 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='地', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:43,285 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:43,305 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content=':', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:43,321 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='英国', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:43,337 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:43,351 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='第一次', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:43,369 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='工业', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:43,381 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='革命', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:43,397 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:43,414 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='发', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:43,429 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='源', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:43,444 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='地', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:43,461 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:43,477 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='因其', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:43,492 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='拥有', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:43,508 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='丰富的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:43,524 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='煤炭', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:43,540 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='资源', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:43,556 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='、', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:43,573 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='充足的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:43,590 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='资本', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:43,607 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='以及', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:43,622 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='稳定的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:43,640 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='政', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:43,655 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='局', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:43,671 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='。\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:43,686 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:43,702 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:43,715 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='关键', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:43,731 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='标志', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:43,747 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:43,763 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content=':\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:43,779 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:43,795 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content=' -', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:43,811 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:43,827 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:43,847 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content=' 纺', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:43,862 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='织', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:43,876 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='业', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:43,894 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='的技术', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:43,910 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='革新', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:43,922 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:43,942 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='如', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:43,957 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='珍', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:43,971 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='妮', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:43,990 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='纺', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:44,001 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='纱', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:44,021 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='机', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:44,034 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='、', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:44,049 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='水', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:44,065 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='力', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:44,082 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='织', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:44,097 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='布', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:44,113 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='机', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:44,129 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='等', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:44,145 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content=')', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:44,161 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content=';\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:44,176 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:44,196 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content=' -', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:44,208 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:44,228 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:44,243 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content=' 蒸', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:44,256 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='汽', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:44,272 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='机', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:44,288 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:44,304 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='发明', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:44,319 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='与', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:44,335 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='应用', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:44,351 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:44,367 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='詹姆斯', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:44,383 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='·', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:44,399 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='瓦', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:44,415 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='特', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:44,431 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='改良', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:44,447 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='蒸汽', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:44,462 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='机', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:44,478 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content=')', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:44,494 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content=';\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:44,510 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:44,525 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content=' -', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:44,541 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:44,560 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content=' 工', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:44,576 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='厂', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:44,589 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='制度', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:44,605 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:44,621 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='兴起', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:44,637 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content=';\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:44,652 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:44,668 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content=' -', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:44,684 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content=' ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:44,700 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='交通运输', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:44,715 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='的发展', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:44,733 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:44,748 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='铁路', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:44,764 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='和', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:44,780 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='轮', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:44,796 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='船', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:44,812 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content=')', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:44,828 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='。\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:44,844 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='这些', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:44,859 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='变革', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:44,875 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='标志着', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:44,891 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='从', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:44,907 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='手工', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:44,923 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='生产', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:44,939 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='向', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:44,955 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='机器', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:44,971 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='生产的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:44,987 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='转变', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:45,003 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:45,019 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='推动', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:45,035 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='了', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:45,051 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='社会', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:45,067 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='经济', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:45,082 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='结构', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:45,098 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='的巨大', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:45,114 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='变化', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:45,130 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:45,146 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='也', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:45,162 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='奠定了', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:45,178 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='现代', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:45,194 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='工业', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:45,210 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='社会', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:45,226 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='的基础', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:45,243 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='。\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:45,259 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='>', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:45,275 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content=' 注意', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:45,291 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content=':', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:45,306 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='你', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:45,322 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='提供的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:45,338 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='知识', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:45,359 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='内容', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:45,369 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='主要', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:45,385 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='涉及', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:45,401 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='“', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:45,417 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='智能', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:45,433 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='建筑工程', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:45,448 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='质量', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:45,464 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='验收', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:45,480 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='规范', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:45,496 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='”', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:45,512 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='及', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:45,527 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='“', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:45,543 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='销售', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:45,559 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='立项', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:45,575 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='”', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:45,591 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='等内容', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:45,606 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:45,622 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='与', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:45,638 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='“', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:45,654 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='第一次', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:45,670 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='工业', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:45,685 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='革命', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:45,702 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='”的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:45,717 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='历史', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:45,733 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='问题', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:45,749 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='无关', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:45,765 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:45,781 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='因此', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:45,796 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:45,812 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='上述', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:45,828 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='答案', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:45,844 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='基于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:45,860 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='通用', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:45,875 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='历史', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:45,891 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='知识', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:45,907 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='提供', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:45,923 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:45,940 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-0cc60faae1e84901b086a188c8f308e1', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason='stop', index=0, logprobs=None, stop_reason=None)], created=1762324721, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:47,220 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role='assistant', tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:47,221 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='根据', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:47,242 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='您', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:47,258 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='提供的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:47,274 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='知识', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:47,294 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='内容', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:47,306 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:47,322 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='我', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:47,338 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='无法', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:47,357 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='回答', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:47,369 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='关于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:47,388 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='水', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:47,401 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:47,420 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='化学', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:47,432 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='式', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:47,448 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='的问题', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:47,464 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='。\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:47,482 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='您', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:47,495 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='提供的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:47,511 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='知识', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:47,530 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='内容', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:47,543 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='主要', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:47,558 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='介绍', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:47,574 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='的是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:47,590 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='医院', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:47,605 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='妇', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:47,621 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='产', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:47,640 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='科', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:47,652 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='的相关', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:47,668 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='服务', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:47,687 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='内容', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:47,700 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:47,715 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='包括', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:47,731 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='妇科', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:47,747 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='门诊', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:47,763 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='、', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:47,779 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='产', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:47,794 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='科', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:47,810 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='门诊', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:47,826 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='和', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:47,842 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='计划生育', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:47,857 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='门诊', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:47,873 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='的服务', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:47,888 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='范围', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:47,904 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:47,920 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='与', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:47,936 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='水', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:47,952 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:47,968 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='化学', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:47,983 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='式', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:47,999 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='无关', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:48,015 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='。\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:48,034 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='不过', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:48,046 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='我可以', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:48,062 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='为您提供', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:48,078 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='水', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:48,093 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:48,109 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='化学', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:48,125 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='式', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:48,141 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='的基本', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:48,157 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='信息', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:48,172 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content=':\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:48,188 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='水', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:48,204 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:48,219 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='化学', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:48,235 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='式', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:48,251 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:48,267 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content=' **', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:48,282 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='H', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:48,298 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='₂', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:48,314 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='O', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:48,330 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='**', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:48,346 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='。\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:48,361 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='详细', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:48,377 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='说明', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:48,393 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content=':\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:48,409 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:48,425 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:48,441 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:48,456 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content=' 水', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:48,472 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='分子', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:48,487 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='由', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:48,506 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='2', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:48,519 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='个', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:48,534 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='氢', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:48,550 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='原子', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:48,566 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:48,582 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='H', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:48,597 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content=')', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:48,613 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='和', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:48,629 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:48,645 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='个', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:48,660 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='氧', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:48,676 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='原子', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:48,692 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:48,707 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='O', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:48,723 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content=')', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:48,739 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='组成', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:48,755 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:48,770 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:48,786 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:48,805 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:48,817 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content=' 每', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:48,833 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='个', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:48,849 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='水', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:48,864 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='分子', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:48,880 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='中含有', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:48,896 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='2', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:48,912 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='个', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:48,927 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='氢', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:48,943 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='原子', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:48,959 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='和', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:48,975 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:48,990 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='个', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:49,006 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='氧', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:49,022 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='原子', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:49,038 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:49,053 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='-', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:49,069 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:49,085 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content=' 这', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:49,100 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='种', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:49,116 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='分子', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:49,132 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='结构', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:49,148 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='使得', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:49,164 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='水', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:49,179 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='具有', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:49,199 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='独特的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:49,214 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='物理', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:49,227 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='和', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:49,243 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='化学', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:49,258 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='性质', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:49,274 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:49,290 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='如果您', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:49,305 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='需要', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:49,320 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='了解', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:49,337 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='关于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:49,352 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='妇', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:49,368 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='产', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:49,384 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='科', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:49,400 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='服务', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:49,416 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:49,431 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='更多信息', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:49,447 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:49,463 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='我很', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:49,482 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='乐意', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:49,494 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='为您', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:49,510 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='解答', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:49,525 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:38:49,542 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3cd89a4c3cb74e478ae1a8ff64ef7324', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason='stop', index=0, logprobs=None, stop_reason=None)], created=1762324727, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:45:50,139 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8c4d358fdd9942c8be2a9376b67fe114', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role='assistant', tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325149, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:45:50,139 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8c4d358fdd9942c8be2a9376b67fe114', choices=[Choice(delta=ChoiceDelta(content='自身', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325149, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:45:50,140 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8c4d358fdd9942c8be2a9376b67fe114', choices=[Choice(delta=ChoiceDelta(content='知识', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325149, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:45:50,151 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8c4d358fdd9942c8be2a9376b67fe114', choices=[Choice(delta=ChoiceDelta(content='\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325149, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:45:50,166 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8c4d358fdd9942c8be2a9376b67fe114', choices=[Choice(delta=ChoiceDelta(content='第一次', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325149, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:45:50,183 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8c4d358fdd9942c8be2a9376b67fe114', choices=[Choice(delta=ChoiceDelta(content='工业', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325149, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:45:50,198 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8c4d358fdd9942c8be2a9376b67fe114', choices=[Choice(delta=ChoiceDelta(content='革命', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325149, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:45:50,214 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8c4d358fdd9942c8be2a9376b67fe114', choices=[Choice(delta=ChoiceDelta(content='开始', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325149, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:45:50,230 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8c4d358fdd9942c8be2a9376b67fe114', choices=[Choice(delta=ChoiceDelta(content='于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325149, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:45:50,246 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8c4d358fdd9942c8be2a9376b67fe114', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325149, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:45:50,261 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8c4d358fdd9942c8be2a9376b67fe114', choices=[Choice(delta=ChoiceDelta(content='8', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325149, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:45:50,277 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8c4d358fdd9942c8be2a9376b67fe114', choices=[Choice(delta=ChoiceDelta(content='世纪', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325149, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:45:50,292 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8c4d358fdd9942c8be2a9376b67fe114', choices=[Choice(delta=ChoiceDelta(content='末', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325149, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:45:50,308 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8c4d358fdd9942c8be2a9376b67fe114', choices=[Choice(delta=ChoiceDelta(content='期', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325149, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:45:50,323 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8c4d358fdd9942c8be2a9376b67fe114', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325149, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:45:50,339 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8c4d358fdd9942c8be2a9376b67fe114', choices=[Choice(delta=ChoiceDelta(content='大约', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325149, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:45:50,355 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8c4d358fdd9942c8be2a9376b67fe114', choices=[Choice(delta=ChoiceDelta(content='在', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325149, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:45:50,371 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8c4d358fdd9942c8be2a9376b67fe114', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325149, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:45:50,387 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8c4d358fdd9942c8be2a9376b67fe114', choices=[Choice(delta=ChoiceDelta(content='7', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325149, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:45:50,402 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8c4d358fdd9942c8be2a9376b67fe114', choices=[Choice(delta=ChoiceDelta(content='6', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325149, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:45:50,418 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8c4d358fdd9942c8be2a9376b67fe114', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325149, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:45:50,434 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8c4d358fdd9942c8be2a9376b67fe114', choices=[Choice(delta=ChoiceDelta(content='年至', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325149, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:45:50,450 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8c4d358fdd9942c8be2a9376b67fe114', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325149, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:45:50,465 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8c4d358fdd9942c8be2a9376b67fe114', choices=[Choice(delta=ChoiceDelta(content='8', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325149, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:45:50,481 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8c4d358fdd9942c8be2a9376b67fe114', choices=[Choice(delta=ChoiceDelta(content='4', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325149, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:45:50,497 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8c4d358fdd9942c8be2a9376b67fe114', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325149, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:45:50,513 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8c4d358fdd9942c8be2a9376b67fe114', choices=[Choice(delta=ChoiceDelta(content='年', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325149, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:45:50,529 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8c4d358fdd9942c8be2a9376b67fe114', choices=[Choice(delta=ChoiceDelta(content='之间', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325149, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:45:50,545 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8c4d358fdd9942c8be2a9376b67fe114', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325149, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:45:50,562 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8c4d358fdd9942c8be2a9376b67fe114', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason='stop', index=0, logprobs=None, stop_reason=None)], created=1762325149, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:45:51,666 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-706bf5dd39244cdab95ce33ea2ff4632', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role='assistant', tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325151, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:45:51,668 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-706bf5dd39244cdab95ce33ea2ff4632', choices=[Choice(delta=ChoiceDelta(content='水', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325151, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:45:51,683 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-706bf5dd39244cdab95ce33ea2ff4632', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325151, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:45:51,699 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-706bf5dd39244cdab95ce33ea2ff4632', choices=[Choice(delta=ChoiceDelta(content='化学', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325151, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:45:51,714 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-706bf5dd39244cdab95ce33ea2ff4632', choices=[Choice(delta=ChoiceDelta(content='式', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325151, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:45:51,732 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-706bf5dd39244cdab95ce33ea2ff4632', choices=[Choice(delta=ChoiceDelta(content='是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325151, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:45:51,746 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-706bf5dd39244cdab95ce33ea2ff4632', choices=[Choice(delta=ChoiceDelta(content='H', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325151, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:45:51,762 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-706bf5dd39244cdab95ce33ea2ff4632', choices=[Choice(delta=ChoiceDelta(content='₂', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325151, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:45:51,778 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-706bf5dd39244cdab95ce33ea2ff4632', choices=[Choice(delta=ChoiceDelta(content='O', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325151, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:45:51,793 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-706bf5dd39244cdab95ce33ea2ff4632', choices=[Choice(delta=ChoiceDelta(content='。\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325151, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:45:51,809 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-706bf5dd39244cdab95ce33ea2ff4632', choices=[Choice(delta=ChoiceDelta(content='但是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325151, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:45:51,824 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-706bf5dd39244cdab95ce33ea2ff4632', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325151, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:45:51,840 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-706bf5dd39244cdab95ce33ea2ff4632', choices=[Choice(delta=ChoiceDelta(content='根据', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325151, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:45:51,856 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-706bf5dd39244cdab95ce33ea2ff4632', choices=[Choice(delta=ChoiceDelta(content='您', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325151, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:45:51,871 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-706bf5dd39244cdab95ce33ea2ff4632', choices=[Choice(delta=ChoiceDelta(content='提供的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325151, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:45:51,886 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-706bf5dd39244cdab95ce33ea2ff4632', choices=[Choice(delta=ChoiceDelta(content='知识', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325151, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:45:51,902 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-706bf5dd39244cdab95ce33ea2ff4632', choices=[Choice(delta=ChoiceDelta(content='片段', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325151, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:45:51,918 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-706bf5dd39244cdab95ce33ea2ff4632', choices=[Choice(delta=ChoiceDelta(content='内容', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325151, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:45:51,934 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-706bf5dd39244cdab95ce33ea2ff4632', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325151, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:45:51,949 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-706bf5dd39244cdab95ce33ea2ff4632', choices=[Choice(delta=ChoiceDelta(content='其中', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325151, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:45:51,965 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-706bf5dd39244cdab95ce33ea2ff4632', choices=[Choice(delta=ChoiceDelta(content='并未', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325151, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:45:51,981 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-706bf5dd39244cdab95ce33ea2ff4632', choices=[Choice(delta=ChoiceDelta(content='包含', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325151, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:45:51,996 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-706bf5dd39244cdab95ce33ea2ff4632', choices=[Choice(delta=ChoiceDelta(content='关于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325151, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:45:52,012 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-706bf5dd39244cdab95ce33ea2ff4632', choices=[Choice(delta=ChoiceDelta(content='水', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325151, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:45:52,028 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-706bf5dd39244cdab95ce33ea2ff4632', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325151, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:45:52,047 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-706bf5dd39244cdab95ce33ea2ff4632', choices=[Choice(delta=ChoiceDelta(content='化学', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325151, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:45:52,061 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-706bf5dd39244cdab95ce33ea2ff4632', choices=[Choice(delta=ChoiceDelta(content='式的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325151, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:45:52,075 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-706bf5dd39244cdab95ce33ea2ff4632', choices=[Choice(delta=ChoiceDelta(content='相关信息', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325151, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:45:52,091 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-706bf5dd39244cdab95ce33ea2ff4632', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325151, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:45:52,108 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-706bf5dd39244cdab95ce33ea2ff4632', choices=[Choice(delta=ChoiceDelta(content='因此', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325151, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:45:52,123 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-706bf5dd39244cdab95ce33ea2ff4632', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325151, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:45:52,142 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-706bf5dd39244cdab95ce33ea2ff4632', choices=[Choice(delta=ChoiceDelta(content='此', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325151, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:45:52,155 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-706bf5dd39244cdab95ce33ea2ff4632', choices=[Choice(delta=ChoiceDelta(content='信息', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325151, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:45:52,173 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-706bf5dd39244cdab95ce33ea2ff4632', choices=[Choice(delta=ChoiceDelta(content='并非', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325151, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:45:52,186 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-706bf5dd39244cdab95ce33ea2ff4632', choices=[Choice(delta=ChoiceDelta(content='来源于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325151, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:45:52,205 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-706bf5dd39244cdab95ce33ea2ff4632', choices=[Choice(delta=ChoiceDelta(content='您', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325151, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:45:52,220 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-706bf5dd39244cdab95ce33ea2ff4632', choices=[Choice(delta=ChoiceDelta(content='所提供的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325151, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:45:52,236 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-706bf5dd39244cdab95ce33ea2ff4632', choices=[Choice(delta=ChoiceDelta(content='文档', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325151, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:45:52,248 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-706bf5dd39244cdab95ce33ea2ff4632', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325151, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:45:52,268 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-706bf5dd39244cdab95ce33ea2ff4632', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason='stop', index=0, logprobs=None, stop_reason=None)], created=1762325151, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:28,600 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role='assistant', tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:28,601 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='电话', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:28,602 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:28,613 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='发明', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:28,630 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='通常', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:28,646 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='归', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:28,663 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='功', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:28,679 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:28,694 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='亚', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:28,710 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='历', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:28,726 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='山', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:28,741 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='大', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:28,758 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='·', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:28,774 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='格', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:28,791 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='雷', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:28,807 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='厄', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:28,824 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='姆', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:28,840 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='·', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:28,857 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='贝尔', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:28,873 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:28,889 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='Alexander', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:28,908 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content=' Graham', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:28,924 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content=' Bell', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:28,940 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content=')。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:28,956 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='他', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:28,972 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:28,988 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:29,003 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='8', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:29,019 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='7', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:29,035 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='6', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:29,051 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='年', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:29,066 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='获得了', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:29,083 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='电话', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:29,099 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:29,114 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='专利', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:29,133 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content=',并', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:29,145 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='被认为是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:29,161 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='第一个', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:29,177 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='成功', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:29,193 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='实现', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:29,208 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='语音', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:29,224 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='传输', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:29,240 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='的人', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:29,256 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:29,272 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='虽然', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:29,287 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='其他', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:29,303 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='一些', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:29,320 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='人', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:29,335 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='如', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:29,351 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='伊', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:29,367 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='莱', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:29,386 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='沙', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:29,399 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='·', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:29,417 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='格', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:29,432 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='雷', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:29,448 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:29,464 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='E', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:29,480 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='lish', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:29,496 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='a', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:29,512 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content=' Gray', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:29,527 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content=')', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:29,543 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='和', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:29,560 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='安东尼', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:29,575 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='奥', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:29,591 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='·', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:29,607 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='梅', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:29,623 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='乌', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:29,641 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='奇', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:29,654 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:29,670 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='Ant', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:29,686 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='onio', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:29,702 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content=' Me', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:29,718 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='ucci', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:29,734 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content=')', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:29,751 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='也', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:29,768 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='独立', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:29,786 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='地', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:29,804 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='进行了', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:29,820 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='相关', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:29,836 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='研究', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:29,852 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:29,868 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='但', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:29,884 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='贝尔', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:29,900 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:29,916 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='发明', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:29,934 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='被', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:29,950 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='广泛', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:29,966 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='认可', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:29,981 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='为', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:29,998 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='现代', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:30,013 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='电话', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:30,029 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='的基础', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:30,045 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='。\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:30,061 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='请注意', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:30,077 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:30,096 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='以上', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:30,108 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='信息', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:30,124 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='并非', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:30,140 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='来自', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:30,156 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='您', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:30,172 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='提供的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:30,188 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='知识', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:30,204 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='片段', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:30,219 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='内容', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:30,235 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:30,252 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-de5449ac0ce043c99046f4f22c796e1a', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason='stop', index=0, logprobs=None, stop_reason=None)], created=1762325188, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:46,527 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b2fd3acb72fe4831a7fe5504d6f4d41c', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role='assistant', tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325206, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:46,529 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b2fd3acb72fe4831a7fe5504d6f4d41c', choices=[Choice(delta=ChoiceDelta(content='地球上', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325206, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:46,544 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b2fd3acb72fe4831a7fe5504d6f4d41c', choices=[Choice(delta=ChoiceDelta(content='最大的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325206, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:46,560 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b2fd3acb72fe4831a7fe5504d6f4d41c', choices=[Choice(delta=ChoiceDelta(content='哺乳', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325206, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:46,577 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b2fd3acb72fe4831a7fe5504d6f4d41c', choices=[Choice(delta=ChoiceDelta(content='动物', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325206, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:46,593 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b2fd3acb72fe4831a7fe5504d6f4d41c', choices=[Choice(delta=ChoiceDelta(content='是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325206, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:46,609 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b2fd3acb72fe4831a7fe5504d6f4d41c', choices=[Choice(delta=ChoiceDelta(content='蓝', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325206, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:46,625 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b2fd3acb72fe4831a7fe5504d6f4d41c', choices=[Choice(delta=ChoiceDelta(content='鲸', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325206, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:46,641 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b2fd3acb72fe4831a7fe5504d6f4d41c', choices=[Choice(delta=ChoiceDelta(content='。\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325206, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:46,656 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b2fd3acb72fe4831a7fe5504d6f4d41c', choices=[Choice(delta=ChoiceDelta(content='【', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325206, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:46,672 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b2fd3acb72fe4831a7fe5504d6f4d41c', choices=[Choice(delta=ChoiceDelta(content='示', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325206, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:46,688 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b2fd3acb72fe4831a7fe5504d6f4d41c', choices=[Choice(delta=ChoiceDelta(content='意图', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325206, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:46,704 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b2fd3acb72fe4831a7fe5504d6f4d41c', choices=[Choice(delta=ChoiceDelta(content='序', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325206, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:46,720 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b2fd3acb72fe4831a7fe5504d6f4d41c', choices=[Choice(delta=ChoiceDelta(content='号', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325206, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:46,736 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b2fd3acb72fe4831a7fe5504d6f4d41c', choices=[Choice(delta=ChoiceDelta(content='_', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325206, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:46,752 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b2fd3acb72fe4831a7fe5504d6f4d41c', choices=[Choice(delta=ChoiceDelta(content='编号', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325206, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:46,768 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b2fd3acb72fe4831a7fe5504d6f4d41c', choices=[Choice(delta=ChoiceDelta(content='】', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325206, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:46,784 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b2fd3acb72fe4831a7fe5504d6f4d41c', choices=[Choice(delta=ChoiceDelta(content='\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325206, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:46,800 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b2fd3acb72fe4831a7fe5504d6f4d41c', choices=[Choice(delta=ChoiceDelta(content='如', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325206, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:46,816 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b2fd3acb72fe4831a7fe5504d6f4d41c', choices=[Choice(delta=ChoiceDelta(content='需', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325206, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:46,831 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b2fd3acb72fe4831a7fe5504d6f4d41c', choices=[Choice(delta=ChoiceDelta(content='了解更多', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325206, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:46,847 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b2fd3acb72fe4831a7fe5504d6f4d41c', choices=[Choice(delta=ChoiceDelta(content='关于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325206, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:46,862 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b2fd3acb72fe4831a7fe5504d6f4d41c', choices=[Choice(delta=ChoiceDelta(content='蓝', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325206, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:46,878 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b2fd3acb72fe4831a7fe5504d6f4d41c', choices=[Choice(delta=ChoiceDelta(content='鲸', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325206, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:46,894 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b2fd3acb72fe4831a7fe5504d6f4d41c', choices=[Choice(delta=ChoiceDelta(content='的信息', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325206, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:46,910 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b2fd3acb72fe4831a7fe5504d6f4d41c', choices=[Choice(delta=ChoiceDelta(content=',请', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325206, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:46,927 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b2fd3acb72fe4831a7fe5504d6f4d41c', choices=[Choice(delta=ChoiceDelta(content='参考', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325206, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:46,943 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b2fd3acb72fe4831a7fe5504d6f4d41c', choices=[Choice(delta=ChoiceDelta(content='相关', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325206, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:46,959 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b2fd3acb72fe4831a7fe5504d6f4d41c', choices=[Choice(delta=ChoiceDelta(content='资料', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325206, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:46,975 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b2fd3acb72fe4831a7fe5504d6f4d41c', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325206, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:46,991 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b2fd3acb72fe4831a7fe5504d6f4d41c', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason='stop', index=0, logprobs=None, stop_reason=None)], created=1762325206, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:48,132 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-82eb1069c1494a0cb15ba857d0939fce', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role='assistant', tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:48,134 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-82eb1069c1494a0cb15ba857d0939fce', choices=[Choice(delta=ChoiceDelta(content='该', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:48,149 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-82eb1069c1494a0cb15ba857d0939fce', choices=[Choice(delta=ChoiceDelta(content='信息', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:48,165 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-82eb1069c1494a0cb15ba857d0939fce', choices=[Choice(delta=ChoiceDelta(content='不是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:48,181 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-82eb1069c1494a0cb15ba857d0939fce', choices=[Choice(delta=ChoiceDelta(content='来自', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:48,196 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-82eb1069c1494a0cb15ba857d0939fce', choices=[Choice(delta=ChoiceDelta(content='文档', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:48,212 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-82eb1069c1494a0cb15ba857d0939fce', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:48,228 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-82eb1069c1494a0cb15ba857d0939fce', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason='stop', index=0, logprobs=None, stop_reason=None)], created=1762325208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:49,378 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-51cba0badfc84527b831646fd8ecbd27', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role='assistant', tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325209, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:49,379 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-51cba0badfc84527b831646fd8ecbd27', choices=[Choice(delta=ChoiceDelta(content='自身', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325209, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:49,393 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-51cba0badfc84527b831646fd8ecbd27', choices=[Choice(delta=ChoiceDelta(content='知识', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325209, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:49,410 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-51cba0badfc84527b831646fd8ecbd27', choices=[Choice(delta=ChoiceDelta(content='\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325209, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:49,425 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-51cba0badfc84527b831646fd8ecbd27', choices=[Choice(delta=ChoiceDelta(content='第一次', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325209, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:49,441 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-51cba0badfc84527b831646fd8ecbd27', choices=[Choice(delta=ChoiceDelta(content='工业', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325209, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:49,457 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-51cba0badfc84527b831646fd8ecbd27', choices=[Choice(delta=ChoiceDelta(content='革命', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325209, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:49,473 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-51cba0badfc84527b831646fd8ecbd27', choices=[Choice(delta=ChoiceDelta(content='开始', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325209, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:49,488 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-51cba0badfc84527b831646fd8ecbd27', choices=[Choice(delta=ChoiceDelta(content='于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325209, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:49,504 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-51cba0badfc84527b831646fd8ecbd27', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325209, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:49,520 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-51cba0badfc84527b831646fd8ecbd27', choices=[Choice(delta=ChoiceDelta(content='8', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325209, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:49,536 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-51cba0badfc84527b831646fd8ecbd27', choices=[Choice(delta=ChoiceDelta(content='世纪', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325209, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:49,551 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-51cba0badfc84527b831646fd8ecbd27', choices=[Choice(delta=ChoiceDelta(content='末', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325209, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:49,567 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-51cba0badfc84527b831646fd8ecbd27', choices=[Choice(delta=ChoiceDelta(content='期', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325209, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:49,583 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-51cba0badfc84527b831646fd8ecbd27', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325209, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:49,598 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-51cba0badfc84527b831646fd8ecbd27', choices=[Choice(delta=ChoiceDelta(content='大约', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325209, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:49,614 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-51cba0badfc84527b831646fd8ecbd27', choices=[Choice(delta=ChoiceDelta(content='在', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325209, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:49,630 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-51cba0badfc84527b831646fd8ecbd27', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325209, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:49,645 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-51cba0badfc84527b831646fd8ecbd27', choices=[Choice(delta=ChoiceDelta(content='7', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325209, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:49,661 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-51cba0badfc84527b831646fd8ecbd27', choices=[Choice(delta=ChoiceDelta(content='6', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325209, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:49,676 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-51cba0badfc84527b831646fd8ecbd27', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325209, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:49,692 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-51cba0badfc84527b831646fd8ecbd27', choices=[Choice(delta=ChoiceDelta(content='年至', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325209, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:49,708 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-51cba0badfc84527b831646fd8ecbd27', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325209, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:49,724 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-51cba0badfc84527b831646fd8ecbd27', choices=[Choice(delta=ChoiceDelta(content='8', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325209, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:49,740 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-51cba0badfc84527b831646fd8ecbd27', choices=[Choice(delta=ChoiceDelta(content='4', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325209, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:49,755 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-51cba0badfc84527b831646fd8ecbd27', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325209, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:49,771 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-51cba0badfc84527b831646fd8ecbd27', choices=[Choice(delta=ChoiceDelta(content='年', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325209, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:49,787 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-51cba0badfc84527b831646fd8ecbd27', choices=[Choice(delta=ChoiceDelta(content='之间', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325209, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:49,803 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-51cba0badfc84527b831646fd8ecbd27', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325209, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:49,819 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-51cba0badfc84527b831646fd8ecbd27', choices=[Choice(delta=ChoiceDelta(content='这一', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325209, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:49,835 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-51cba0badfc84527b831646fd8ecbd27', choices=[Choice(delta=ChoiceDelta(content='时期', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325209, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:49,851 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-51cba0badfc84527b831646fd8ecbd27', choices=[Choice(delta=ChoiceDelta(content='以', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325209, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:49,866 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-51cba0badfc84527b831646fd8ecbd27', choices=[Choice(delta=ChoiceDelta(content='蒸汽', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325209, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:49,882 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-51cba0badfc84527b831646fd8ecbd27', choices=[Choice(delta=ChoiceDelta(content='机', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325209, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:49,898 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-51cba0badfc84527b831646fd8ecbd27', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325209, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:49,914 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-51cba0badfc84527b831646fd8ecbd27', choices=[Choice(delta=ChoiceDelta(content='发明', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325209, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:49,929 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-51cba0badfc84527b831646fd8ecbd27', choices=[Choice(delta=ChoiceDelta(content='和', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325209, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:49,946 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-51cba0badfc84527b831646fd8ecbd27', choices=[Choice(delta=ChoiceDelta(content='广泛应用', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325209, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:49,961 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-51cba0badfc84527b831646fd8ecbd27', choices=[Choice(delta=ChoiceDelta(content='为', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325209, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:49,977 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-51cba0badfc84527b831646fd8ecbd27', choices=[Choice(delta=ChoiceDelta(content='标志', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325209, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:49,993 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-51cba0badfc84527b831646fd8ecbd27', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325209, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:50,009 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-51cba0badfc84527b831646fd8ecbd27', choices=[Choice(delta=ChoiceDelta(content='推动', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325209, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:50,024 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-51cba0badfc84527b831646fd8ecbd27', choices=[Choice(delta=ChoiceDelta(content='了', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325209, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:50,040 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-51cba0badfc84527b831646fd8ecbd27', choices=[Choice(delta=ChoiceDelta(content='纺织', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325209, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:50,056 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-51cba0badfc84527b831646fd8ecbd27', choices=[Choice(delta=ChoiceDelta(content='、', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325209, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:50,072 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-51cba0badfc84527b831646fd8ecbd27', choices=[Choice(delta=ChoiceDelta(content='冶金', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325209, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:50,088 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-51cba0badfc84527b831646fd8ecbd27', choices=[Choice(delta=ChoiceDelta(content='、', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325209, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:50,103 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-51cba0badfc84527b831646fd8ecbd27', choices=[Choice(delta=ChoiceDelta(content='采矿', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325209, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:50,119 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-51cba0badfc84527b831646fd8ecbd27', choices=[Choice(delta=ChoiceDelta(content='等多个', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325209, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:50,135 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-51cba0badfc84527b831646fd8ecbd27', choices=[Choice(delta=ChoiceDelta(content='行业的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325209, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:50,151 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-51cba0badfc84527b831646fd8ecbd27', choices=[Choice(delta=ChoiceDelta(content='机械化', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325209, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:50,170 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-51cba0badfc84527b831646fd8ecbd27', choices=[Choice(delta=ChoiceDelta(content='生产', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325209, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:50,182 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-51cba0badfc84527b831646fd8ecbd27', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325209, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:50,198 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-51cba0badfc84527b831646fd8ecbd27', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason='stop', index=0, logprobs=None, stop_reason=None)], created=1762325209, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:51,302 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-6de18eff988a4a98b5db78ce67c3443e', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role='assistant', tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325211, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:51,304 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-6de18eff988a4a98b5db78ce67c3443e', choices=[Choice(delta=ChoiceDelta(content='水', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325211, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:51,319 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-6de18eff988a4a98b5db78ce67c3443e', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325211, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:51,334 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-6de18eff988a4a98b5db78ce67c3443e', choices=[Choice(delta=ChoiceDelta(content='化学', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325211, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:51,350 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-6de18eff988a4a98b5db78ce67c3443e', choices=[Choice(delta=ChoiceDelta(content='式', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325211, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:51,366 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-6de18eff988a4a98b5db78ce67c3443e', choices=[Choice(delta=ChoiceDelta(content='是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325211, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:51,382 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-6de18eff988a4a98b5db78ce67c3443e', choices=[Choice(delta=ChoiceDelta(content=' H', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325211, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:51,398 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-6de18eff988a4a98b5db78ce67c3443e', choices=[Choice(delta=ChoiceDelta(content='₂', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325211, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:51,413 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-6de18eff988a4a98b5db78ce67c3443e', choices=[Choice(delta=ChoiceDelta(content='O', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325211, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:51,429 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-6de18eff988a4a98b5db78ce67c3443e', choices=[Choice(delta=ChoiceDelta(content='。\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325211, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:51,445 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-6de18eff988a4a98b5db78ce67c3443e', choices=[Choice(delta=ChoiceDelta(content='该', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325211, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:51,461 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-6de18eff988a4a98b5db78ce67c3443e', choices=[Choice(delta=ChoiceDelta(content='信息', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325211, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:51,477 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-6de18eff988a4a98b5db78ce67c3443e', choices=[Choice(delta=ChoiceDelta(content='不是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325211, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:51,492 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-6de18eff988a4a98b5db78ce67c3443e', choices=[Choice(delta=ChoiceDelta(content='来自', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325211, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:51,507 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-6de18eff988a4a98b5db78ce67c3443e', choices=[Choice(delta=ChoiceDelta(content='文档', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325211, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:51,523 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-6de18eff988a4a98b5db78ce67c3443e', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325211, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:46:51,540 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-6de18eff988a4a98b5db78ce67c3443e', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason='stop', index=0, logprobs=None, stop_reason=None)], created=1762325211, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:01,583 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role='assistant', tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:01,584 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='电话', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:01,585 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:01,594 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='发明', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:01,611 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='通常', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:01,628 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='归', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:01,645 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='功', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:01,662 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:01,678 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='亚', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:01,695 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='历', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:01,713 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='山', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:01,728 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='大', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:01,751 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='·', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:01,762 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='格', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:01,778 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='雷', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:01,795 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='厄', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:01,811 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='姆', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:01,828 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='·', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:01,845 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='贝尔', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:01,862 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:01,878 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='Alexander', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:01,895 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content=' Graham', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:01,912 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content=' Bell', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:01,928 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content=')。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:01,945 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='他在', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:01,962 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:01,979 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='8', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:01,996 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='7', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:02,012 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='6', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:02,029 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='年', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:02,046 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='获得了', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:02,063 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='电话', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:02,079 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:02,096 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='专利', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:02,112 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:02,129 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='这是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:02,146 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='电话', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:02,164 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='发展', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:02,180 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='史', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:02,198 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='上的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:02,215 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='一个重要', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:02,232 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='里程碑', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:02,249 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:02,266 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='然而', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:02,283 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:02,301 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='关于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:02,318 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='电话', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:02,335 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:02,353 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='发明', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:02,370 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='存在', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:02,387 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='一些', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:02,408 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='争议', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:02,422 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:02,439 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='其他', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:02,456 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='一些', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:02,474 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='发明', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:02,491 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='家', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:02,509 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='如', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:02,525 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='伊', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:02,543 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='莱', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:02,564 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='沙', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:02,581 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='·', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:02,595 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='格', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:02,615 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='雷', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:02,635 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:02,650 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='E', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:02,663 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='lish', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:02,684 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='a', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:02,698 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content=' Gray', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:02,719 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content=')', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:02,732 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='和', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:02,750 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='安东尼', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:02,767 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='奥', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:02,785 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='·', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:02,803 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='梅', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:02,821 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='乌', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:02,838 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='奇', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:02,854 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:02,872 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='Ant', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:02,890 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='onio', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:02,909 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content=' Me', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:02,925 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='ucci', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:02,944 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content=')', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:02,964 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='也', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:02,981 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='做出了', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:02,999 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='贡献', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:03,016 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:03,033 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='尽管', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:03,048 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='如此', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:03,065 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:03,082 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='贝尔', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:03,100 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:03,117 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='专利', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:03,135 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='和', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:03,152 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='他对', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:03,169 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='电话', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:03,187 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='技术', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:03,204 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:03,222 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='改进', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:03,239 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='使', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:03,260 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='他', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:03,277 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='成为', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:03,292 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='电话', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:03,312 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='发明', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:03,327 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:03,348 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='标志性', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:03,365 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='人物', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:03,382 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='。\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:03,396 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='由于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:03,414 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='知识', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:03,432 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='片段', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:03,449 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='中', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:03,467 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='并未', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:03,485 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='提及', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:03,501 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='电话', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:03,517 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:03,535 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='发明', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:03,553 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='者', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:03,573 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:03,589 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='因此', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:03,605 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='该', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:03,626 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='信息', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:03,643 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='并非', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:03,656 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='来自', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:03,677 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='文档', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:03,694 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='内容', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:03,709 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='。\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:03,726 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='            ', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:03,746 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-1fb0705e76184350b3f5019c4ee0c1b0', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason='stop', index=0, logprobs=None, stop_reason=None)], created=1762325881, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:04,916 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role='assistant', tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:04,918 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content='地球上', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:04,932 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content='最大的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:04,952 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content='哺乳', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:04,968 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content='动物', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:04,986 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content='是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:05,004 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content='蓝', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:05,021 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content='鲸', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:05,035 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content='。\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:05,054 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content='蓝', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:05,067 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content='鲸', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:05,087 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content='属于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:05,104 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content='鲸', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:05,121 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content='目', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:05,134 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:05,152 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content='是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:05,169 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content='目前已', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:05,184 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content='知', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:05,201 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content='地球上', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:05,218 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content='最大的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:05,235 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content='动物', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:05,250 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:05,268 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content='也是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:05,290 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content='最大的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:05,307 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content='哺乳', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:05,322 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content='动物', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:05,342 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:05,355 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content='它们', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:05,376 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content='可以', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:05,388 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content='长达', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:05,407 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content='3', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:05,424 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:05,439 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content='米', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:05,455 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content='以上', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:05,476 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:05,490 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content='重', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:05,507 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content='达', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:05,523 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content='2', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:05,541 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:05,559 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:05,579 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content='吨', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:05,597 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content='左右', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:05,613 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:05,630 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content='蓝', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:05,646 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content='鲸', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:05,662 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content='不仅', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:05,681 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content='体型', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:05,695 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content='庞大', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:05,711 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:05,728 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content='而且', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:05,744 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content='拥有', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:05,765 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content='强大的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:05,778 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content='心脏', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:05,794 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content='和', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:05,812 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content='独特的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:05,828 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content='呼吸', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:05,845 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content='系统', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:05,861 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:05,878 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content='适应', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:05,894 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content='了', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:05,911 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content='海洋', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:05,928 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content='环境', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:05,944 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content='的生活', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:05,961 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content='。\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:05,977 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content='虽然', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:05,995 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content='文档', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:06,011 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content='中', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:06,028 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content='没有', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:06,046 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content='直接', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:06,061 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content='提到', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:06,078 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content='蓝', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:06,094 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content='鲸', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:06,111 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content='的信息', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:06,128 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:06,144 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content='但', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:06,161 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content='根据', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:06,178 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content='常识', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:06,195 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content='可知', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:06,211 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:06,228 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content='蓝', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:06,244 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content='鲸', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:06,261 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content='是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:06,278 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content='地球上', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:06,295 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content='最大的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:06,311 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content='哺乳', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:06,328 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content='动物', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:06,345 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:06,363 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5cfb8197458c49b4a55d0024e22a8978', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason='stop', index=0, logprobs=None, stop_reason=None)], created=1762325884, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:07,496 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5658d4ae448042a796bf84af7178e164', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role='assistant', tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325887, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:07,498 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5658d4ae448042a796bf84af7178e164', choices=[Choice(delta=ChoiceDelta(content='该', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325887, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:07,511 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5658d4ae448042a796bf84af7178e164', choices=[Choice(delta=ChoiceDelta(content='信息', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325887, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:07,528 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5658d4ae448042a796bf84af7178e164', choices=[Choice(delta=ChoiceDelta(content='不是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325887, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:07,545 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5658d4ae448042a796bf84af7178e164', choices=[Choice(delta=ChoiceDelta(content='来自', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325887, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:07,563 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5658d4ae448042a796bf84af7178e164', choices=[Choice(delta=ChoiceDelta(content='文档', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325887, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:07,578 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5658d4ae448042a796bf84af7178e164', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325887, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:07,595 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5658d4ae448042a796bf84af7178e164', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason='stop', index=0, logprobs=None, stop_reason=None)], created=1762325887, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:08,768 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-84c05fb677414013bb1caacdd680b250', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role='assistant', tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325888, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:08,769 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-84c05fb677414013bb1caacdd680b250', choices=[Choice(delta=ChoiceDelta(content='自身', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325888, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:08,784 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-84c05fb677414013bb1caacdd680b250', choices=[Choice(delta=ChoiceDelta(content='知识', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325888, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:08,801 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-84c05fb677414013bb1caacdd680b250', choices=[Choice(delta=ChoiceDelta(content='\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325888, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:08,818 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-84c05fb677414013bb1caacdd680b250', choices=[Choice(delta=ChoiceDelta(content='第一次', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325888, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:08,835 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-84c05fb677414013bb1caacdd680b250', choices=[Choice(delta=ChoiceDelta(content='工业', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325888, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:08,851 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-84c05fb677414013bb1caacdd680b250', choices=[Choice(delta=ChoiceDelta(content='革命', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325888, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:08,867 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-84c05fb677414013bb1caacdd680b250', choices=[Choice(delta=ChoiceDelta(content='开始', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325888, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:08,885 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-84c05fb677414013bb1caacdd680b250', choices=[Choice(delta=ChoiceDelta(content='于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325888, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:08,901 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-84c05fb677414013bb1caacdd680b250', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325888, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:08,920 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-84c05fb677414013bb1caacdd680b250', choices=[Choice(delta=ChoiceDelta(content='8', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325888, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:08,934 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-84c05fb677414013bb1caacdd680b250', choices=[Choice(delta=ChoiceDelta(content='世纪', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325888, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:08,953 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-84c05fb677414013bb1caacdd680b250', choices=[Choice(delta=ChoiceDelta(content='末', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325888, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:08,969 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-84c05fb677414013bb1caacdd680b250', choices=[Choice(delta=ChoiceDelta(content='期', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325888, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:08,985 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-84c05fb677414013bb1caacdd680b250', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325888, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:09,000 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-84c05fb677414013bb1caacdd680b250', choices=[Choice(delta=ChoiceDelta(content='大约', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325888, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:09,018 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-84c05fb677414013bb1caacdd680b250', choices=[Choice(delta=ChoiceDelta(content='在', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325888, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:09,035 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-84c05fb677414013bb1caacdd680b250', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325888, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:09,051 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-84c05fb677414013bb1caacdd680b250', choices=[Choice(delta=ChoiceDelta(content='7', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325888, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:09,068 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-84c05fb677414013bb1caacdd680b250', choices=[Choice(delta=ChoiceDelta(content='6', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325888, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:09,083 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-84c05fb677414013bb1caacdd680b250', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325888, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:09,101 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-84c05fb677414013bb1caacdd680b250', choices=[Choice(delta=ChoiceDelta(content='年至', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325888, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:09,117 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-84c05fb677414013bb1caacdd680b250', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325888, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:09,137 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-84c05fb677414013bb1caacdd680b250', choices=[Choice(delta=ChoiceDelta(content='8', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325888, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:09,150 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-84c05fb677414013bb1caacdd680b250', choices=[Choice(delta=ChoiceDelta(content='4', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325888, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:09,168 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-84c05fb677414013bb1caacdd680b250', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325888, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:09,185 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-84c05fb677414013bb1caacdd680b250', choices=[Choice(delta=ChoiceDelta(content='年', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325888, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:09,201 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-84c05fb677414013bb1caacdd680b250', choices=[Choice(delta=ChoiceDelta(content='之间', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325888, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:09,218 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-84c05fb677414013bb1caacdd680b250', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325888, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:09,236 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-84c05fb677414013bb1caacdd680b250', choices=[Choice(delta=ChoiceDelta(content='这一', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325888, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:09,252 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-84c05fb677414013bb1caacdd680b250', choices=[Choice(delta=ChoiceDelta(content='时期', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325888, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:09,269 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-84c05fb677414013bb1caacdd680b250', choices=[Choice(delta=ChoiceDelta(content='以', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325888, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:09,291 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-84c05fb677414013bb1caacdd680b250', choices=[Choice(delta=ChoiceDelta(content='蒸汽', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325888, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:09,308 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-84c05fb677414013bb1caacdd680b250', choices=[Choice(delta=ChoiceDelta(content='机', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325888, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:09,324 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-84c05fb677414013bb1caacdd680b250', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325888, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:09,339 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-84c05fb677414013bb1caacdd680b250', choices=[Choice(delta=ChoiceDelta(content='发明', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325888, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:09,358 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-84c05fb677414013bb1caacdd680b250', choices=[Choice(delta=ChoiceDelta(content='和', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325888, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:09,371 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-84c05fb677414013bb1caacdd680b250', choices=[Choice(delta=ChoiceDelta(content='广泛应用', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325888, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:09,391 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-84c05fb677414013bb1caacdd680b250', choices=[Choice(delta=ChoiceDelta(content='为', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325888, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:09,408 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-84c05fb677414013bb1caacdd680b250', choices=[Choice(delta=ChoiceDelta(content='标志', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325888, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:09,425 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-84c05fb677414013bb1caacdd680b250', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325888, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:09,441 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-84c05fb677414013bb1caacdd680b250', choices=[Choice(delta=ChoiceDelta(content='推动', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325888, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:09,458 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-84c05fb677414013bb1caacdd680b250', choices=[Choice(delta=ChoiceDelta(content='了', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325888, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:09,474 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-84c05fb677414013bb1caacdd680b250', choices=[Choice(delta=ChoiceDelta(content='纺织', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325888, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:09,488 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-84c05fb677414013bb1caacdd680b250', choices=[Choice(delta=ChoiceDelta(content='、', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325888, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:09,504 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-84c05fb677414013bb1caacdd680b250', choices=[Choice(delta=ChoiceDelta(content='冶金', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325888, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:09,521 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-84c05fb677414013bb1caacdd680b250', choices=[Choice(delta=ChoiceDelta(content='、', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325888, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:09,537 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-84c05fb677414013bb1caacdd680b250', choices=[Choice(delta=ChoiceDelta(content='交通运输', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325888, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:09,557 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-84c05fb677414013bb1caacdd680b250', choices=[Choice(delta=ChoiceDelta(content='等', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325888, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:09,572 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-84c05fb677414013bb1caacdd680b250', choices=[Choice(delta=ChoiceDelta(content='行业的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325888, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:09,587 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-84c05fb677414013bb1caacdd680b250', choices=[Choice(delta=ChoiceDelta(content='机械化', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325888, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:09,607 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-84c05fb677414013bb1caacdd680b250', choices=[Choice(delta=ChoiceDelta(content='生产', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325888, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:09,621 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-84c05fb677414013bb1caacdd680b250', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325888, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:09,638 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-84c05fb677414013bb1caacdd680b250', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason='stop', index=0, logprobs=None, stop_reason=None)], created=1762325888, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:10,784 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f3d425c0631640ef89c7e3836503ca51', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role='assistant', tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325890, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:10,786 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f3d425c0631640ef89c7e3836503ca51', choices=[Choice(delta=ChoiceDelta(content='水', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325890, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:10,801 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f3d425c0631640ef89c7e3836503ca51', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325890, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:10,817 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f3d425c0631640ef89c7e3836503ca51', choices=[Choice(delta=ChoiceDelta(content='化学', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325890, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:10,834 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f3d425c0631640ef89c7e3836503ca51', choices=[Choice(delta=ChoiceDelta(content='式', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325890, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:10,851 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f3d425c0631640ef89c7e3836503ca51', choices=[Choice(delta=ChoiceDelta(content='是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325890, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:10,867 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f3d425c0631640ef89c7e3836503ca51', choices=[Choice(delta=ChoiceDelta(content=' H', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325890, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:10,884 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f3d425c0631640ef89c7e3836503ca51', choices=[Choice(delta=ChoiceDelta(content='₂', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325890, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:10,901 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f3d425c0631640ef89c7e3836503ca51', choices=[Choice(delta=ChoiceDelta(content='O', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325890, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:10,917 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f3d425c0631640ef89c7e3836503ca51', choices=[Choice(delta=ChoiceDelta(content='。\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325890, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:10,934 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f3d425c0631640ef89c7e3836503ca51', choices=[Choice(delta=ChoiceDelta(content='该', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325890, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:10,951 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f3d425c0631640ef89c7e3836503ca51', choices=[Choice(delta=ChoiceDelta(content='信息', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325890, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:10,969 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f3d425c0631640ef89c7e3836503ca51', choices=[Choice(delta=ChoiceDelta(content='不是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325890, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:10,984 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f3d425c0631640ef89c7e3836503ca51', choices=[Choice(delta=ChoiceDelta(content='来自', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325890, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:11,000 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f3d425c0631640ef89c7e3836503ca51', choices=[Choice(delta=ChoiceDelta(content='文档', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325890, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:11,017 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f3d425c0631640ef89c7e3836503ca51', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762325890, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 14:58:11,034 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f3d425c0631640ef89c7e3836503ca51', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason='stop', index=0, logprobs=None, stop_reason=None)], created=1762325890, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:17,239 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role='assistant', tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:17,239 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='电话', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:17,253 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:17,270 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='发明', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:17,286 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='通常', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:17,302 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='归', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:17,319 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='功', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:17,335 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:17,351 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='亚', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:17,367 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='历', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:17,386 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='山', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:17,402 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='大', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:17,415 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='·', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:17,431 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='格', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:17,447 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='雷', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:17,467 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='厄', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:17,478 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='姆', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:17,498 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='·', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:17,510 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='贝尔', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:17,527 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:17,544 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='Alexander', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:17,559 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content=' Graham', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:17,575 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content=' Bell', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:17,591 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content=')。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:17,608 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='他在', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:17,624 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:17,640 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='8', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:17,656 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='7', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:17,673 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='6', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:17,689 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='年', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:17,705 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='获得了', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:17,721 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='电话', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:17,738 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:17,754 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='专利', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:17,770 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:17,786 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='这是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:17,801 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='现代', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:17,817 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='电话', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:17,833 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='技术', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:17,849 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='发展', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:17,869 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='的重要', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:17,880 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='里程碑', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:17,897 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:17,916 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='然而', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:17,929 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:17,945 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='值得注意', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:17,961 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='的是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:17,977 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content=',在', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:17,993 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='贝尔', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:18,008 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='之前', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:18,024 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:18,041 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='还有', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:18,056 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='其他', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:18,072 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='一些', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:18,088 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='发明', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:18,104 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='家', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:18,120 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='和', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:18,137 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='研究人员', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:18,153 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='也', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:18,169 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='对', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:18,185 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='电话', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:18,201 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='的发展', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:18,217 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='做出了', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:18,233 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='贡献', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:18,249 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:18,265 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='比如', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:18,285 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='伊', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:18,297 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='莱', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:18,317 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='沙', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:18,331 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='·', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:18,347 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='格', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:18,363 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='雷', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:18,378 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:18,394 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='E', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:18,411 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='lish', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:18,426 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='a', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:18,442 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content=' Gray', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:18,458 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content=')', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:18,474 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='和', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:18,490 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='安东尼', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:18,506 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='奥', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:18,522 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='·', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:18,538 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='梅', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:18,554 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='乌', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:18,570 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='奇', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:18,586 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:18,602 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='Ant', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:18,617 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='onio', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:18,633 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content=' Me', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:18,649 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='ucci', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:18,665 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='),', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:18,682 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='他们', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:18,701 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='也在', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:18,717 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='同一', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:18,733 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='时期', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:18,745 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='独立', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:18,761 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='地', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:18,777 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='进行了', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:18,794 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='相关', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:18,810 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='研究', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:18,825 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='。\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:18,841 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='因此', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:18,858 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:18,874 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='虽然', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:18,890 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='贝尔', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:18,906 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='被', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:18,922 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='广泛', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:18,938 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='认为', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:18,954 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:18,970 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='电话', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:18,986 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:19,002 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='发明', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:19,018 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='者', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:19,033 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:19,049 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='但', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:19,065 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='这一', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:19,083 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='成就', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:19,101 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='实际上是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:19,117 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='多位', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:19,133 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='科学家', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:19,146 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='共同努力', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:19,161 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='的结果', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:19,177 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:19,195 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-d850f3dcabf84447a4cdbbb34f3a48d7', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason='stop', index=0, logprobs=None, stop_reason=None)], created=1762326796, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:20,355 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-dd1faddb038d4b9f8b17e5fa3ba40379', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role='assistant', tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326800, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:20,357 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-dd1faddb038d4b9f8b17e5fa3ba40379', choices=[Choice(delta=ChoiceDelta(content='地球上', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326800, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:20,378 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-dd1faddb038d4b9f8b17e5fa3ba40379', choices=[Choice(delta=ChoiceDelta(content='最大的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326800, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:20,384 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-dd1faddb038d4b9f8b17e5fa3ba40379', choices=[Choice(delta=ChoiceDelta(content='哺乳', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326800, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:20,400 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-dd1faddb038d4b9f8b17e5fa3ba40379', choices=[Choice(delta=ChoiceDelta(content='动物', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326800, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:20,416 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-dd1faddb038d4b9f8b17e5fa3ba40379', choices=[Choice(delta=ChoiceDelta(content='是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326800, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:20,432 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-dd1faddb038d4b9f8b17e5fa3ba40379', choices=[Choice(delta=ChoiceDelta(content='蓝', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326800, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:20,448 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-dd1faddb038d4b9f8b17e5fa3ba40379', choices=[Choice(delta=ChoiceDelta(content='鲸', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326800, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:20,464 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-dd1faddb038d4b9f8b17e5fa3ba40379', choices=[Choice(delta=ChoiceDelta(content='。\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326800, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:20,479 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-dd1faddb038d4b9f8b17e5fa3ba40379', choices=[Choice(delta=ChoiceDelta(content='该', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326800, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:20,495 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-dd1faddb038d4b9f8b17e5fa3ba40379', choices=[Choice(delta=ChoiceDelta(content='信息', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326800, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:20,511 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-dd1faddb038d4b9f8b17e5fa3ba40379', choices=[Choice(delta=ChoiceDelta(content='未', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326800, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:20,527 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-dd1faddb038d4b9f8b17e5fa3ba40379', choices=[Choice(delta=ChoiceDelta(content='在', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326800, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:20,543 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-dd1faddb038d4b9f8b17e5fa3ba40379', choices=[Choice(delta=ChoiceDelta(content='提供的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326800, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:20,559 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-dd1faddb038d4b9f8b17e5fa3ba40379', choices=[Choice(delta=ChoiceDelta(content='知识', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326800, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:20,575 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-dd1faddb038d4b9f8b17e5fa3ba40379', choices=[Choice(delta=ChoiceDelta(content='片段', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326800, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:20,591 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-dd1faddb038d4b9f8b17e5fa3ba40379', choices=[Choice(delta=ChoiceDelta(content='中', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326800, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:20,606 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-dd1faddb038d4b9f8b17e5fa3ba40379', choices=[Choice(delta=ChoiceDelta(content='提及', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326800, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:20,622 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-dd1faddb038d4b9f8b17e5fa3ba40379', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326800, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:20,638 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-dd1faddb038d4b9f8b17e5fa3ba40379', choices=[Choice(delta=ChoiceDelta(content='因此', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326800, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:20,654 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-dd1faddb038d4b9f8b17e5fa3ba40379', choices=[Choice(delta=ChoiceDelta(content='不属于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326800, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:20,670 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-dd1faddb038d4b9f8b17e5fa3ba40379', choices=[Choice(delta=ChoiceDelta(content='文档', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326800, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:20,686 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-dd1faddb038d4b9f8b17e5fa3ba40379', choices=[Choice(delta=ChoiceDelta(content='内容', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326800, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:20,702 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-dd1faddb038d4b9f8b17e5fa3ba40379', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326800, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:20,720 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-dd1faddb038d4b9f8b17e5fa3ba40379', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason='stop', index=0, logprobs=None, stop_reason=None)], created=1762326800, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:21,818 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role='assistant', tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:21,819 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='Python', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:21,834 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='中', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:21,851 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='列表', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:21,866 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='和', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:21,883 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='元', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:21,898 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='组', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:21,914 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='的主要', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:21,931 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='区别', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:21,951 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='在于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:21,964 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content=':', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:21,982 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='列表', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:21,998 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:22,010 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='可', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:22,026 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='变', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:22,042 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:22,058 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:22,074 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='mutable', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:22,090 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='),', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:22,105 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='而', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:22,121 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='元', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:22,138 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='组', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:22,153 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:22,169 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='不可', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:22,185 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='变', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:22,201 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:22,217 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:22,233 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='immutable', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:22,249 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content=')。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:22,265 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='列表', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:22,281 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='使用', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:22,297 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='方', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:22,313 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='括', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:22,328 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='号', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:22,348 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='[]', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:22,369 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='定义', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:22,412 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content=',支持添加', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:22,440 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='、', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:22,450 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='删除', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:22,462 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='和', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:22,485 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='修改', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:22,488 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='元素', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:22,512 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content=';', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:22,520 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='元', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:22,536 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='组', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:22,552 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='使用', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:22,568 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='圆', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:22,584 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='括', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:22,600 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='号', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:22,616 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='()', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:22,631 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='定义', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:22,648 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:22,663 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='一旦', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:22,679 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='创建', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:22,695 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='就不能', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:22,712 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='更改', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:22,728 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='其', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:22,744 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='内容', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:22,763 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:22,779 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='此外', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:22,795 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:22,811 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='由于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:22,827 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='元', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:22,839 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='组', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:22,855 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='不可', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:22,871 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='变', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:22,887 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:22,906 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='它的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:22,919 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='性能', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:22,935 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='通常', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:22,951 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='比', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:22,967 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='列表', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:22,983 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='稍', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:22,999 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='好', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:23,015 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='一些', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:23,031 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content=',并', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:23,047 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='且', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:23,063 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='可以', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:23,079 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='作为', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:23,095 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='字', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:23,110 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='典', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:23,126 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:23,143 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='键', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:23,158 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='使用', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:23,176 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:23,194 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='而', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:23,210 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='列表', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:23,223 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='则', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:23,239 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='不可以', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:23,255 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:23,272 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73dc267af7e347e29eefc9aa7e9dd7e4', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason='stop', index=0, logprobs=None, stop_reason=None)], created=1762326801, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:24,452 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ab2b3b397334436e85fcb52db1a5a061', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role='assistant', tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326804, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:24,454 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ab2b3b397334436e85fcb52db1a5a061', choices=[Choice(delta=ChoiceDelta(content='自身', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326804, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:24,468 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ab2b3b397334436e85fcb52db1a5a061', choices=[Choice(delta=ChoiceDelta(content='知识', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326804, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:24,484 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ab2b3b397334436e85fcb52db1a5a061', choices=[Choice(delta=ChoiceDelta(content='\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326804, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:24,500 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ab2b3b397334436e85fcb52db1a5a061', choices=[Choice(delta=ChoiceDelta(content='第一次', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326804, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:24,516 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ab2b3b397334436e85fcb52db1a5a061', choices=[Choice(delta=ChoiceDelta(content='工业', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326804, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:24,532 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ab2b3b397334436e85fcb52db1a5a061', choices=[Choice(delta=ChoiceDelta(content='革命', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326804, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:24,548 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ab2b3b397334436e85fcb52db1a5a061', choices=[Choice(delta=ChoiceDelta(content='开始', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326804, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:24,564 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ab2b3b397334436e85fcb52db1a5a061', choices=[Choice(delta=ChoiceDelta(content='于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326804, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:24,580 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ab2b3b397334436e85fcb52db1a5a061', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326804, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:24,596 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ab2b3b397334436e85fcb52db1a5a061', choices=[Choice(delta=ChoiceDelta(content='8', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326804, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:24,611 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ab2b3b397334436e85fcb52db1a5a061', choices=[Choice(delta=ChoiceDelta(content='世纪', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326804, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:24,627 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ab2b3b397334436e85fcb52db1a5a061', choices=[Choice(delta=ChoiceDelta(content='末', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326804, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:24,643 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ab2b3b397334436e85fcb52db1a5a061', choices=[Choice(delta=ChoiceDelta(content='期', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326804, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:24,659 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ab2b3b397334436e85fcb52db1a5a061', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326804, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:24,675 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ab2b3b397334436e85fcb52db1a5a061', choices=[Choice(delta=ChoiceDelta(content='大约', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326804, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:24,691 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ab2b3b397334436e85fcb52db1a5a061', choices=[Choice(delta=ChoiceDelta(content='在', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326804, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:24,707 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ab2b3b397334436e85fcb52db1a5a061', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326804, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:24,723 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ab2b3b397334436e85fcb52db1a5a061', choices=[Choice(delta=ChoiceDelta(content='7', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326804, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:24,739 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ab2b3b397334436e85fcb52db1a5a061', choices=[Choice(delta=ChoiceDelta(content='6', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326804, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:24,755 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ab2b3b397334436e85fcb52db1a5a061', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326804, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:24,771 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ab2b3b397334436e85fcb52db1a5a061', choices=[Choice(delta=ChoiceDelta(content='年至', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326804, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:24,790 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ab2b3b397334436e85fcb52db1a5a061', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326804, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:24,803 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ab2b3b397334436e85fcb52db1a5a061', choices=[Choice(delta=ChoiceDelta(content='8', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326804, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:24,822 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ab2b3b397334436e85fcb52db1a5a061', choices=[Choice(delta=ChoiceDelta(content='4', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326804, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:24,838 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ab2b3b397334436e85fcb52db1a5a061', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326804, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:24,850 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ab2b3b397334436e85fcb52db1a5a061', choices=[Choice(delta=ChoiceDelta(content='年', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326804, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:24,866 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ab2b3b397334436e85fcb52db1a5a061', choices=[Choice(delta=ChoiceDelta(content='之间', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326804, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:24,882 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ab2b3b397334436e85fcb52db1a5a061', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326804, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:24,898 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ab2b3b397334436e85fcb52db1a5a061', choices=[Choice(delta=ChoiceDelta(content='这一', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326804, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:24,914 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ab2b3b397334436e85fcb52db1a5a061', choices=[Choice(delta=ChoiceDelta(content='时期', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326804, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:24,930 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ab2b3b397334436e85fcb52db1a5a061', choices=[Choice(delta=ChoiceDelta(content='以', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326804, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:24,946 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ab2b3b397334436e85fcb52db1a5a061', choices=[Choice(delta=ChoiceDelta(content='蒸汽', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326804, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:24,961 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ab2b3b397334436e85fcb52db1a5a061', choices=[Choice(delta=ChoiceDelta(content='机', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326804, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:24,977 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ab2b3b397334436e85fcb52db1a5a061', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326804, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:24,993 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ab2b3b397334436e85fcb52db1a5a061', choices=[Choice(delta=ChoiceDelta(content='发明', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326804, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:25,009 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ab2b3b397334436e85fcb52db1a5a061', choices=[Choice(delta=ChoiceDelta(content='和', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326804, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:25,025 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ab2b3b397334436e85fcb52db1a5a061', choices=[Choice(delta=ChoiceDelta(content='广泛应用', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326804, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:25,044 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ab2b3b397334436e85fcb52db1a5a061', choices=[Choice(delta=ChoiceDelta(content='为', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326804, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:25,057 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ab2b3b397334436e85fcb52db1a5a061', choices=[Choice(delta=ChoiceDelta(content='标志', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326804, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:25,072 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ab2b3b397334436e85fcb52db1a5a061', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326804, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:25,088 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ab2b3b397334436e85fcb52db1a5a061', choices=[Choice(delta=ChoiceDelta(content='推动', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326804, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:25,104 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ab2b3b397334436e85fcb52db1a5a061', choices=[Choice(delta=ChoiceDelta(content='了', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326804, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:25,120 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ab2b3b397334436e85fcb52db1a5a061', choices=[Choice(delta=ChoiceDelta(content='纺织', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326804, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:25,136 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ab2b3b397334436e85fcb52db1a5a061', choices=[Choice(delta=ChoiceDelta(content='、', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326804, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:25,152 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ab2b3b397334436e85fcb52db1a5a061', choices=[Choice(delta=ChoiceDelta(content='冶金', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326804, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:25,168 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ab2b3b397334436e85fcb52db1a5a061', choices=[Choice(delta=ChoiceDelta(content='、', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326804, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:25,184 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ab2b3b397334436e85fcb52db1a5a061', choices=[Choice(delta=ChoiceDelta(content='交通运输', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326804, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:25,203 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ab2b3b397334436e85fcb52db1a5a061', choices=[Choice(delta=ChoiceDelta(content='等', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326804, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:25,215 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ab2b3b397334436e85fcb52db1a5a061', choices=[Choice(delta=ChoiceDelta(content='行业的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326804, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:25,235 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ab2b3b397334436e85fcb52db1a5a061', choices=[Choice(delta=ChoiceDelta(content='机械化', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326804, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:25,247 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ab2b3b397334436e85fcb52db1a5a061', choices=[Choice(delta=ChoiceDelta(content='生产', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326804, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:25,263 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ab2b3b397334436e85fcb52db1a5a061', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326804, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:25,280 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-ab2b3b397334436e85fcb52db1a5a061', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason='stop', index=0, logprobs=None, stop_reason=None)], created=1762326804, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:26,398 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-70472c00a25746a990e3324006e451bb', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role='assistant', tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326806, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:26,399 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-70472c00a25746a990e3324006e451bb', choices=[Choice(delta=ChoiceDelta(content='水', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326806, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:26,422 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-70472c00a25746a990e3324006e451bb', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326806, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:26,442 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-70472c00a25746a990e3324006e451bb', choices=[Choice(delta=ChoiceDelta(content='化学', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326806, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:26,458 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-70472c00a25746a990e3324006e451bb', choices=[Choice(delta=ChoiceDelta(content='式', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326806, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:26,474 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-70472c00a25746a990e3324006e451bb', choices=[Choice(delta=ChoiceDelta(content='是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326806, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:26,489 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-70472c00a25746a990e3324006e451bb', choices=[Choice(delta=ChoiceDelta(content='H', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326806, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:26,502 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-70472c00a25746a990e3324006e451bb', choices=[Choice(delta=ChoiceDelta(content='₂', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326806, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:26,518 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-70472c00a25746a990e3324006e451bb', choices=[Choice(delta=ChoiceDelta(content='O', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326806, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:26,534 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-70472c00a25746a990e3324006e451bb', choices=[Choice(delta=ChoiceDelta(content='。\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326806, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:26,550 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-70472c00a25746a990e3324006e451bb', choices=[Choice(delta=ChoiceDelta(content='但是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326806, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:26,566 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-70472c00a25746a990e3324006e451bb', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326806, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:26,581 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-70472c00a25746a990e3324006e451bb', choices=[Choice(delta=ChoiceDelta(content='根据', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326806, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:26,597 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-70472c00a25746a990e3324006e451bb', choices=[Choice(delta=ChoiceDelta(content='您', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326806, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:26,613 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-70472c00a25746a990e3324006e451bb', choices=[Choice(delta=ChoiceDelta(content='提供的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326806, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:26,629 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-70472c00a25746a990e3324006e451bb', choices=[Choice(delta=ChoiceDelta(content='知识', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326806, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:26,645 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-70472c00a25746a990e3324006e451bb', choices=[Choice(delta=ChoiceDelta(content='片段', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326806, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:26,660 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-70472c00a25746a990e3324006e451bb', choices=[Choice(delta=ChoiceDelta(content='内容', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326806, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:26,676 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-70472c00a25746a990e3324006e451bb', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326806, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:26,692 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-70472c00a25746a990e3324006e451bb', choices=[Choice(delta=ChoiceDelta(content='其中', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326806, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:26,708 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-70472c00a25746a990e3324006e451bb', choices=[Choice(delta=ChoiceDelta(content='并未', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326806, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:26,724 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-70472c00a25746a990e3324006e451bb', choices=[Choice(delta=ChoiceDelta(content='包含', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326806, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:26,740 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-70472c00a25746a990e3324006e451bb', choices=[Choice(delta=ChoiceDelta(content='关于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326806, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:26,759 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-70472c00a25746a990e3324006e451bb', choices=[Choice(delta=ChoiceDelta(content='水', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326806, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:26,771 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-70472c00a25746a990e3324006e451bb', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326806, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:26,787 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-70472c00a25746a990e3324006e451bb', choices=[Choice(delta=ChoiceDelta(content='化学', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326806, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:26,803 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-70472c00a25746a990e3324006e451bb', choices=[Choice(delta=ChoiceDelta(content='式的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326806, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:26,819 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-70472c00a25746a990e3324006e451bb', choices=[Choice(delta=ChoiceDelta(content='相关信息', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326806, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:26,835 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-70472c00a25746a990e3324006e451bb', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326806, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:26,854 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-70472c00a25746a990e3324006e451bb', choices=[Choice(delta=ChoiceDelta(content='因此', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326806, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:26,870 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-70472c00a25746a990e3324006e451bb', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326806, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:26,886 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-70472c00a25746a990e3324006e451bb', choices=[Choice(delta=ChoiceDelta(content='此', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326806, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:26,902 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-70472c00a25746a990e3324006e451bb', choices=[Choice(delta=ChoiceDelta(content='答案', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326806, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:26,916 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-70472c00a25746a990e3324006e451bb', choices=[Choice(delta=ChoiceDelta(content='基于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326806, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:26,933 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-70472c00a25746a990e3324006e451bb', choices=[Choice(delta=ChoiceDelta(content='通用', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326806, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:26,949 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-70472c00a25746a990e3324006e451bb', choices=[Choice(delta=ChoiceDelta(content='科学', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326806, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:26,962 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-70472c00a25746a990e3324006e451bb', choices=[Choice(delta=ChoiceDelta(content='知识', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326806, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:26,977 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-70472c00a25746a990e3324006e451bb', choices=[Choice(delta=ChoiceDelta(content='给出', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326806, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:26,993 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-70472c00a25746a990e3324006e451bb', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326806, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:27,009 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-70472c00a25746a990e3324006e451bb', choices=[Choice(delta=ChoiceDelta(content='而非', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326806, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:27,025 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-70472c00a25746a990e3324006e451bb', choices=[Choice(delta=ChoiceDelta(content='来自', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326806, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:27,041 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-70472c00a25746a990e3324006e451bb', choices=[Choice(delta=ChoiceDelta(content='所提供的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326806, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:27,056 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-70472c00a25746a990e3324006e451bb', choices=[Choice(delta=ChoiceDelta(content='文档', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326806, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:27,072 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-70472c00a25746a990e3324006e451bb', choices=[Choice(delta=ChoiceDelta(content='内容', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326806, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:27,088 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-70472c00a25746a990e3324006e451bb', choices=[Choice(delta=ChoiceDelta(content='。\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762326806, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:13:27,104 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-70472c00a25746a990e3324006e451bb', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason='stop', index=0, logprobs=None, stop_reason=None)], created=1762326806, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:02,673 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role='assistant', tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:02,673 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='电话', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:02,675 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:02,696 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='发明', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:02,712 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='通常', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:02,726 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='归', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:02,740 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='功', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:02,760 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:02,773 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='亚', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:02,788 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='历', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:02,807 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='山', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:02,823 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='大', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:02,838 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='·', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:02,850 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='格', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:02,867 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='雷', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:02,887 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='厄', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:02,900 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='姆', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:02,914 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='·', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:02,930 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='贝尔', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:02,949 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:02,965 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='Alexander', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:02,978 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content=' Graham', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:02,997 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content=' Bell', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:03,010 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content=')。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:03,028 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='他', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:03,044 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:03,060 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:03,074 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='8', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:03,091 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='7', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:03,108 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='6', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:03,122 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='年', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:03,139 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='获得了', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:03,157 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='电话', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:03,173 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:03,189 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='专利', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:03,201 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:03,219 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='这是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:03,234 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='现代', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:03,249 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='通信', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:03,265 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='技术', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:03,281 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='发展', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:03,301 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='史', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:03,313 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='上的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:03,329 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='一个重要', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:03,345 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='里程碑', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:03,361 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:03,377 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='然而', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:03,393 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:03,409 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='关于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:03,428 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='电话', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:03,444 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:03,458 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='发明', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:03,476 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='也', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:03,490 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='存在', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:03,509 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='一些', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:03,524 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='争议', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:03,537 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:03,554 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='其他', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:03,573 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='几位', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:03,590 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='发明', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:03,603 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='家', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:03,624 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='如', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:03,636 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='伊', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:03,657 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='莱', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:03,674 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='沙', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:03,687 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='·', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:03,704 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='格', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:03,720 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='雷', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:03,736 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:03,753 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='E', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:03,769 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='lish', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:03,786 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='a', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:03,803 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content=' Gray', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:03,819 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content=')', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:03,837 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='和', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:03,853 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='安东尼', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:03,874 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='奥', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:03,886 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='·', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:03,904 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='梅', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:03,924 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='乌', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:03,937 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='奇', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:03,954 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:03,969 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='Ant', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:03,985 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='onio', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:04,001 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content=' Me', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:04,017 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='ucci', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:04,036 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content=')', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:04,052 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='也在', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:04,066 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='同一', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:04,084 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='时期', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:04,101 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='进行了', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:04,115 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='相关', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:04,130 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='研究', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:04,146 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='和', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:04,162 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='实验', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:04,178 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='。\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:04,193 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='虽然', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:04,209 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='上述', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:04,225 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='内容', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:04,240 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:04,256 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='普遍', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:04,275 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='认可', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:04,288 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='的事实', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:04,303 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:04,323 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='但', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:04,335 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='根据', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:04,350 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='您的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:04,366 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='要求', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:04,382 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:04,398 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='我', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:04,414 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='无法', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:04,429 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='提供', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:04,447 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='来自', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:04,461 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='指定', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:04,480 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='知识', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:04,495 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='片段', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:04,509 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='中的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:04,529 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='相关内容', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:04,542 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:04,558 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='因此', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:04,574 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:04,590 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='该', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:04,606 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='信息', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:04,622 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='并非', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:04,638 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='来源于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:04,654 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='您', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:04,669 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='提供的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:04,689 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='文档', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:04,701 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:04,718 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-5eecbc18be1d49f4a323737f34ffcb20', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason='stop', index=0, logprobs=None, stop_reason=None)], created=1762327202, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:05,934 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-31b09aab63a94fe2811457169f43d674', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role='assistant', tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327205, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:05,936 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-31b09aab63a94fe2811457169f43d674', choices=[Choice(delta=ChoiceDelta(content='地球上', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327205, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:05,950 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-31b09aab63a94fe2811457169f43d674', choices=[Choice(delta=ChoiceDelta(content='最大的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327205, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:05,963 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-31b09aab63a94fe2811457169f43d674', choices=[Choice(delta=ChoiceDelta(content='哺乳', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327205, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:05,979 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-31b09aab63a94fe2811457169f43d674', choices=[Choice(delta=ChoiceDelta(content='动物', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327205, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:05,995 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-31b09aab63a94fe2811457169f43d674', choices=[Choice(delta=ChoiceDelta(content='是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327205, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:06,014 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-31b09aab63a94fe2811457169f43d674', choices=[Choice(delta=ChoiceDelta(content='蓝', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327205, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:06,026 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-31b09aab63a94fe2811457169f43d674', choices=[Choice(delta=ChoiceDelta(content='鲸', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327205, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:06,045 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-31b09aab63a94fe2811457169f43d674', choices=[Choice(delta=ChoiceDelta(content='。\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327205, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:06,059 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-31b09aab63a94fe2811457169f43d674', choices=[Choice(delta=ChoiceDelta(content='该', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327205, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:06,077 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-31b09aab63a94fe2811457169f43d674', choices=[Choice(delta=ChoiceDelta(content='信息', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327205, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:06,091 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-31b09aab63a94fe2811457169f43d674', choices=[Choice(delta=ChoiceDelta(content='未', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327205, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:06,103 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-31b09aab63a94fe2811457169f43d674', choices=[Choice(delta=ChoiceDelta(content='在', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327205, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:06,119 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-31b09aab63a94fe2811457169f43d674', choices=[Choice(delta=ChoiceDelta(content='提供的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327205, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:06,139 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-31b09aab63a94fe2811457169f43d674', choices=[Choice(delta=ChoiceDelta(content='知识', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327205, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:06,155 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-31b09aab63a94fe2811457169f43d674', choices=[Choice(delta=ChoiceDelta(content='片段', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327205, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:06,167 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-31b09aab63a94fe2811457169f43d674', choices=[Choice(delta=ChoiceDelta(content='中', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327205, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:06,183 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-31b09aab63a94fe2811457169f43d674', choices=[Choice(delta=ChoiceDelta(content='提及', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327205, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:06,198 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-31b09aab63a94fe2811457169f43d674', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327205, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:06,218 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-31b09aab63a94fe2811457169f43d674', choices=[Choice(delta=ChoiceDelta(content='因此', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327205, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:06,231 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-31b09aab63a94fe2811457169f43d674', choices=[Choice(delta=ChoiceDelta(content='不属于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327205, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:06,248 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-31b09aab63a94fe2811457169f43d674', choices=[Choice(delta=ChoiceDelta(content='文档', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327205, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:06,263 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-31b09aab63a94fe2811457169f43d674', choices=[Choice(delta=ChoiceDelta(content='内容', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327205, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:06,284 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-31b09aab63a94fe2811457169f43d674', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327205, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:06,298 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-31b09aab63a94fe2811457169f43d674', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason='stop', index=0, logprobs=None, stop_reason=None)], created=1762327205, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:08,384 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role='assistant', tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:08,385 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='自身', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:08,400 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='知识', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:08,417 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:08,433 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='Python', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:08,448 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='中', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:08,464 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='列表', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:08,480 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='和', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:08,495 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='元', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:08,511 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='组', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:08,527 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='的主要', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:08,543 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='区别', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:08,560 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='在于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:08,574 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content=':', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:08,593 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='列表', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:08,608 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:08,624 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='可', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:08,640 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='变', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:08,655 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:08,667 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:08,683 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='mutable', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:08,702 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='),', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:08,718 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='而', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:08,730 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='元', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:08,746 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='组', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:08,762 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:08,778 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='不可', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:08,793 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='变', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:08,809 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:08,824 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:08,840 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='immutable', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:08,858 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content=')。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:08,876 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='列表', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:08,891 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='使用', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:08,907 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='方', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:08,923 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='括', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:08,939 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='号', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:08,956 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='[]', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:08,970 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='定义', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:08,985 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:09,005 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='而', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:09,019 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='元', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:09,036 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='组', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:09,052 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='使用', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:09,064 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='圆', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:09,080 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='括', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:09,095 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='号', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:09,115 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='()', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:09,131 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='定义', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:09,148 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:09,160 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='由于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:09,179 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='元', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:09,191 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='组', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:09,207 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='不可', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:09,223 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='变', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:09,239 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:09,255 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='它们', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:09,271 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='在', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:09,287 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='处理', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:09,302 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='大量', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:09,318 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='数据', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:09,334 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='时', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:09,350 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='通常', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:09,366 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='比', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:09,382 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='列表', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:09,398 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='更', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:09,417 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='高效', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:09,433 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content=',并', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:09,449 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='且', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:09,465 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='可以', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:09,477 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='作为', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:09,494 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='字', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:09,516 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='典', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:09,531 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:09,549 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='键', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:09,565 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='使用', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:09,581 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:09,597 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='而', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:09,612 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='列表', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:09,628 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='则', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:09,644 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='不能', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:09,660 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:09,676 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='此外', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:09,692 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:09,707 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='列表', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:09,724 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='支持', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:09,740 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='多种', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:09,755 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='方法', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:09,772 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='如', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:09,788 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='append', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:09,805 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='(),', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:09,824 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content=' remove', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:09,840 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='()', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:09,855 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='等', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:09,871 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='用于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:09,887 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='修改', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:09,899 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='元素', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:09,914 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:09,934 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='而', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:09,946 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='元', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:09,964 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='组', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:09,978 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='不', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:09,994 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='支持', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:10,009 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='这些', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:10,025 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='方法', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:10,041 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:10,056 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-8acfd59b3e964d45b24ad1c517094cc8', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason='stop', index=0, logprobs=None, stop_reason=None)], created=1762327208, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:11,143 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3e80c202d51c4956bebc5756e3ae0424', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role='assistant', tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327211, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:11,144 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3e80c202d51c4956bebc5756e3ae0424', choices=[Choice(delta=ChoiceDelta(content='自身', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327211, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:11,165 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3e80c202d51c4956bebc5756e3ae0424', choices=[Choice(delta=ChoiceDelta(content='知识', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327211, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:11,184 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3e80c202d51c4956bebc5756e3ae0424', choices=[Choice(delta=ChoiceDelta(content='\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327211, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:11,196 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3e80c202d51c4956bebc5756e3ae0424', choices=[Choice(delta=ChoiceDelta(content='第一次', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327211, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:11,212 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3e80c202d51c4956bebc5756e3ae0424', choices=[Choice(delta=ChoiceDelta(content='工业', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327211, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:11,227 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3e80c202d51c4956bebc5756e3ae0424', choices=[Choice(delta=ChoiceDelta(content='革命', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327211, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:11,243 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3e80c202d51c4956bebc5756e3ae0424', choices=[Choice(delta=ChoiceDelta(content='开始', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327211, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:11,259 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3e80c202d51c4956bebc5756e3ae0424', choices=[Choice(delta=ChoiceDelta(content='于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327211, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:11,275 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3e80c202d51c4956bebc5756e3ae0424', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327211, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:11,291 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3e80c202d51c4956bebc5756e3ae0424', choices=[Choice(delta=ChoiceDelta(content='8', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327211, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:11,306 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3e80c202d51c4956bebc5756e3ae0424', choices=[Choice(delta=ChoiceDelta(content='世纪', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327211, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:11,322 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3e80c202d51c4956bebc5756e3ae0424', choices=[Choice(delta=ChoiceDelta(content='末', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327211, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:11,338 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3e80c202d51c4956bebc5756e3ae0424', choices=[Choice(delta=ChoiceDelta(content='期', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327211, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:11,353 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3e80c202d51c4956bebc5756e3ae0424', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327211, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:11,369 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3e80c202d51c4956bebc5756e3ae0424', choices=[Choice(delta=ChoiceDelta(content='大约', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327211, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:11,385 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3e80c202d51c4956bebc5756e3ae0424', choices=[Choice(delta=ChoiceDelta(content='在', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327211, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:11,401 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3e80c202d51c4956bebc5756e3ae0424', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327211, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:11,416 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3e80c202d51c4956bebc5756e3ae0424', choices=[Choice(delta=ChoiceDelta(content='7', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327211, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:11,432 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3e80c202d51c4956bebc5756e3ae0424', choices=[Choice(delta=ChoiceDelta(content='6', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327211, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:11,448 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3e80c202d51c4956bebc5756e3ae0424', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327211, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:11,464 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3e80c202d51c4956bebc5756e3ae0424', choices=[Choice(delta=ChoiceDelta(content='年至', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327211, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:11,480 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3e80c202d51c4956bebc5756e3ae0424', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327211, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:11,498 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3e80c202d51c4956bebc5756e3ae0424', choices=[Choice(delta=ChoiceDelta(content='8', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327211, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:11,511 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3e80c202d51c4956bebc5756e3ae0424', choices=[Choice(delta=ChoiceDelta(content='4', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327211, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:11,530 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3e80c202d51c4956bebc5756e3ae0424', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327211, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:11,543 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3e80c202d51c4956bebc5756e3ae0424', choices=[Choice(delta=ChoiceDelta(content='年', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327211, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:11,559 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3e80c202d51c4956bebc5756e3ae0424', choices=[Choice(delta=ChoiceDelta(content='之间', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327211, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:11,577 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3e80c202d51c4956bebc5756e3ae0424', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327211, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:11,593 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3e80c202d51c4956bebc5756e3ae0424', choices=[Choice(delta=ChoiceDelta(content='这一', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327211, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:11,607 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3e80c202d51c4956bebc5756e3ae0424', choices=[Choice(delta=ChoiceDelta(content='时期', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327211, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:11,620 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3e80c202d51c4956bebc5756e3ae0424', choices=[Choice(delta=ChoiceDelta(content='以', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327211, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:11,637 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3e80c202d51c4956bebc5756e3ae0424', choices=[Choice(delta=ChoiceDelta(content='蒸汽', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327211, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:11,652 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3e80c202d51c4956bebc5756e3ae0424', choices=[Choice(delta=ChoiceDelta(content='机', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327211, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:11,668 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3e80c202d51c4956bebc5756e3ae0424', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327211, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:11,684 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3e80c202d51c4956bebc5756e3ae0424', choices=[Choice(delta=ChoiceDelta(content='发明', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327211, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:11,700 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3e80c202d51c4956bebc5756e3ae0424', choices=[Choice(delta=ChoiceDelta(content='和', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327211, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:11,715 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3e80c202d51c4956bebc5756e3ae0424', choices=[Choice(delta=ChoiceDelta(content='广泛应用', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327211, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:11,731 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3e80c202d51c4956bebc5756e3ae0424', choices=[Choice(delta=ChoiceDelta(content='为', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327211, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:11,749 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3e80c202d51c4956bebc5756e3ae0424', choices=[Choice(delta=ChoiceDelta(content='标志', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327211, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:11,763 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3e80c202d51c4956bebc5756e3ae0424', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327211, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:11,778 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3e80c202d51c4956bebc5756e3ae0424', choices=[Choice(delta=ChoiceDelta(content='推动', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327211, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:11,794 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3e80c202d51c4956bebc5756e3ae0424', choices=[Choice(delta=ChoiceDelta(content='了', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327211, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:11,810 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3e80c202d51c4956bebc5756e3ae0424', choices=[Choice(delta=ChoiceDelta(content='纺织', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327211, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:11,825 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3e80c202d51c4956bebc5756e3ae0424', choices=[Choice(delta=ChoiceDelta(content='、', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327211, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:11,841 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3e80c202d51c4956bebc5756e3ae0424', choices=[Choice(delta=ChoiceDelta(content='采矿', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327211, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:11,857 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3e80c202d51c4956bebc5756e3ae0424', choices=[Choice(delta=ChoiceDelta(content='、', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327211, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:11,872 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3e80c202d51c4956bebc5756e3ae0424', choices=[Choice(delta=ChoiceDelta(content='冶金', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327211, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:11,888 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3e80c202d51c4956bebc5756e3ae0424', choices=[Choice(delta=ChoiceDelta(content='等行业', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327211, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:11,907 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3e80c202d51c4956bebc5756e3ae0424', choices=[Choice(delta=ChoiceDelta(content='的发展', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327211, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:11,920 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3e80c202d51c4956bebc5756e3ae0424', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327211, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:11,939 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3e80c202d51c4956bebc5756e3ae0424', choices=[Choice(delta=ChoiceDelta(content='也', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327211, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:11,951 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3e80c202d51c4956bebc5756e3ae0424', choices=[Choice(delta=ChoiceDelta(content='促使', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327211, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:11,970 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3e80c202d51c4956bebc5756e3ae0424', choices=[Choice(delta=ChoiceDelta(content='了', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327211, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:11,983 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3e80c202d51c4956bebc5756e3ae0424', choices=[Choice(delta=ChoiceDelta(content='城市', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327211, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:12,002 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3e80c202d51c4956bebc5756e3ae0424', choices=[Choice(delta=ChoiceDelta(content='化进程', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327211, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:12,016 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3e80c202d51c4956bebc5756e3ae0424', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327211, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:12,029 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3e80c202d51c4956bebc5756e3ae0424', choices=[Choice(delta=ChoiceDelta(content='加快', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327211, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:12,046 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3e80c202d51c4956bebc5756e3ae0424', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327211, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:12,061 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3e80c202d51c4956bebc5756e3ae0424', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason='stop', index=0, logprobs=None, stop_reason=None)], created=1762327211, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:13,113 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f305d2c45d014500989519f24b3bb4f9', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role='assistant', tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327212, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:13,114 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f305d2c45d014500989519f24b3bb4f9', choices=[Choice(delta=ChoiceDelta(content='水', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327212, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:13,127 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f305d2c45d014500989519f24b3bb4f9', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327212, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:13,144 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f305d2c45d014500989519f24b3bb4f9', choices=[Choice(delta=ChoiceDelta(content='化学', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327212, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:13,160 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f305d2c45d014500989519f24b3bb4f9', choices=[Choice(delta=ChoiceDelta(content='式', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327212, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:13,179 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f305d2c45d014500989519f24b3bb4f9', choices=[Choice(delta=ChoiceDelta(content='是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327212, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:13,195 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f305d2c45d014500989519f24b3bb4f9', choices=[Choice(delta=ChoiceDelta(content=' H', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327212, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:13,211 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f305d2c45d014500989519f24b3bb4f9', choices=[Choice(delta=ChoiceDelta(content='₂', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327212, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:13,222 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f305d2c45d014500989519f24b3bb4f9', choices=[Choice(delta=ChoiceDelta(content='O', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327212, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:13,239 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f305d2c45d014500989519f24b3bb4f9', choices=[Choice(delta=ChoiceDelta(content='。\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327212, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:13,258 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f305d2c45d014500989519f24b3bb4f9', choices=[Choice(delta=ChoiceDelta(content='该', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327212, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:13,269 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f305d2c45d014500989519f24b3bb4f9', choices=[Choice(delta=ChoiceDelta(content='信息', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327212, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:13,289 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f305d2c45d014500989519f24b3bb4f9', choices=[Choice(delta=ChoiceDelta(content='不是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327212, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:13,305 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f305d2c45d014500989519f24b3bb4f9', choices=[Choice(delta=ChoiceDelta(content='来自', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327212, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:13,317 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f305d2c45d014500989519f24b3bb4f9', choices=[Choice(delta=ChoiceDelta(content='文档', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327212, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:13,333 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f305d2c45d014500989519f24b3bb4f9', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762327212, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 15:20:13,349 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f305d2c45d014500989519f24b3bb4f9', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason='stop', index=0, logprobs=None, stop_reason=None)], created=1762327212, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:57,608 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role='assistant', tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:57,609 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='电话', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:57,612 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:57,630 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='发明', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:57,648 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='通常', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:57,666 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='归', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:57,684 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='功', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:57,702 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:57,720 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='亚', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:57,737 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='历', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:57,755 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='山', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:57,773 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='大', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:57,791 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='·', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:57,809 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='格', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:57,826 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='雷', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:57,843 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='厄', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:57,861 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='姆', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:57,878 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='·', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:57,896 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='贝尔', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:57,914 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:57,932 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='Alexander', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:57,950 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content=' Graham', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:57,967 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content=' Bell', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:57,985 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content=')。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:58,003 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='他在', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:58,020 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:58,038 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='8', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:58,056 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='7', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:58,074 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='6', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:58,091 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='年', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:58,109 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='获得了', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:58,127 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='电话', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:58,145 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:58,163 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='专利', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:58,180 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:58,198 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='这是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:58,216 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='现代', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:58,234 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='通信', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:58,251 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='技术', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:58,269 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='发展', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:58,286 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='中的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:58,303 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='一个重要', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:58,320 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='里程碑', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:58,338 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:58,356 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='然而', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:58,374 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:58,391 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='关于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:58,409 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='电话', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:58,427 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:58,445 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='发明', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:58,462 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='也', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:58,480 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='存在', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:58,497 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='一些', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:58,515 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='争议', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:58,533 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:58,551 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='其他', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:58,569 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='几位', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:58,586 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='发明', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:58,604 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='家', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:58,622 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='如', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:58,639 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='伊', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:58,657 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='莱', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:58,675 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='沙', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:58,691 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='·', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:58,708 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='格', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:58,725 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='雷', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:58,742 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:58,759 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='E', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:58,776 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='lish', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:58,793 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='a', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:58,810 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content=' Gray', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:58,827 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content=')', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:58,844 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='和', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:58,862 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='安东尼', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:58,879 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='奥', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:58,896 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='·', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:58,914 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='梅', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:58,932 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='乌', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:58,950 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='奇', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:58,967 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:58,985 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='Ant', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:59,003 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='onio', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:59,020 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content=' Me', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:59,038 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='ucci', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:59,055 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content=')', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:59,073 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='也在', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:59,091 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='同一', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:59,109 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='时期', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:59,126 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='独立', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:59,144 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='地', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:59,162 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='进行了', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:59,179 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='相关', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:59,197 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='研究', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:59,215 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='和', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:59,233 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='实验', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:59,250 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='。\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:59,268 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='请注意', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:59,286 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:59,303 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='以上', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:59,321 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='信息', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:59,339 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='并非', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:59,356 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='来自', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:59,375 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='您', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:59,392 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='提供的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:59,414 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='知识', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:59,430 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='片段', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:59,445 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:59,463 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='而是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:59,480 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='基于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:59,498 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='通用', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:59,516 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='知识', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:59,534 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='的回答', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:59,551 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:44:59,572 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-3823cfc269f34fc1847c77af9a6db883', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason='stop', index=0, logprobs=None, stop_reason=None)], created=1762332297, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:00,768 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-19bb5e6490d449a8b3b7b1c6bbd20b31', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role='assistant', tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332300, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:00,769 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-19bb5e6490d449a8b3b7b1c6bbd20b31', choices=[Choice(delta=ChoiceDelta(content='地球上', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332300, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:00,786 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-19bb5e6490d449a8b3b7b1c6bbd20b31', choices=[Choice(delta=ChoiceDelta(content='最大的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332300, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:00,803 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-19bb5e6490d449a8b3b7b1c6bbd20b31', choices=[Choice(delta=ChoiceDelta(content='哺乳', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332300, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:00,822 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-19bb5e6490d449a8b3b7b1c6bbd20b31', choices=[Choice(delta=ChoiceDelta(content='动物', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332300, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:00,839 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-19bb5e6490d449a8b3b7b1c6bbd20b31', choices=[Choice(delta=ChoiceDelta(content='是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332300, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:00,857 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-19bb5e6490d449a8b3b7b1c6bbd20b31', choices=[Choice(delta=ChoiceDelta(content='蓝', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332300, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:00,875 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-19bb5e6490d449a8b3b7b1c6bbd20b31', choices=[Choice(delta=ChoiceDelta(content='鲸', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332300, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:00,894 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-19bb5e6490d449a8b3b7b1c6bbd20b31', choices=[Choice(delta=ChoiceDelta(content='。\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332300, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:00,914 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-19bb5e6490d449a8b3b7b1c6bbd20b31', choices=[Choice(delta=ChoiceDelta(content='但是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332300, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:00,934 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-19bb5e6490d449a8b3b7b1c6bbd20b31', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332300, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:00,954 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-19bb5e6490d449a8b3b7b1c6bbd20b31', choices=[Choice(delta=ChoiceDelta(content='根据', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332300, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:00,973 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-19bb5e6490d449a8b3b7b1c6bbd20b31', choices=[Choice(delta=ChoiceDelta(content='您的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332300, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:00,994 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-19bb5e6490d449a8b3b7b1c6bbd20b31', choices=[Choice(delta=ChoiceDelta(content='规定', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332300, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:01,016 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-19bb5e6490d449a8b3b7b1c6bbd20b31', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332300, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:01,033 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-19bb5e6490d449a8b3b7b1c6bbd20b31', choices=[Choice(delta=ChoiceDelta(content='我', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332300, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:01,053 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-19bb5e6490d449a8b3b7b1c6bbd20b31', choices=[Choice(delta=ChoiceDelta(content='必须', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332300, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:01,073 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-19bb5e6490d449a8b3b7b1c6bbd20b31', choices=[Choice(delta=ChoiceDelta(content='仅', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332300, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:01,093 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-19bb5e6490d449a8b3b7b1c6bbd20b31', choices=[Choice(delta=ChoiceDelta(content='使用', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332300, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:01,113 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-19bb5e6490d449a8b3b7b1c6bbd20b31', choices=[Choice(delta=ChoiceDelta(content='知识', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332300, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:01,132 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-19bb5e6490d449a8b3b7b1c6bbd20b31', choices=[Choice(delta=ChoiceDelta(content='片段', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332300, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:01,153 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-19bb5e6490d449a8b3b7b1c6bbd20b31', choices=[Choice(delta=ChoiceDelta(content='中的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332300, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:01,176 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-19bb5e6490d449a8b3b7b1c6bbd20b31', choices=[Choice(delta=ChoiceDelta(content='原文', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332300, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:01,193 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-19bb5e6490d449a8b3b7b1c6bbd20b31', choices=[Choice(delta=ChoiceDelta(content='来', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332300, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:01,212 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-19bb5e6490d449a8b3b7b1c6bbd20b31', choices=[Choice(delta=ChoiceDelta(content='回答', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332300, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:01,232 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-19bb5e6490d449a8b3b7b1c6bbd20b31', choices=[Choice(delta=ChoiceDelta(content='问题', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332300, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:01,252 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-19bb5e6490d449a8b3b7b1c6bbd20b31', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332300, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:01,271 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-19bb5e6490d449a8b3b7b1c6bbd20b31', choices=[Choice(delta=ChoiceDelta(content='在', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332300, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:01,291 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-19bb5e6490d449a8b3b7b1c6bbd20b31', choices=[Choice(delta=ChoiceDelta(content='提供的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332300, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:01,311 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-19bb5e6490d449a8b3b7b1c6bbd20b31', choices=[Choice(delta=ChoiceDelta(content='知识', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332300, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:01,331 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-19bb5e6490d449a8b3b7b1c6bbd20b31', choices=[Choice(delta=ChoiceDelta(content='片段', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332300, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:01,351 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-19bb5e6490d449a8b3b7b1c6bbd20b31', choices=[Choice(delta=ChoiceDelta(content='中', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332300, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:01,370 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-19bb5e6490d449a8b3b7b1c6bbd20b31', choices=[Choice(delta=ChoiceDelta(content=',并', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332300, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:01,390 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-19bb5e6490d449a8b3b7b1c6bbd20b31', choices=[Choice(delta=ChoiceDelta(content='未', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332300, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:01,411 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-19bb5e6490d449a8b3b7b1c6bbd20b31', choices=[Choice(delta=ChoiceDelta(content='包含', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332300, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:01,432 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-19bb5e6490d449a8b3b7b1c6bbd20b31', choices=[Choice(delta=ChoiceDelta(content='关于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332300, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:01,446 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-19bb5e6490d449a8b3b7b1c6bbd20b31', choices=[Choice(delta=ChoiceDelta(content='地球上', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332300, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:01,466 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-19bb5e6490d449a8b3b7b1c6bbd20b31', choices=[Choice(delta=ChoiceDelta(content='最大', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332300, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:01,481 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-19bb5e6490d449a8b3b7b1c6bbd20b31', choices=[Choice(delta=ChoiceDelta(content='哺乳', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332300, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:01,498 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-19bb5e6490d449a8b3b7b1c6bbd20b31', choices=[Choice(delta=ChoiceDelta(content='动物', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332300, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:01,518 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-19bb5e6490d449a8b3b7b1c6bbd20b31', choices=[Choice(delta=ChoiceDelta(content='的信息', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332300, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:01,535 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-19bb5e6490d449a8b3b7b1c6bbd20b31', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332300, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:01,550 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-19bb5e6490d449a8b3b7b1c6bbd20b31', choices=[Choice(delta=ChoiceDelta(content='因此', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332300, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:01,570 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-19bb5e6490d449a8b3b7b1c6bbd20b31', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332300, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:01,585 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-19bb5e6490d449a8b3b7b1c6bbd20b31', choices=[Choice(delta=ChoiceDelta(content='此', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332300, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:01,601 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-19bb5e6490d449a8b3b7b1c6bbd20b31', choices=[Choice(delta=ChoiceDelta(content='信息', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332300, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:01,618 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-19bb5e6490d449a8b3b7b1c6bbd20b31', choices=[Choice(delta=ChoiceDelta(content='并非', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332300, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:01,639 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-19bb5e6490d449a8b3b7b1c6bbd20b31', choices=[Choice(delta=ChoiceDelta(content='来自', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332300, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:01,653 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-19bb5e6490d449a8b3b7b1c6bbd20b31', choices=[Choice(delta=ChoiceDelta(content='您', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332300, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:01,670 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-19bb5e6490d449a8b3b7b1c6bbd20b31', choices=[Choice(delta=ChoiceDelta(content='所提供的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332300, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:01,695 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-19bb5e6490d449a8b3b7b1c6bbd20b31', choices=[Choice(delta=ChoiceDelta(content='文档', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332300, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:01,706 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-19bb5e6490d449a8b3b7b1c6bbd20b31', choices=[Choice(delta=ChoiceDelta(content='内容', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332300, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:01,726 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-19bb5e6490d449a8b3b7b1c6bbd20b31', choices=[Choice(delta=ChoiceDelta(content='。\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332300, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:01,740 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-19bb5e6490d449a8b3b7b1c6bbd20b31', choices=[Choice(delta=ChoiceDelta(content='若', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332300, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:01,756 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-19bb5e6490d449a8b3b7b1c6bbd20b31', choices=[Choice(delta=ChoiceDelta(content='依据', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332300, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:01,777 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-19bb5e6490d449a8b3b7b1c6bbd20b31', choices=[Choice(delta=ChoiceDelta(content='一般', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332300, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:01,791 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-19bb5e6490d449a8b3b7b1c6bbd20b31', choices=[Choice(delta=ChoiceDelta(content='常识', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332300, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:01,809 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-19bb5e6490d449a8b3b7b1c6bbd20b31', choices=[Choice(delta=ChoiceDelta(content='回答', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332300, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:01,827 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-19bb5e6490d449a8b3b7b1c6bbd20b31', choices=[Choice(delta=ChoiceDelta(content=',则', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332300, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:01,844 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-19bb5e6490d449a8b3b7b1c6bbd20b31', choices=[Choice(delta=ChoiceDelta(content='为', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332300, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:01,864 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-19bb5e6490d449a8b3b7b1c6bbd20b31', choices=[Choice(delta=ChoiceDelta(content='蓝', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332300, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:01,880 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-19bb5e6490d449a8b3b7b1c6bbd20b31', choices=[Choice(delta=ChoiceDelta(content='鲸', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332300, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:01,897 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-19bb5e6490d449a8b3b7b1c6bbd20b31', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332300, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:01,914 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-19bb5e6490d449a8b3b7b1c6bbd20b31', choices=[Choice(delta=ChoiceDelta(content='但', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332300, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:01,932 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-19bb5e6490d449a8b3b7b1c6bbd20b31', choices=[Choice(delta=ChoiceDelta(content='按照', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332300, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:01,953 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-19bb5e6490d449a8b3b7b1c6bbd20b31', choices=[Choice(delta=ChoiceDelta(content='您的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332300, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:01,967 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-19bb5e6490d449a8b3b7b1c6bbd20b31', choices=[Choice(delta=ChoiceDelta(content='指示', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332300, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:01,986 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-19bb5e6490d449a8b3b7b1c6bbd20b31', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332300, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:02,002 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-19bb5e6490d449a8b3b7b1c6bbd20b31', choices=[Choice(delta=ChoiceDelta(content='该', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332300, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:02,022 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-19bb5e6490d449a8b3b7b1c6bbd20b31', choices=[Choice(delta=ChoiceDelta(content='信息', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332300, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:02,037 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-19bb5e6490d449a8b3b7b1c6bbd20b31', choices=[Choice(delta=ChoiceDelta(content='不', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332300, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:02,056 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-19bb5e6490d449a8b3b7b1c6bbd20b31', choices=[Choice(delta=ChoiceDelta(content='来源于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332300, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:02,079 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-19bb5e6490d449a8b3b7b1c6bbd20b31', choices=[Choice(delta=ChoiceDelta(content='上述', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332300, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:02,095 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-19bb5e6490d449a8b3b7b1c6bbd20b31', choices=[Choice(delta=ChoiceDelta(content='文档', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332300, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:02,115 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-19bb5e6490d449a8b3b7b1c6bbd20b31', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332300, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:02,136 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-19bb5e6490d449a8b3b7b1c6bbd20b31', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason='stop', index=0, logprobs=None, stop_reason=None)], created=1762332300, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:03,307 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-dc1435f109324f06ba7b8228d04a3f8e', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role='assistant', tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332303, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:03,309 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-dc1435f109324f06ba7b8228d04a3f8e', choices=[Choice(delta=ChoiceDelta(content='该', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332303, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:03,328 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-dc1435f109324f06ba7b8228d04a3f8e', choices=[Choice(delta=ChoiceDelta(content='信息', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332303, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:03,346 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-dc1435f109324f06ba7b8228d04a3f8e', choices=[Choice(delta=ChoiceDelta(content='不是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332303, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:03,361 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-dc1435f109324f06ba7b8228d04a3f8e', choices=[Choice(delta=ChoiceDelta(content='来自', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332303, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:03,379 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-dc1435f109324f06ba7b8228d04a3f8e', choices=[Choice(delta=ChoiceDelta(content='文档', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332303, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:03,399 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-dc1435f109324f06ba7b8228d04a3f8e', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332303, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:03,418 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-dc1435f109324f06ba7b8228d04a3f8e', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason='stop', index=0, logprobs=None, stop_reason=None)], created=1762332303, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:04,781 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role='assistant', tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:04,783 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='第一次', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:04,799 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='工业', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:04,817 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='革命', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:04,834 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='开始', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:04,853 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:04,870 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:04,888 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='8', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:04,906 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='世纪', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:04,923 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='末', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:04,942 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='期', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:04,959 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:04,977 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='大约', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:04,995 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='在', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:05,012 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:05,030 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='7', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:05,048 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='6', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:05,065 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:05,083 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='年至', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:05,101 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:05,119 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='8', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:05,136 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='4', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:05,154 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:05,172 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='年', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:05,190 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='之间', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:05,208 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:05,226 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='这一', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:05,243 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='时期', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:05,261 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='以', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:05,282 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='蒸汽', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:05,297 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='机', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:05,316 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:05,335 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='发明', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:05,354 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='和', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:05,374 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='广泛应用', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:05,401 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='为', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:05,421 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='标志', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:05,440 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:05,459 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='推动', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:05,479 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='了', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:05,503 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='纺织', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:05,526 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='、', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:05,542 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='采矿', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:05,559 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='、', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:05,579 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='冶金', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:05,591 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='等行业', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:05,607 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='的发展', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:05,623 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:05,639 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='也', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:05,654 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='促进了', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:05,670 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='交通运输', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:05,686 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='业', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:05,702 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:05,720 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='变革', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:05,736 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='。\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:05,750 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='不过', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:05,768 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:05,781 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='根据', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:05,800 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='您', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:05,811 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='提供的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:05,830 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='知识', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:05,846 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='片段', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:05,860 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='内容', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:05,876 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:05,890 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='其中', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:05,907 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='并未', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:05,924 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='包含', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:05,944 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='有关', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:05,958 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='第一次', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:05,973 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='工业', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:05,991 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='革命', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:06,004 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='时间', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:06,022 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='的信息', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:06,035 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:06,053 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='因此', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:06,066 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:06,084 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='上述', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:06,097 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='回答', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:06,116 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='基于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:06,129 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='通用', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:06,145 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='历史', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:06,161 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='知识', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:06,176 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:06,192 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='而非', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:06,207 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='所提供的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:06,223 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='文档', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:06,238 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='内容', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:06,254 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='。\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:06,270 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-c406493d001b41e4a2af2eba32e4b075', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason='stop', index=0, logprobs=None, stop_reason=None)], created=1762332304, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:07,508 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9552ce2149d24d7389fa44193b3763b2', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role='assistant', tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332307, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:07,510 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9552ce2149d24d7389fa44193b3763b2', choices=[Choice(delta=ChoiceDelta(content='水', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332307, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:07,524 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9552ce2149d24d7389fa44193b3763b2', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332307, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:07,539 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9552ce2149d24d7389fa44193b3763b2', choices=[Choice(delta=ChoiceDelta(content='化学', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332307, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:07,553 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9552ce2149d24d7389fa44193b3763b2', choices=[Choice(delta=ChoiceDelta(content='式', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332307, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:07,567 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9552ce2149d24d7389fa44193b3763b2', choices=[Choice(delta=ChoiceDelta(content='是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332307, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:07,586 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9552ce2149d24d7389fa44193b3763b2', choices=[Choice(delta=ChoiceDelta(content='H', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332307, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:07,602 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9552ce2149d24d7389fa44193b3763b2', choices=[Choice(delta=ChoiceDelta(content='₂', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332307, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:07,614 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9552ce2149d24d7389fa44193b3763b2', choices=[Choice(delta=ChoiceDelta(content='O', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332307, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:07,630 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9552ce2149d24d7389fa44193b3763b2', choices=[Choice(delta=ChoiceDelta(content='。\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332307, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:07,646 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9552ce2149d24d7389fa44193b3763b2', choices=[Choice(delta=ChoiceDelta(content='但是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332307, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:07,662 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9552ce2149d24d7389fa44193b3763b2', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332307, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:07,677 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9552ce2149d24d7389fa44193b3763b2', choices=[Choice(delta=ChoiceDelta(content='根据', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332307, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:07,693 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9552ce2149d24d7389fa44193b3763b2', choices=[Choice(delta=ChoiceDelta(content='您', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332307, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:07,708 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9552ce2149d24d7389fa44193b3763b2', choices=[Choice(delta=ChoiceDelta(content='提供的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332307, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:07,723 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9552ce2149d24d7389fa44193b3763b2', choices=[Choice(delta=ChoiceDelta(content='知识', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332307, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:07,739 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9552ce2149d24d7389fa44193b3763b2', choices=[Choice(delta=ChoiceDelta(content='片段', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332307, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:07,755 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9552ce2149d24d7389fa44193b3763b2', choices=[Choice(delta=ChoiceDelta(content='内容', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332307, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:07,770 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9552ce2149d24d7389fa44193b3763b2', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332307, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:07,786 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9552ce2149d24d7389fa44193b3763b2', choices=[Choice(delta=ChoiceDelta(content='其中', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332307, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:07,802 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9552ce2149d24d7389fa44193b3763b2', choices=[Choice(delta=ChoiceDelta(content='并未', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332307, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:07,819 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9552ce2149d24d7389fa44193b3763b2', choices=[Choice(delta=ChoiceDelta(content='包含', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332307, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:07,834 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9552ce2149d24d7389fa44193b3763b2', choices=[Choice(delta=ChoiceDelta(content='关于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332307, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:07,849 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9552ce2149d24d7389fa44193b3763b2', choices=[Choice(delta=ChoiceDelta(content='水', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332307, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:07,864 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9552ce2149d24d7389fa44193b3763b2', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332307, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:07,880 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9552ce2149d24d7389fa44193b3763b2', choices=[Choice(delta=ChoiceDelta(content='化学', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332307, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:07,896 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9552ce2149d24d7389fa44193b3763b2', choices=[Choice(delta=ChoiceDelta(content='式的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332307, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:07,912 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9552ce2149d24d7389fa44193b3763b2', choices=[Choice(delta=ChoiceDelta(content='相关信息', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332307, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:07,930 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9552ce2149d24d7389fa44193b3763b2', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332307, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:07,948 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9552ce2149d24d7389fa44193b3763b2', choices=[Choice(delta=ChoiceDelta(content='因此', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332307, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:07,961 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9552ce2149d24d7389fa44193b3763b2', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332307, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:07,983 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9552ce2149d24d7389fa44193b3763b2', choices=[Choice(delta=ChoiceDelta(content='此', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332307, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:07,999 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9552ce2149d24d7389fa44193b3763b2', choices=[Choice(delta=ChoiceDelta(content='信息', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332307, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:08,015 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9552ce2149d24d7389fa44193b3763b2', choices=[Choice(delta=ChoiceDelta(content='并非', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332307, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:08,031 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9552ce2149d24d7389fa44193b3763b2', choices=[Choice(delta=ChoiceDelta(content='来源于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332307, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:08,047 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9552ce2149d24d7389fa44193b3763b2', choices=[Choice(delta=ChoiceDelta(content='您', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332307, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:08,062 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9552ce2149d24d7389fa44193b3763b2', choices=[Choice(delta=ChoiceDelta(content='所提供的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332307, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:08,075 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9552ce2149d24d7389fa44193b3763b2', choices=[Choice(delta=ChoiceDelta(content='文档', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332307, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:08,090 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9552ce2149d24d7389fa44193b3763b2', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332307, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:45:08,107 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-9552ce2149d24d7389fa44193b3763b2', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason='stop', index=0, logprobs=None, stop_reason=None)], created=1762332307, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:57,101 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role='assistant', tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:57,102 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='电话', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:57,120 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:57,136 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='发明', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:57,152 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='通常', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:57,168 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='归', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:57,184 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='功', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:57,200 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:57,216 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='亚', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:57,231 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='历', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:57,247 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='山', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:57,263 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='大', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:57,278 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='·', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:57,295 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='格', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:57,310 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='雷', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:57,326 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='厄', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:57,342 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='姆', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:57,357 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='·', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:57,373 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='贝尔', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:57,389 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='(', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:57,405 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='Alexander', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:57,420 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content=' Graham', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:57,436 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content=' Bell', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:57,452 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content=')。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:57,467 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='他在', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:57,483 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:57,498 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='8', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:57,514 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='7', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:57,530 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='6', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:57,546 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='年', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:57,561 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='获得了', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:57,577 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='电话', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:57,597 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:57,609 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='专利', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:57,625 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:57,641 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='这是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:57,657 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='基于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:57,672 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='他', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:57,688 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='之前', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:57,704 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='对', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:57,720 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='声音', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:57,738 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='传输', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:57,750 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='的研究', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:57,768 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='和', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:57,782 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='实验', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:57,798 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:57,813 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='尽管', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:57,829 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='其他', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:57,845 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='一些', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:57,860 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='人', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:57,876 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='也', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:57,892 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='独立', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:57,908 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='地', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:57,923 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='进行了', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:57,941 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='类似', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:57,955 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='的工作', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:57,970 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:57,986 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='但', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:58,002 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='贝尔', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:58,017 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:58,033 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='第一个', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:58,049 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='成功', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:58,065 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='实现', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:58,080 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='语音', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:58,096 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='传输', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:58,117 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='并', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:58,136 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='获得', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:58,151 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='专利', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:58,167 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='的人', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:58,182 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='。\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:58,198 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='然而', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:58,214 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content=',在', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:58,229 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='提供的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:58,245 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='知识', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:58,261 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='片段', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:58,277 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='中', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:58,292 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='并未', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:58,308 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='提及', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:58,324 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='电话', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:58,340 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:58,355 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='发明', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:58,371 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='者', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:58,387 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='信息', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:58,403 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:58,418 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='因此', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:58,434 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:58,450 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='关于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:58,465 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='电话', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:58,481 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='发明', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:58,496 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='者的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:58,513 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='具体', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:58,528 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='细节', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:58,543 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='并非', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:58,559 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='来源于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:58,574 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='上述', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:58,590 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='文档', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:58,606 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='内容', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:58,622 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='。\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:58,638 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='如果', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:58,653 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='需要', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:58,669 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='进一步', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:58,685 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='确认', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:58,701 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='或', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:58,716 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='查找', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:58,732 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='更多', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:58,751 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='相关', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:58,764 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='资料', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:58,780 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content=',请', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:58,795 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='告知', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:58,811 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:51:58,827 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-73a843044854465c969e9aefd1ace8ec', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason='stop', index=0, logprobs=None, stop_reason=None)], created=1762332717, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:00,069 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role='assistant', tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:00,070 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='地球上', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:00,084 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='最大的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:00,100 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='哺乳', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:00,116 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='动物', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:00,132 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:00,147 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='蓝', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:00,163 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='鲸', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:00,194 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='。\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:00,196 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='蓝', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:00,213 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='鲸', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:00,229 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='属于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:00,245 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='鲸', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:00,257 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='目', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:00,276 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:00,288 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:00,304 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='目前已', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:00,319 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='知', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:00,335 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='地球上', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:00,350 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='最大的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:00,370 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='动物', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:00,385 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:00,401 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='也是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:00,412 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='最大的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:00,432 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='哺乳', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:00,447 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='动物', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:00,463 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:00,479 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='它们', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:00,491 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='可以', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:00,510 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='长达', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:00,525 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='3', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:00,538 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:00,557 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='米', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:00,573 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='以上', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:00,584 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:00,602 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='重', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:00,616 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='达', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:00,631 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='2', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:00,647 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:00,663 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:00,678 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='吨', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:00,694 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='左右', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:00,710 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:00,725 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='蓝', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:00,741 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='鲸', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:00,757 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='的心', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:00,772 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='脏', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:00,788 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='就有', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:00,804 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='小', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:00,819 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='汽车', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:00,835 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='那么', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:00,854 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='大', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:00,867 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:00,882 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='舌头', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:00,898 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:00,914 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='重量', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:00,929 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='相当于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:00,945 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='一头', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:00,961 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='大象', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:00,976 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='。\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:00,992 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='蓝', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:01,008 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='鲸', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:01,023 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='主要', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:01,039 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='生活在', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:01,054 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='深', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:01,070 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='海', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:01,086 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='中', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:01,101 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:01,117 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='以', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:01,133 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='磷', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:01,148 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='虾', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:01,164 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='为主要', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:01,180 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='食物', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:01,196 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='来源', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:01,211 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:01,227 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='它们', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:01,242 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:01,265 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='叫声', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:01,274 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='可以在', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:01,289 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='海洋', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:01,305 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='中', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:01,321 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='传播', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:01,336 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='很', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:01,353 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='远', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:01,368 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='的距离', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:01,383 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:01,399 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:01,414 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='海洋', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:01,430 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='中最', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:01,446 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='响', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:01,461 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='亮', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:01,477 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='的声音', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:01,493 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='之一', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:01,508 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='。\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:01,524 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='需要注意', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:01,539 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='的是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:01,555 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:01,571 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='虽然', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:01,586 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='蓝', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:01,602 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='鲸', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:01,618 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:01,633 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='现存', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:01,649 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='最大的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:01,664 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='哺乳', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:01,680 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='动物', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:01,696 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:01,712 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='但在', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:01,727 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='历史上', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:01,743 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='曾', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:01,758 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='出现', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:01,774 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='过', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:01,790 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='一些', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:01,806 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='体型', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:01,821 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='更大的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:01,837 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='史', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:01,852 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='前', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:01,868 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='哺乳', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:01,884 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='动物', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:01,899 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:01,915 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='比如', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:01,930 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='某些', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:01,947 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='恐龙', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:01,962 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='时代的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:01,978 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='巨', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:01,994 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='兽', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:02,009 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:02,025 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='但', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:02,041 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='这些', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:02,056 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='并不', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:02,075 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='属于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:02,091 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='现代', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:02,103 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='意义上的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:02,119 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='哺乳', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:02,135 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='动物', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:02,151 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='范畴', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:02,166 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='。\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:02,186 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='以上', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:02,197 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='信息', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:02,214 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='并非', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:02,229 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='来自', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:02,245 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='您', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:02,261 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='提供的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:02,279 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='知识', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:02,291 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='片段', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:02,307 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='内容', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:02,323 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:02,339 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='而是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:02,354 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='基于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:02,370 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='通用', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:02,385 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='知识', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:02,401 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='给出', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:02,417 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='的回答', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:02,432 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:02,449 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-b79a6235c25146158c55ea959b187f67', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason='stop', index=0, logprobs=None, stop_reason=None)], created=1762332719, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:03,696 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-84643fcae73e49c2ad06bd6a07f19cec', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role='assistant', tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:03,698 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-84643fcae73e49c2ad06bd6a07f19cec', choices=[Choice(delta=ChoiceDelta(content='该', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:03,713 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-84643fcae73e49c2ad06bd6a07f19cec', choices=[Choice(delta=ChoiceDelta(content='信息', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:03,729 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-84643fcae73e49c2ad06bd6a07f19cec', choices=[Choice(delta=ChoiceDelta(content='不是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:03,745 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-84643fcae73e49c2ad06bd6a07f19cec', choices=[Choice(delta=ChoiceDelta(content='来自', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:03,761 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-84643fcae73e49c2ad06bd6a07f19cec', choices=[Choice(delta=ChoiceDelta(content='文档', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:03,776 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-84643fcae73e49c2ad06bd6a07f19cec', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:03,793 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-84643fcae73e49c2ad06bd6a07f19cec', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason='stop', index=0, logprobs=None, stop_reason=None)], created=1762332723, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:04,987 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f820c710c4694ac596574dec94ac4e3b', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role='assistant', tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332724, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:04,989 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f820c710c4694ac596574dec94ac4e3b', choices=[Choice(delta=ChoiceDelta(content='自身', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332724, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:05,003 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f820c710c4694ac596574dec94ac4e3b', choices=[Choice(delta=ChoiceDelta(content='知识', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332724, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:05,019 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f820c710c4694ac596574dec94ac4e3b', choices=[Choice(delta=ChoiceDelta(content='\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332724, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:05,035 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f820c710c4694ac596574dec94ac4e3b', choices=[Choice(delta=ChoiceDelta(content='第一次', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332724, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:05,051 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f820c710c4694ac596574dec94ac4e3b', choices=[Choice(delta=ChoiceDelta(content='工业', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332724, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:05,066 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f820c710c4694ac596574dec94ac4e3b', choices=[Choice(delta=ChoiceDelta(content='革命', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332724, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:05,082 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f820c710c4694ac596574dec94ac4e3b', choices=[Choice(delta=ChoiceDelta(content='开始', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332724, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:05,098 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f820c710c4694ac596574dec94ac4e3b', choices=[Choice(delta=ChoiceDelta(content='于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332724, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:05,113 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f820c710c4694ac596574dec94ac4e3b', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332724, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:05,129 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f820c710c4694ac596574dec94ac4e3b', choices=[Choice(delta=ChoiceDelta(content='8', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332724, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:05,145 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f820c710c4694ac596574dec94ac4e3b', choices=[Choice(delta=ChoiceDelta(content='世纪', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332724, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:05,161 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f820c710c4694ac596574dec94ac4e3b', choices=[Choice(delta=ChoiceDelta(content='末', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332724, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:05,176 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f820c710c4694ac596574dec94ac4e3b', choices=[Choice(delta=ChoiceDelta(content='期', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332724, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:05,192 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f820c710c4694ac596574dec94ac4e3b', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332724, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:05,208 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f820c710c4694ac596574dec94ac4e3b', choices=[Choice(delta=ChoiceDelta(content='大约', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332724, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:05,224 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f820c710c4694ac596574dec94ac4e3b', choices=[Choice(delta=ChoiceDelta(content='在', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332724, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:05,239 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f820c710c4694ac596574dec94ac4e3b', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332724, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:05,255 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f820c710c4694ac596574dec94ac4e3b', choices=[Choice(delta=ChoiceDelta(content='7', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332724, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:05,271 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f820c710c4694ac596574dec94ac4e3b', choices=[Choice(delta=ChoiceDelta(content='6', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332724, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:05,287 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f820c710c4694ac596574dec94ac4e3b', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332724, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:05,303 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f820c710c4694ac596574dec94ac4e3b', choices=[Choice(delta=ChoiceDelta(content='年至', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332724, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:05,319 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f820c710c4694ac596574dec94ac4e3b', choices=[Choice(delta=ChoiceDelta(content='1', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332724, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:05,335 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f820c710c4694ac596574dec94ac4e3b', choices=[Choice(delta=ChoiceDelta(content='8', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332724, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:05,351 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f820c710c4694ac596574dec94ac4e3b', choices=[Choice(delta=ChoiceDelta(content='4', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332724, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:05,367 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f820c710c4694ac596574dec94ac4e3b', choices=[Choice(delta=ChoiceDelta(content='0', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332724, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:05,383 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f820c710c4694ac596574dec94ac4e3b', choices=[Choice(delta=ChoiceDelta(content='年', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332724, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:05,398 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f820c710c4694ac596574dec94ac4e3b', choices=[Choice(delta=ChoiceDelta(content='之间', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332724, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:05,414 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f820c710c4694ac596574dec94ac4e3b', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332724, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:05,430 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f820c710c4694ac596574dec94ac4e3b', choices=[Choice(delta=ChoiceDelta(content='这一', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332724, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:05,446 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f820c710c4694ac596574dec94ac4e3b', choices=[Choice(delta=ChoiceDelta(content='时期', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332724, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:05,461 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f820c710c4694ac596574dec94ac4e3b', choices=[Choice(delta=ChoiceDelta(content='以', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332724, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:05,477 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f820c710c4694ac596574dec94ac4e3b', choices=[Choice(delta=ChoiceDelta(content='蒸汽', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332724, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:05,493 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f820c710c4694ac596574dec94ac4e3b', choices=[Choice(delta=ChoiceDelta(content='机', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332724, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:05,509 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f820c710c4694ac596574dec94ac4e3b', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332724, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:05,525 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f820c710c4694ac596574dec94ac4e3b', choices=[Choice(delta=ChoiceDelta(content='发明', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332724, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:05,540 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f820c710c4694ac596574dec94ac4e3b', choices=[Choice(delta=ChoiceDelta(content='和', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332724, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:05,559 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f820c710c4694ac596574dec94ac4e3b', choices=[Choice(delta=ChoiceDelta(content='广泛应用', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332724, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:05,572 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f820c710c4694ac596574dec94ac4e3b', choices=[Choice(delta=ChoiceDelta(content='为', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332724, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:05,588 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f820c710c4694ac596574dec94ac4e3b', choices=[Choice(delta=ChoiceDelta(content='标志', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332724, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:05,604 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f820c710c4694ac596574dec94ac4e3b', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332724, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:05,619 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f820c710c4694ac596574dec94ac4e3b', choices=[Choice(delta=ChoiceDelta(content='推动', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332724, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:05,635 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f820c710c4694ac596574dec94ac4e3b', choices=[Choice(delta=ChoiceDelta(content='了', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332724, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:05,651 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f820c710c4694ac596574dec94ac4e3b', choices=[Choice(delta=ChoiceDelta(content='纺织', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332724, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:05,667 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f820c710c4694ac596574dec94ac4e3b', choices=[Choice(delta=ChoiceDelta(content='、', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332724, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:05,682 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f820c710c4694ac596574dec94ac4e3b', choices=[Choice(delta=ChoiceDelta(content='冶金', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332724, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:05,698 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f820c710c4694ac596574dec94ac4e3b', choices=[Choice(delta=ChoiceDelta(content='、', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332724, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:05,714 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f820c710c4694ac596574dec94ac4e3b', choices=[Choice(delta=ChoiceDelta(content='采矿', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332724, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:05,730 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f820c710c4694ac596574dec94ac4e3b', choices=[Choice(delta=ChoiceDelta(content='等多个', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332724, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:05,746 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f820c710c4694ac596574dec94ac4e3b', choices=[Choice(delta=ChoiceDelta(content='行业的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332724, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:05,762 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f820c710c4694ac596574dec94ac4e3b', choices=[Choice(delta=ChoiceDelta(content='机械化', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332724, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:05,780 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f820c710c4694ac596574dec94ac4e3b', choices=[Choice(delta=ChoiceDelta(content='生产', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332724, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:05,793 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f820c710c4694ac596574dec94ac4e3b', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332724, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:05,809 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-f820c710c4694ac596574dec94ac4e3b', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason='stop', index=0, logprobs=None, stop_reason=None)], created=1762332724, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:06,968 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-a8430750fdec4ac8b0fea450e6dd7ad7', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role='assistant', tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332726, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:06,970 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-a8430750fdec4ac8b0fea450e6dd7ad7', choices=[Choice(delta=ChoiceDelta(content='水', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332726, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:06,984 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-a8430750fdec4ac8b0fea450e6dd7ad7', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332726, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:07,000 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-a8430750fdec4ac8b0fea450e6dd7ad7', choices=[Choice(delta=ChoiceDelta(content='化学', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332726, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:07,016 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-a8430750fdec4ac8b0fea450e6dd7ad7', choices=[Choice(delta=ChoiceDelta(content='式', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332726, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:07,031 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-a8430750fdec4ac8b0fea450e6dd7ad7', choices=[Choice(delta=ChoiceDelta(content='是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332726, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:07,047 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-a8430750fdec4ac8b0fea450e6dd7ad7', choices=[Choice(delta=ChoiceDelta(content='H', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332726, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:07,063 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-a8430750fdec4ac8b0fea450e6dd7ad7', choices=[Choice(delta=ChoiceDelta(content='₂', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332726, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:07,080 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-a8430750fdec4ac8b0fea450e6dd7ad7', choices=[Choice(delta=ChoiceDelta(content='O', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332726, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:07,094 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-a8430750fdec4ac8b0fea450e6dd7ad7', choices=[Choice(delta=ChoiceDelta(content='。\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332726, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:07,110 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-a8430750fdec4ac8b0fea450e6dd7ad7', choices=[Choice(delta=ChoiceDelta(content='但是', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332726, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:07,126 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-a8430750fdec4ac8b0fea450e6dd7ad7', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332726, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:07,141 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-a8430750fdec4ac8b0fea450e6dd7ad7', choices=[Choice(delta=ChoiceDelta(content='根据', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332726, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:07,157 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-a8430750fdec4ac8b0fea450e6dd7ad7', choices=[Choice(delta=ChoiceDelta(content='您', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332726, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:07,172 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-a8430750fdec4ac8b0fea450e6dd7ad7', choices=[Choice(delta=ChoiceDelta(content='提供的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332726, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:07,188 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-a8430750fdec4ac8b0fea450e6dd7ad7', choices=[Choice(delta=ChoiceDelta(content='知识', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332726, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:07,204 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-a8430750fdec4ac8b0fea450e6dd7ad7', choices=[Choice(delta=ChoiceDelta(content='片段', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332726, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:07,220 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-a8430750fdec4ac8b0fea450e6dd7ad7', choices=[Choice(delta=ChoiceDelta(content='内容', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332726, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:07,235 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-a8430750fdec4ac8b0fea450e6dd7ad7', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332726, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:07,251 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-a8430750fdec4ac8b0fea450e6dd7ad7', choices=[Choice(delta=ChoiceDelta(content='其中', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332726, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:07,267 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-a8430750fdec4ac8b0fea450e6dd7ad7', choices=[Choice(delta=ChoiceDelta(content='并未', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332726, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:07,282 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-a8430750fdec4ac8b0fea450e6dd7ad7', choices=[Choice(delta=ChoiceDelta(content='包含', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332726, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:07,298 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-a8430750fdec4ac8b0fea450e6dd7ad7', choices=[Choice(delta=ChoiceDelta(content='关于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332726, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:07,314 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-a8430750fdec4ac8b0fea450e6dd7ad7', choices=[Choice(delta=ChoiceDelta(content='水', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332726, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:07,330 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-a8430750fdec4ac8b0fea450e6dd7ad7', choices=[Choice(delta=ChoiceDelta(content='的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332726, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:07,345 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-a8430750fdec4ac8b0fea450e6dd7ad7', choices=[Choice(delta=ChoiceDelta(content='化学', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332726, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:07,361 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-a8430750fdec4ac8b0fea450e6dd7ad7', choices=[Choice(delta=ChoiceDelta(content='式的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332726, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:07,377 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-a8430750fdec4ac8b0fea450e6dd7ad7', choices=[Choice(delta=ChoiceDelta(content='相关信息', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332726, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:07,392 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-a8430750fdec4ac8b0fea450e6dd7ad7', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332726, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:07,408 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-a8430750fdec4ac8b0fea450e6dd7ad7', choices=[Choice(delta=ChoiceDelta(content='因此', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332726, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:07,424 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-a8430750fdec4ac8b0fea450e6dd7ad7', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332726, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:07,439 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-a8430750fdec4ac8b0fea450e6dd7ad7', choices=[Choice(delta=ChoiceDelta(content='此', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332726, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:07,455 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-a8430750fdec4ac8b0fea450e6dd7ad7', choices=[Choice(delta=ChoiceDelta(content='信息', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332726, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:07,471 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-a8430750fdec4ac8b0fea450e6dd7ad7', choices=[Choice(delta=ChoiceDelta(content='并非', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332726, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:07,487 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-a8430750fdec4ac8b0fea450e6dd7ad7', choices=[Choice(delta=ChoiceDelta(content='来源于', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332726, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:07,502 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-a8430750fdec4ac8b0fea450e6dd7ad7', choices=[Choice(delta=ChoiceDelta(content='您', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332726, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:07,518 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-a8430750fdec4ac8b0fea450e6dd7ad7', choices=[Choice(delta=ChoiceDelta(content='所提供的', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332726, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:07,534 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-a8430750fdec4ac8b0fea450e6dd7ad7', choices=[Choice(delta=ChoiceDelta(content='文档', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332726, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:07,549 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-a8430750fdec4ac8b0fea450e6dd7ad7', choices=[Choice(delta=ChoiceDelta(content='。\n\n', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332726, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:07,565 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-a8430750fdec4ac8b0fea450e6dd7ad7', choices=[Choice(delta=ChoiceDelta(content='如果您', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332726, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:07,581 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-a8430750fdec4ac8b0fea450e6dd7ad7', choices=[Choice(delta=ChoiceDelta(content='有', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332726, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:07,597 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-a8430750fdec4ac8b0fea450e6dd7ad7', choices=[Choice(delta=ChoiceDelta(content='其他', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332726, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:07,612 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-a8430750fdec4ac8b0fea450e6dd7ad7', choices=[Choice(delta=ChoiceDelta(content='问题', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332726, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:07,628 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-a8430750fdec4ac8b0fea450e6dd7ad7', choices=[Choice(delta=ChoiceDelta(content=',', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332726, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:07,644 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-a8430750fdec4ac8b0fea450e6dd7ad7', choices=[Choice(delta=ChoiceDelta(content='且', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332726, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:07,659 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-a8430750fdec4ac8b0fea450e6dd7ad7', choices=[Choice(delta=ChoiceDelta(content='希望', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332726, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:07,675 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-a8430750fdec4ac8b0fea450e6dd7ad7', choices=[Choice(delta=ChoiceDelta(content='得到', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332726, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:07,690 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-a8430750fdec4ac8b0fea450e6dd7ad7', choices=[Choice(delta=ChoiceDelta(content='来自', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332726, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:07,706 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-a8430750fdec4ac8b0fea450e6dd7ad7', choices=[Choice(delta=ChoiceDelta(content='上述', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332726, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:07,722 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-a8430750fdec4ac8b0fea450e6dd7ad7', choices=[Choice(delta=ChoiceDelta(content='知识', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332726, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:07,738 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-a8430750fdec4ac8b0fea450e6dd7ad7', choices=[Choice(delta=ChoiceDelta(content='片段', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332726, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:07,754 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-a8430750fdec4ac8b0fea450e6dd7ad7', choices=[Choice(delta=ChoiceDelta(content='的回答', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332726, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:07,769 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-a8430750fdec4ac8b0fea450e6dd7ad7', choices=[Choice(delta=ChoiceDelta(content=',请', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332726, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:07,785 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-a8430750fdec4ac8b0fea450e6dd7ad7', choices=[Choice(delta=ChoiceDelta(content='随时', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332726, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:07,800 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-a8430750fdec4ac8b0fea450e6dd7ad7', choices=[Choice(delta=ChoiceDelta(content='提出', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332726, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:07,816 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-a8430750fdec4ac8b0fea450e6dd7ad7', choices=[Choice(delta=ChoiceDelta(content='。', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1762332726, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)
+2025-11-05 16:52:07,832 - rag.llm - 76 - INFO - vllm返回的chunk信息:ChatCompletionChunk(id='chatcmpl-a8430750fdec4ac8b0fea450e6dd7ad7', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role=None, tool_calls=None), finish_reason='stop', index=0, logprobs=None, stop_reason=None)], created=1762332726, model='Qwen3-Coder-30B-loft', object='chat.completion.chunk', service_tier=None, system_fingerprint=None, usage=None)

+ 0 - 0
RAGAS/logs/rag.vector_db.milvus_vector.log


+ 283 - 0
RAGAS/ragas_eval.py

@@ -0,0 +1,283 @@
+import os
+import json
+import pandas as pd
+from datasets import Dataset
+from typing import List, Dict, Any
+
+# FastAPI 相关
+from fastapi import FastAPI, UploadFile, File, HTTPException
+from fastapi.middleware.cors import CORSMiddleware
+from fastapi.responses import FileResponse, JSONResponse
+from fastapi.staticfiles import StaticFiles
+import uvicorn
+
+os.environ["RUN_SERVER"] = "True"
+
+from ragas import evaluate
+from ragas.metrics import (
+    faithfulness,
+    answer_correctness,
+    answer_relevancy,
+    context_precision,
+    context_recall,
+)
+
+from langchain_openai import ChatOpenAI, OpenAIEmbeddings
+
+VLLM_LLM_BASE = "http://xia0miduo.gicp.net:8102/v1"
+VLLM_LLM_KEY = "vllm-dummy-key"
+
+VLLM_EMBEDDING_BASE = "http://10.168.100.17:8787/v1/"
+
+vllm_generator = ChatOpenAI(
+    model="Qwen3-Coder-30B-loft",
+    base_url=VLLM_LLM_BASE,
+    api_key=VLLM_LLM_KEY,
+    temperature=0,
+    max_tokens=512,
+)
+
+vllm_embeddings = OpenAIEmbeddings(
+    model="",
+    base_url=VLLM_EMBEDDING_BASE,
+    api_key=VLLM_LLM_KEY,
+)
+
+# --- 2. 加载和准备数据集 ---
+def load_data_from_json(json_path):
+    """
+    从 JSON 文件加载数据并转换为 datasets.Dataset 格式。
+
+    假设的 JSON 结构:
+    [
+        {
+            "question": "...",
+            "answer": "...",
+            "contexts": ["...", "..."],
+            "ground_truth": "..."
+        },
+        ...
+    ]
+    """
+    try:
+        with open(json_path, 'r', encoding='utf-8') as f:
+            data_list = json.load(f)
+        
+        df = pd.DataFrame(data_list)
+
+        required_cols = {'question', 'answer', 'contexts'}
+        if not required_cols.issubset(df.columns):
+            raise ValueError(f"JSON 文件必须包含 'question', 'answer', 和 'contexts' 键")
+
+        if 'ground_truth' not in df.columns:
+            print("警告: 未找到 'ground_truth' 列。'context_recall' 指标将无法计算。")
+            
+        dataset = Dataset.from_pandas(df)
+        return dataset
+
+    except Exception as e:
+        print(f"加载数据时出错: {e}")
+        return None
+
+
+def load_data_from_list(data_list: List[Dict[str, Any]]):
+    """
+    从字典列表加载数据并转换为 datasets.Dataset。
+    该函数用于 FastAPI 文件上传的场景。
+    """
+    try:
+        df = pd.DataFrame(data_list)
+
+        required_cols = {'question', 'answer', 'contexts'}
+        if not required_cols.issubset(df.columns):
+            raise ValueError("JSON 必须包含 'question', 'answer', 'contexts' 键")
+
+        if 'ground_truth' not in df.columns:
+            print("警告: 未找到 'ground_truth' 列。'context_recall' 指标将无法计算。")
+
+        dataset = Dataset.from_pandas(df)
+        return dataset
+    except Exception as e:
+        raise ValueError(f"加载上传数据时出错: {e}")
+
+# --- 3. 定义指标 ---
+metrics_to_run = [
+    faithfulness,
+    answer_correctness,
+    answer_relevancy,
+    context_precision,
+    context_recall,
+]
+
+# --- 4. 执行评估 ---
+def run_evaluation(dataset_path):
+    print(f"正在从 {dataset_path} 加载数据...")
+    dataset = load_data_from_json(dataset_path)
+
+    if dataset is None:
+        print("数据加载失败,退出评估。")
+        return
+
+    print(f"成功加载 {len(dataset)} 条评估数据。")
+
+    final_metrics = list(metrics_to_run)
+    if 'ground_truth' not in dataset.column_names:
+        print("由于缺少 'ground_truth',将跳过 'context_recall' 指标。")
+        final_metrics.remove(context_recall)
+
+    if not final_metrics:
+        print("没有可执行的指标。退出。")
+        return
+
+    print("开始 RAGAS 评估... (这可能需要一些时间)")
+    
+    # 核心:调用 evaluate
+    result = evaluate(
+        dataset=dataset,
+        metrics=final_metrics,
+        llm=vllm_generator,
+        embeddings=vllm_embeddings
+    )
+
+    print("评估完成!")
+    result_df = result.to_pandas()
+    print(json.dumps(result_df.to_dict(orient="records"), indent=4, ensure_ascii=False))
+
+
+def summarize_metrics(result_df: pd.DataFrame) -> Dict[str, float]:
+    """
+    汇总各指标的平均值,便于前端展示。
+    """
+    summary = {}
+    for col in [
+        'faithfulness',
+        'answer_correctness',
+        'answer_relevancy',
+        'context_precision',
+        'context_recall',
+    ]:
+        if col in result_df.columns:
+            try:
+                summary[col] = float(result_df[col].mean())
+            except Exception:
+                pass
+    return summary
+
+
+def evaluate_dataset(dataset: Dataset, final_metrics: List = None) -> Dict[str, Any]:
+    """
+    针对传入的 Dataset 执行评估,返回行结果与汇总。
+    """
+    if final_metrics is None:
+        final_metrics = list(metrics_to_run)
+
+    # 缺 ground_truth 时移除 context_recall
+    if 'ground_truth' not in dataset.column_names and context_recall in final_metrics:
+        final_metrics.remove(context_recall)
+
+    result = evaluate(
+        dataset=dataset,
+        metrics=final_metrics,
+        llm=vllm_generator,
+        embeddings=vllm_embeddings,
+    )
+
+    result_df = result.to_pandas()
+    print(json.dumps(result_df.to_dict(orient="records"), indent=4, ensure_ascii=False))
+    return {
+        "rows": result_df.to_dict(orient="records"),
+        "summary": summarize_metrics(result_df),
+        "metrics": [m.name for m in final_metrics],
+        "count": len(result_df),
+    }
+
+
+# --- FastAPI 应用 ---
+app = FastAPI()
+
+# 允许本地前端访问
+app.add_middleware(
+    CORSMiddleware,
+    allow_origins=["*"],
+    allow_credentials=True,
+    allow_methods=["*"],
+    allow_headers=["*"],
+)
+
+# 挂载前端静态目录
+frontend_dir = os.path.join(os.path.dirname(__file__), "frontend")
+if os.path.isdir(frontend_dir):
+    app.mount("/static", StaticFiles(directory=frontend_dir), name="static")
+
+
+@app.get("/")
+def index():
+    # 如果存在前端页面则返回
+    index_path = os.path.join(frontend_dir, "index.html")
+    if os.path.isfile(index_path):
+        return FileResponse(index_path)
+    return JSONResponse({"message": "前端未创建,请访问 /api/docs 使用接口。"})
+
+
+@app.post("/api/evaluate")
+async def api_evaluate(file: UploadFile = File(...)):
+    """
+    上传一个 JSON 文件(数组,每项包含 question/answer/contexts/ground_truth 可选),执行评估。
+    """
+    if not file.filename.lower().endswith(".json"):
+        raise HTTPException(status_code=400, detail="仅支持上传 .json 文件")
+
+    try:
+        content = await file.read()
+        data_list = json.loads(content.decode("utf-8"))
+        if not isinstance(data_list, list):
+            raise ValueError("JSON 顶层必须为数组")
+
+        dataset = load_data_from_list(data_list)
+        # ground_truth 缺失时提示前端
+        final_metrics = list(metrics_to_run)
+        if 'ground_truth' not in dataset.column_names and context_recall in final_metrics:
+            final_metrics.remove(context_recall)
+            skipped = ["context_recall"]
+        else:
+            skipped = []
+
+        result_payload = evaluate_dataset(dataset, final_metrics=final_metrics)
+        result_payload["skipped_metrics"] = skipped
+        # print(result_payload)
+        return JSONResponse(result_payload)
+    except Exception as e:
+        raise HTTPException(status_code=400, detail=f"评估失败: {e}")
+
+# --- 主程序入口 ---
+if __name__ == "__main__":
+    # 命令行模式:仍支持直接评估示例文件
+    input_json_file = "dataset.json"
+
+    # 如果设置了环境变量 RUN_SERVER=true,则启动服务
+    run_server = os.environ.get("RUN_SERVER", "").lower() in {"1", "true", "yes"}
+
+    if run_server:
+        # 可通过环境变量 RELOAD 控制是否开启热重载,默认关闭以避免重载中断大型库导入
+        reload_enabled = os.environ.get("RELOAD", "").lower() in {"1", "true", "yes"}
+        uvicorn.run("ragas_eval:app", host="0.0.0.0", port=8000, reload=reload_enabled)
+    else:
+        if not os.path.exists(input_json_file):
+            print(f"错误: 找不到 {input_json_file}")
+            print("请创建一个示例 JSON 文件,结构如下:")
+            print(
+                """
+                [
+                    {
+                        "question": "什么是 RAGAS?",
+                        "answer": "RAGAS 是一个评估 RAG 管道的框架。",
+                        "contexts": [
+                            "RAGAS (Retrieval-Augmented Generation Assessment) 是一个用于评估 RAG 管道的框架。"
+                        ],
+                        "ground_truth": "RAGAS 是一个专为评估 RAG 管道设计的框架,它关注检索和生成的质量。"
+                    }
+                ]
+                """
+            )
+        else:
+            run_evaluation(input_json_file)

+ 420 - 0
RAGAS/ragas_eval_with_rag.py

@@ -0,0 +1,420 @@
+"""
+RAGAS评估脚本 - 集成RAG检索功能
+输入:只需要 question 和 ground_truth 的 JSON 文件
+功能:通过 RAG 系统自动获取 contexts 和 answer,然后进行评估
+
+说明:
+- 使用全部 5 个 RAGAS 指标进行评估
+- 通过增加超时时间和重试机制来减少 NaN 值
+- NaN 值通常由超时或网络问题导致,而非指标本身问题
+"""
+
+import os
+import sys
+import json
+import pandas as pd
+import asyncio
+from datasets import Dataset
+from typing import List, Dict, Any
+
+# 添加项目根目录到 Python 路径
+project_root = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
+sys.path.insert(0, project_root)
+
+# RAGAS 评估相关
+from ragas import evaluate
+from ragas.metrics import (
+    faithfulness,
+    answer_correctness,
+    answer_relevancy,
+    context_precision,
+    context_recall,
+)
+from langchain_openai import ChatOpenAI, OpenAIEmbeddings
+
+# RAG 相关导入
+from rag.chat_message import ChatRetrieverRag
+from rag.llm import VllmApi
+
+# 配置 VLLM 和 Embedding 服务
+VLLM_LLM_BASE = "http://xia0miduo.gicp.net:8102/v1"
+VLLM_LLM_KEY = "vllm-dummy-key"
+VLLM_EMBEDDING_BASE = "http://10.168.100.17:8787/v1/"
+
+# 初始化 RAGAS 评估使用的模型
+vllm_generator = ChatOpenAI(
+    model="Qwen3-Coder-30B-loft",
+    base_url=VLLM_LLM_BASE,
+    api_key=VLLM_LLM_KEY,
+    temperature=0.1,  # 降低温度提高稳定性
+    max_tokens=51200,
+    timeout=3000,  # 增加超时到 300 秒
+    request_timeout=3000,
+    max_retries=5,  # 增加重试次数
+)
+
+vllm_embeddings = OpenAIEmbeddings(
+    model="",
+    base_url=VLLM_EMBEDDING_BASE,
+    api_key=VLLM_LLM_KEY,
+)
+
+# 定义评估指标 - 使用全部 5 个指标
+metrics_to_run = [
+    faithfulness,        # 忠实度:答案是否基于上下文
+    answer_correctness,  # 答案正确性:答案与标准答案的相似度
+    answer_relevancy,    # 答案相关性:答案是否回答了问题
+    context_precision,   # 上下文精确度:检索上下文的精确度
+    context_recall,      # 上下文召回:上下文是否包含答案信息
+]
+
+
+class RAGEvaluator:
+    """集成 RAG 功能的评估器"""
+    
+    def __init__(self, knowledge_ids: List[str], embedding_id: str = "e5"):
+        """
+        初始化评估器
+        
+        Args:
+            knowledge_ids: 知识库 ID 列表
+            embedding_id: 嵌入模型 ID (可选值: "e5", "multilingual-e5-large-instruct")
+        """
+        self.knowledge_ids = knowledge_ids
+        self.embedding_id = embedding_id
+        
+        # RAG 配置参数
+        self.rag_config = {
+            "knowledgeIds": knowledge_ids,
+            "embeddingId": embedding_id,
+            "sliceCount": 5,  # 检索的切片数量
+            "knowledgeInfo": json.dumps({
+                "recall_method": "mixed",  # 检索模式:embedding/keyword/mixed
+                "rerank_status": True,     # 是否启用重排序
+                "rerank_model_name": "bce_rerank_model"
+            }),
+            "temperature": 0.6,
+            "topP": 0.7,
+            "maxToken": 4096,
+            "enable_think": False,
+            "prompt": 
+            """
+            你是一位知识检索助手,你必须并且只能从我发送的众多知识片段中寻找能够解决用户输入问题的最优答案,并且在执行任务的过程中严格执行规定的要求。\n\n知识片段如下:\n{知识}\n\n规定要求:\n- 找到答案就仅使用知识片段中的原文回答用户的提问;\n- 找不到答案就用自身知识并且告诉用户该信息不是来自文档;\n- 所引用的文本片段中所包含的示意图占位符必须进行返回,占位符格式参考:【示意图序号_编号】\n  - 严禁输出任何知识片段中不存在的示意图占位符;\n  - 输出的内容必须删除其中包含的任何图注、序号等信息。例如:“进入登录页面(图1.1)”需要从文字中删除图序,回复效果为:“进入登录页面”;“如图所示1.1”,回复效果为:“如图所示”;\n- 格式规范\n  - 文档中会出现包含表格的情况,表格是以图片标识符的形式呈现,表格中缺失数据时候返回空单元格;\n  - 如果需要用到表格中的数据,以markdown格式输出表格中的数据;\n  - 避免使用代码块语法回复信息;\n  - 回复的开头语不要输出诸如:“我想”,“我认为”,“think”等相关语义的文本。\n\n严格执行规定要求,不要复述问题,直接开始回答。\n\n用户输入问题:\n{用户}
+            """
+            # "请根据以下知识内容回答用户的问题。\n\n知识内容:\n{知识}\n\n用户问题:\n{用户}\n\n请给出准确、详细的回答:",
+        }
+    
+    async def get_rag_response(self, question: str) -> Dict[str, Any]:
+        """
+        通过 RAG 系统获取问题的答案和上下文
+        
+        Args:
+            question: 用户问题
+            
+        Returns:
+            包含 answer 和 contexts 的字典
+        """
+        # 构建 RAG 请求参数
+        chat_json = self.rag_config.copy()
+        chat_json["query"] = question
+        
+        # 创建 RAG 检索器
+        rag_retriever = ChatRetrieverRag(chat_json=chat_json)
+        
+        # 获取检索结果
+        retriever_result_list, search_doc_id_to_knowledge_id_dict = rag_retriever.retriever_result(chat_json)
+        
+        # 解析检索结果,获取上下文内容
+        chunk_content, knowledge_info_dict = rag_retriever.parse_retriever_list(
+            retriever_result_list, 
+            search_doc_id_to_knowledge_id_dict
+        )
+        
+        # 提取 contexts(每个检索到的切片内容)
+        contexts = [item["content"] for item in retriever_result_list]
+        
+        # 生成答案
+        answer = ""
+        async for event in rag_retriever.generate_rag_response(chat_json, chunk_content):
+            if event.get("event") == "add":
+                answer = event.get("data", "")
+            elif event.get("event") == "finish":
+                break
+        
+        return {
+            "answer": answer,
+            "contexts": contexts,
+            "retriever_count": len(retriever_result_list)
+        }
+    
+    async def process_qa_data(self, qa_data: List[Dict[str, str]]) -> List[Dict[str, Any]]:
+        """
+        处理问答数据,通过 RAG 获取 contexts 和 answer
+        
+        Args:
+            qa_data: 包含 question 和 ground_truth 的列表
+            
+        Returns:
+            完整的评估数据集(包含 question, contexts, answer, ground_truth)
+        """
+        full_data = []
+        
+        for idx, item in enumerate(qa_data):
+            question = item.get("question", "")
+            ground_truth = item.get("ground_truth", "")
+            
+            print(f"\n处理第 {idx + 1}/{len(qa_data)} 个问题: {question[:50]}...")
+            
+            try:
+                # 通过 RAG 获取答案和上下文
+                rag_result = await self.get_rag_response(question)
+                
+                full_item = {
+                    "question": question,
+                    "contexts": rag_result["contexts"],
+                    "answer": rag_result["answer"],
+                    "ground_truth": ground_truth,
+                }
+                
+                full_data.append(full_item)
+                
+                print(f"  ✓ 检索到 {rag_result['retriever_count']} 个上下文")
+                print(f"  ✓ 生成答案长度: {len(rag_result['answer'])} 字符")
+                
+            except Exception as e:
+                print(f"  ✗ 处理失败: {e}")
+                # 失败时使用空值
+                full_data.append({
+                    "question": question,
+                    "contexts": [],
+                    "answer": "",
+                    "ground_truth": ground_truth,
+                })
+        
+        return full_data
+
+
+def load_qa_json(json_path: str) -> List[Dict[str, str]]:
+    """
+    加载只包含 question 和 ground_truth 的 JSON 文件
+    
+    Args:
+        json_path: JSON 文件路径
+        
+    Returns:
+        问答数据列表
+    """
+    try:
+        with open(json_path, 'r', encoding='utf-8') as f:
+            data_list = json.load(f)
+        
+        # 验证数据格式
+        if not isinstance(data_list, list):
+            raise ValueError("JSON 文件必须是一个数组")
+        
+        for item in data_list:
+            if "question" not in item or "ground_truth" not in item:
+                raise ValueError("每个数据项必须包含 'question' 和 'ground_truth' 字段")
+        
+        return data_list
+    
+    except Exception as e:
+        print(f"加载 JSON 文件失败: {e}")
+        raise
+
+
+def save_full_dataset(data: List[Dict[str, Any]], output_path: str):
+    """
+    保存完整的数据集(包含 RAG 获取的 contexts 和 answer)
+    
+    Args:
+        data: 完整数据集
+        output_path: 输出文件路径
+    """
+    try:
+        with open(output_path, 'w', encoding='utf-8') as f:
+            json.dump(data, f, ensure_ascii=False, indent=2)
+        print(f"\n完整数据集已保存到: {output_path}")
+    except Exception as e:
+        print(f"保存数据集失败: {e}")
+
+
+def run_evaluation(dataset: Dataset) -> Dict[str, Any]:
+    """
+    执行 RAGAS 评估
+    
+    Args:
+        dataset: 评估数据集
+        
+    Returns:
+        评估结果
+    """
+    print("\n" + "="*60)
+    print("开始 RAGAS 评估...")
+    print("="*60)
+    
+    # 确定要使用的指标
+    final_metrics = list(metrics_to_run)
+    if 'ground_truth' not in dataset.column_names:
+        print("警告: 缺少 'ground_truth',将跳过 'context_recall' 指标")
+        final_metrics.remove(context_recall)
+    
+    # 执行评估
+    print(f"使用指标: {[m.name for m in final_metrics]}")
+    print(f"数据集大小: {len(dataset)} 条")
+    print(f"超时设置: 300 秒")
+    print(f"重试次数: 3 次")
+    print()
+    
+    try:
+        result = evaluate(
+            dataset=dataset,
+            metrics=final_metrics,
+            llm=vllm_generator,
+            embeddings=vllm_embeddings,
+            raise_exceptions=False,  # 不因单个样本失败而中断
+            show_progress=True,  # 显示进度
+        )
+    except Exception as e:
+        print(f"\n评估过程中出现错误: {e}")
+        print("建议:检查 VLLM 服务是否正常运行")
+        raise
+    
+    # 转换为 DataFrame
+    result_df = result.to_pandas()
+    
+    # 计算平均指标(跳过 NaN 值)并统计 NaN 情况
+    summary = {}
+    nan_stats = {}
+    
+    print("\n" + "="*60)
+    print("NaN 值统计:")
+    print("="*60)
+    
+    for col in result_df.columns:
+        if col not in ['question', 'contexts', 'answer', 'ground_truth', 'user_input', 'retrieved_contexts', 'response', 'reference']:
+            try:
+                # # 统计 NaN 数量
+                # nan_count = result_df[col].isna().sum()
+                # total_count = len(result_df)
+                # nan_stats[col] = {
+                #     'nan_count': int(nan_count),
+                #     'total_count': total_count,
+                #     'nan_ratio': float(nan_count / total_count) if total_count > 0 else 0
+                # }
+                
+                # # 打印统计信息
+                # if nan_count > 0:
+                #     print(f"⚠️  {col}: {nan_count}/{total_count} 个 NaN ({nan_count/total_count*100:.1f}%)")
+                # else:
+                #     print(f"✅ {col}: 无 NaN 值")
+                
+                # 使用 nanmean 跳过 NaN 值
+                mean_val = result_df[col].mean(skipna=True)
+                if pd.notna(mean_val):
+                    summary[col] = float(mean_val)
+                else:
+                    summary[col] = None
+                    print(f"   警告: 指标 '{col}' 全部为 NaN,无法计算平均值")
+            except Exception as e:
+                print(f"   错误: 无法处理指标 '{col}': {e}")
+                pass
+    
+    print("\n" + "="*60)
+    print("评估完成!")
+    print("="*60)
+        
+    return {
+        "rows": result_df.to_dict(orient="records"),
+        "summary": summary,
+        "metrics": [m.name for m in final_metrics],
+        "count": len(result_df),
+    }
+
+
+async def main_async(input_json: str, knowledge_ids: List[str], save_full_data: bool = True):
+    """
+    主函数(异步)
+    
+    Args:
+        input_json: 输入 JSON 文件路径(只包含 question 和 ground_truth)
+        knowledge_ids: 知识库 ID 列表
+        save_full_data: 是否保存完整数据集
+    """
+    print("="*60)
+    print("RAGAS 评估脚本 - 集成 RAG 检索")
+    print("="*60)
+    
+    # 1. 加载问答数据
+    print(f"\n步骤 1: 加载问答数据从 {input_json}")
+    qa_data = load_qa_json(input_json)
+    print(f"  ✓ 成功加载 {len(qa_data)} 条问答数据")
+    
+    # 2. 通过 RAG 获取 contexts 和 answer
+    print(f"\n步骤 2: 通过 RAG 系统获取上下文和答案")
+    print(f"  使用知识库: {knowledge_ids}")
+    
+    evaluator = RAGEvaluator(knowledge_ids=knowledge_ids)
+    full_data = await evaluator.process_qa_data(qa_data)
+    
+    # 3. 保存完整数据集(可选)
+    if save_full_data:
+        output_path = input_json.replace(".json", "_full.json")
+        save_full_dataset(full_data, output_path)
+    
+    # 4. 转换为 Dataset 格式
+    print(f"\n步骤 3: 准备评估数据集")
+    df = pd.DataFrame(full_data)
+    dataset = Dataset.from_pandas(df)
+    print(f"  ✓ 数据集准备完成,共 {len(dataset)} 条数据")
+    
+    # 5. 执行评估
+    print(f"\n步骤 4: 执行 RAGAS 评估")
+    result = run_evaluation(dataset)
+    
+    # 6. 输出结果
+    print("\n" + "="*60)
+    print("评估结果汇总")
+    print("="*60)
+    for metric, value in result["summary"].items():
+        print(f"  {metric}: {value:.4f}")
+    
+    # 保存评估结果
+    result_path = input_json.replace(".json", "_result.json")
+    with open(result_path, 'w', encoding='utf-8') as f:
+        json.dump(result, f, ensure_ascii=False, indent=2)
+    print(f"\n评估结果已保存到: {result_path}")
+    
+    return result
+
+
+def main():
+    """主函数入口"""
+    # 配置参数
+    input_json_file = "dataset_qa.json"  # 输入文件(只包含 question 和 ground_truth)
+    knowledge_ids = ["a2963496869283893248"]  # 需要配置实际的知识库 ID
+    
+    # 检查输入文件
+    if not os.path.exists(input_json_file):
+        print(f"错误: 找不到输入文件 {input_json_file}")
+        print("\n请创建一个 JSON 文件,格式如下:")
+        print("""
+[
+    {
+        "question": "谁发明了电话?",
+        "ground_truth": "电话的主要发明者是亚历山大·格拉汉姆·贝尔,他于1876年获得了电话的发明专利。"
+    },
+    {
+        "question": "地球上最大的哺乳动物是什么?",
+        "ground_truth": "地球上最大的哺乳动物是蓝鲸,成年蓝鲸体长可达30米,重量可达180吨。"
+    }
+]
+        """)
+        return
+    
+    # 运行异步主函数
+    asyncio.run(main_async(input_json_file, knowledge_ids, save_full_data=True))
+
+
+if __name__ == "__main__":
+    main()

+ 407 - 0
RAGAS/ragas_eval_with_rag_api.py

@@ -0,0 +1,407 @@
+"""
+RAGAS评估脚本 - 集成RAG检索功能 - FastAPI 版本
+基于 ragas_eval_with_rag.py 创建的 API 服务
+
+功能:
+- 上传 JSON 文件(只需 question 和 ground_truth)
+- 自动通过 RAG 获取 contexts 和 answer
+- 使用全部 5 个 RAGAS 指标进行评估
+- 返回详细的评估结果和统计
+"""
+
+import os
+import sys
+import json
+import pandas as pd
+import asyncio
+import math
+from datasets import Dataset
+from typing import List, Dict, Any
+
+# FastAPI 相关
+from fastapi import FastAPI, UploadFile, File, HTTPException, Form
+from fastapi.middleware.cors import CORSMiddleware
+from fastapi.responses import FileResponse, JSONResponse
+from fastapi.staticfiles import StaticFiles
+import uvicorn
+
+# 添加项目根目录到 Python 路径
+project_root = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
+sys.path.insert(0, project_root)
+
+# RAGAS 评估相关
+from ragas import evaluate
+from ragas.metrics import (
+    faithfulness,
+    answer_correctness,
+    answer_relevancy,
+    context_precision,
+    context_recall,
+    NoiseSensitivity
+)
+from langchain_openai import ChatOpenAI, OpenAIEmbeddings
+
+# RAG 相关导入
+from rag.chat_message import ChatRetrieverRag
+from rag.llm import VllmApi
+
+# 配置 VLLM 和 Embedding 服务
+VLLM_LLM_BASE = "http://xia0miduo.gicp.net:8102/v1"
+VLLM_LLM_KEY = "vllm-dummy-key"
+VLLM_EMBEDDING_BASE = "http://10.168.100.17:8787/v1/"
+
+# 初始化 RAGAS 评估使用的模型
+vllm_generator = ChatOpenAI(
+    model="Qwen3-Coder-30B-loft",
+    base_url=VLLM_LLM_BASE,
+    api_key=VLLM_LLM_KEY,
+    temperature=0.1,
+    max_tokens=51200,
+    timeout=3000,
+    request_timeout=3000,
+    max_retries=5,
+)
+
+vllm_embeddings = OpenAIEmbeddings(
+    model="",
+    base_url=VLLM_EMBEDDING_BASE,
+    api_key=VLLM_LLM_KEY,
+)
+
+# 定义评估指标
+metrics_to_run = [
+    faithfulness,
+    answer_correctness,
+    answer_relevancy,
+    context_precision,
+    context_recall,
+    NoiseSensitivity(llm=vllm_generator)
+]
+
+
+class RAGEvaluator:
+    """集成 RAG 功能的评估器"""
+    
+    def __init__(
+        self,
+        knowledge_ids: List[str],
+        embedding_id: str = "e5",
+        temperature: float = 0.6,
+        top_p: float = 0.7,
+        max_tokens: int = 4096,
+        model: str = "Qwen3-Coder-30B-loft",
+        enable_think: bool = False,
+        slice_count: int = 5
+    ):
+        """初始化评估器
+        
+        Args:
+            knowledge_ids: 知识库 ID 列表
+            embedding_id: 嵌入模型 ID
+            temperature: LLM 温度参数
+            top_p: LLM top_p 参数
+            max_tokens: 最大生成 token 数
+            model: LLM 模型名称
+            enable_think: 是否启用思考模式
+            slice_count: 检索切片数量
+        """
+        self.knowledge_ids = knowledge_ids
+        self.embedding_id = embedding_id
+        self.temperature = temperature
+        self.top_p = top_p
+        self.max_tokens = max_tokens
+        self.model = model
+        self.enable_think = enable_think
+        self.slice_count = slice_count
+        
+        self.rag_config = {
+            "knowledgeIds": knowledge_ids,
+            "embeddingId": embedding_id,
+            "sliceCount": slice_count,
+            "knowledgeInfo": json.dumps({
+                "recall_method": "mixed",
+                "rerank_status": True,
+                "rerank_model_name": "bce_rerank_model"
+            }),
+            "temperature": temperature,
+            "topP": top_p,
+            "maxToken": max_tokens,
+            "enable_think": enable_think,
+            "prompt": """你是一位知识检索助手,你必须并且只能从我发送的众多知识片段中寻找能够解决用户输入问题的最优答案,并且在执行任务的过程中严格执行规定的要求。\n\n知识片段如下:\n{知识}\n\n规定要求:\n- 找到答案就仅使用知识片段中的原文回答用户的提问;\n- 找不到答案就用自身知识并且告诉用户该信息不是来自文档;\n- 所引用的文本片段中所包含的示意图占位符必须进行返回,占位符格式参考:【示意图序号_编号】\n  - 严禁输出任何知识片段中不存在的示意图占位符;\n  - 输出的内容必须删除其中包含的任何图注、序号等信息。例如:"进入登录页面(图1.1)"需要从文字中删除图序,回复效果为:"进入登录页面";"如图所示1.1",回复效果为:"如图所示";\n- 格式规范\n  - 文档中会出现包含表格的情况,表格是以图片标识符的形式呈现,表格中缺失数据时候返回空单元格;\n  - 如果需要用到表格中的数据,以markdown格式输出表格中的数据;\n  - 避免使用代码块语法回复信息;\n  - 回复的开头语不要输出诸如:"我想","我认为","think"等相关语义的文本。\n\n严格执行规定要求,不要复述问题,直接开始回答。\n\n用户输入问题:\n{用户}"""
+        }
+    
+    async def get_rag_response(self, question: str) -> Dict[str, Any]:
+        """通过 RAG 系统获取答案和上下文"""
+        chat_json = self.rag_config.copy()
+        chat_json["query"] = question
+        
+        rag_retriever = ChatRetrieverRag(chat_json=chat_json)
+        retriever_result_list, search_doc_id_to_knowledge_id_dict = rag_retriever.retriever_result(chat_json)
+        chunk_content, knowledge_info_dict = rag_retriever.parse_retriever_list(
+            retriever_result_list, 
+            search_doc_id_to_knowledge_id_dict
+        )
+        
+        contexts = [item["content"] for item in retriever_result_list]
+        
+        answer = ""
+        async for event in rag_retriever.generate_rag_response(chat_json, chunk_content):
+            if event.get("event") == "add":
+                answer = event.get("data", "")
+            elif event.get("event") == "finish":
+                break
+        
+        return {
+            "answer": answer,
+            "contexts": contexts,
+            "retriever_count": len(retriever_result_list)
+        }
+    
+    async def process_qa_data(self, qa_data: List[Dict[str, str]]) -> List[Dict[str, Any]]:
+        """处理问答数据,通过 RAG 获取 contexts 和 answer"""
+        full_data = []
+        
+        for idx, item in enumerate(qa_data):
+            question = item.get("question", "")
+            ground_truth = item.get("ground_truth", "")
+            
+            print(f"处理第 {idx + 1}/{len(qa_data)} 个问题: {question[:50]}...")
+            
+            try:
+                rag_result = await self.get_rag_response(question)
+                
+                full_item = {
+                    "question": question,
+                    "contexts": rag_result["contexts"],
+                    "answer": rag_result["answer"],
+                    "ground_truth": ground_truth,
+                }
+                
+                full_data.append(full_item)
+                print(f"  ✓ 检索到 {rag_result['retriever_count']} 个上下文")
+                
+            except Exception as e:
+                print(f"  ✗ 处理失败: {e}")
+                full_data.append({
+                    "question": question,
+                    "contexts": [],
+                    "answer": "",
+                    "ground_truth": ground_truth,
+                })
+        
+        return full_data
+
+
+def _clean_float_values(obj):
+    """清理非法浮点数值(NaN, Infinity)为 None"""
+    if isinstance(obj, float):
+        if math.isnan(obj) or math.isinf(obj):
+            return None
+        return obj
+    elif isinstance(obj, dict):
+        return {k: _clean_float_values(v) for k, v in obj.items()}
+    elif isinstance(obj, list):
+        return [_clean_float_values(item) for item in obj]
+    return obj
+
+
+def run_evaluation(dataset: Dataset) -> Dict[str, Any]:
+    """执行 RAGAS 评估"""
+    print("\n" + "="*60)
+    print("开始 RAGAS 评估...")
+    print("="*60)
+    
+    final_metrics = list(metrics_to_run)
+    if 'ground_truth' not in dataset.column_names:
+        print("警告: 缺少 'ground_truth',将跳过 'context_recall' 指标")
+        final_metrics.remove(context_recall)
+    
+    print(f"使用指标: {[m.name for m in final_metrics]}")
+    print(f"数据集大小: {len(dataset)} 条\n")
+    
+    try:
+        result = evaluate(
+            dataset=dataset,
+            metrics=final_metrics,
+            llm=vllm_generator,
+            embeddings=vllm_embeddings,
+            raise_exceptions=False,
+            show_progress=True,
+        )
+    except Exception as e:
+        print(f"\n评估过程中出现错误: {e}")
+        raise
+    
+    result_df = result.to_pandas()
+    
+    # 替换 DataFrame 中的 NaN 和 Infinity 为 None
+    result_df = result_df.replace([float('inf'), float('-inf')], None)
+    result_df = result_df.where(pd.notna(result_df), None)
+    
+    # 计算平均指标(仅计算真正的评估指标)
+    metric_names = [m.name for m in final_metrics]
+    summary = {}
+    for metric_name in metric_names:
+        if metric_name in result_df.columns:
+            try:
+                mean_val = result_df[metric_name].mean(skipna=True)
+                if pd.notna(mean_val) and math.isfinite(mean_val):
+                    summary[metric_name] = float(mean_val)
+                else:
+                    summary[metric_name] = None
+            except Exception:
+                summary[metric_name] = None
+    
+    print("\n" + "="*60)
+    print("评估完成!")
+    print("="*60)
+    
+    # 转换为字典并清理
+    rows = result_df.to_dict(orient="records")
+    
+    return {
+        "rows": _clean_float_values(rows),  # 清理 NaN 和 Infinity, rows是评估结果的详细信息
+        "summary": _clean_float_values(summary),    # 清理 NaN 和 Infinity, summary是评估结果的汇总信息
+        "metrics": [m.name for m in final_metrics], # final_metrics是评估指标
+        "count": len(result_df),    # 评估指标数
+    }
+
+
+# FastAPI 应用
+app = FastAPI(
+    title="RAGAS RAG 评估 API",
+    description="集成 RAG 检索功能的 RAGAS 评估服务",
+    version="1.0.0"
+)
+
+app.add_middleware(
+    CORSMiddleware,
+    allow_origins=["*"],
+    allow_credentials=True,
+    allow_methods=["*"],
+    allow_headers=["*"],
+)
+
+# 挂载前端静态文件
+frontend_dir = os.path.join(os.path.dirname(__file__), "frontend")
+if os.path.isdir(frontend_dir):
+    app.mount("/static", StaticFiles(directory=frontend_dir), name="static")
+
+
+@app.get("/")
+def index():
+    """首页"""
+    # 优先使用 rag_eval.html
+    rag_eval_path = os.path.join(frontend_dir, "rag_eval.html")
+    if os.path.isfile(rag_eval_path):
+        return FileResponse(rag_eval_path)
+    
+    # 备用 index.html
+    index_path = os.path.join(frontend_dir, "index.html")
+    if os.path.isfile(index_path):
+        return FileResponse(index_path)
+    
+    return JSONResponse({
+        "message": "RAGAS RAG 评估 API",
+        "docs": "/docs",
+        "version": "1.0.0"
+    })
+
+
+@app.post("/api/evaluate")
+async def api_evaluate(
+    file: UploadFile = File(...),
+    knowledge_ids: str = Form(...),
+    embedding_id: str = Form("e5"),
+    temperature: float = Form(0.6),
+    top_p: float = Form(0.7),
+    max_tokens: int = Form(4096),
+    model: str = Form("Qwen3-Coder-30B-loft"),
+    enable_think: bool = Form(False),
+    slice_count: int = Form(5)
+):
+    """
+    评估接口
+    
+    参数:
+    - file: JSON 文件(包含 question 和 ground_truth)
+    - knowledge_ids: 知识库 ID,多个用逗号分隔
+    - embedding_id: 嵌入模型 ID(默认 e5)
+    - temperature: LLM 温度参数(默认 0.6)
+    - top_p: LLM top_p 参数(默认 0.7)
+    - max_tokens: 最大生成 token 数(默认 4096)
+    - model: LLM 模型名称(默认 Qwen3-Coder-30B-loft)
+    - enable_think: 是否启用思考模式(默认 False)
+    - slice_count: 检索切片数量(默认 5)
+    """
+    if not file.filename.lower().endswith(".json"):
+        raise HTTPException(status_code=400, detail="仅支持 .json 文件")
+    
+    try:
+        # 解析知识库 ID
+        knowledge_id_list = [kid.strip() for kid in knowledge_ids.split(",") if kid.strip()]
+        if not knowledge_id_list:
+            raise ValueError("knowledge_ids 不能为空")
+        
+        # 读取文件
+        content = await file.read()
+        qa_data = json.loads(content.decode("utf-8"))
+        
+        if not isinstance(qa_data, list):
+            raise ValueError("JSON 必须是数组格式")
+        
+        if not qa_data:
+            raise ValueError("数据不能为空")
+        
+        # 初始化评估器
+        print(f"\n配置: 模型={model}, 温度={temperature}, top_p={top_p}, 切片数={slice_count}")
+        evaluator = RAGEvaluator(
+            knowledge_ids=knowledge_id_list,
+            embedding_id=embedding_id,
+            temperature=temperature,
+            top_p=top_p,
+            max_tokens=max_tokens,
+            model=model,
+            enable_think=enable_think,
+            slice_count=slice_count
+        )
+        
+        # 处理数据
+        print(f"\n开始处理 {len(qa_data)} 条数据...")
+        full_data = await evaluator.process_qa_data(qa_data)
+        
+        # 创建 Dataset
+        dataset = Dataset.from_dict({
+            "question": [item["question"] for item in full_data],
+            "contexts": [item["contexts"] for item in full_data],
+            "answer": [item["answer"] for item in full_data],
+            "ground_truth": [item["ground_truth"] for item in full_data],
+        })
+        
+        # 执行评估
+        result = run_evaluation(dataset)
+        
+        return JSONResponse(result)
+        
+    except json.JSONDecodeError as e:
+        raise HTTPException(status_code=400, detail=f"JSON 解析失败: {e}")
+    except Exception as e:
+        import traceback
+        error_detail = f"评估失败: {e}\n{traceback.format_exc()}"
+        print(error_detail)
+        raise HTTPException(status_code=500, detail=str(e))
+
+
+if __name__ == "__main__":
+    port = int(os.environ.get("PORT", "8001"))
+    
+    print(f"启动 RAGAS RAG 评估 API 服务...")
+    print(f"访问地址: http://0.0.0.0:{port}")
+    print(f"API 文档: http://0.0.0.0:{port}/docs")
+    
+    uvicorn.run(
+        "ragas_eval_with_rag_api:app",
+        host="0.0.0.0",
+        port=port,
+        reload=False
+    )

+ 168 - 0
RAGAS/requirements.txt

@@ -0,0 +1,168 @@
+aiohappyeyeballs==2.6.1
+aiohttp==3.13.2
+aiosignal==1.4.0
+annotated-doc==0.0.3
+annotated-types==0.7.0
+anyio==4.11.0
+appdirs==1.4.4
+astor==0.8.1
+async-timeout==4.0.3
+attrs==25.4.0
+blake3==1.0.8
+cachetools==6.2.1
+cbor2==5.7.1
+certifi==2025.10.5
+cffi==2.0.0
+cfgv==3.4.0
+charset-normalizer==3.4.4
+click==8.3.0
+cloudpickle==3.1.1
+colorama==0.4.6
+compressed-tensors==0.11.0
+dataclasses-json==0.6.7
+datasets==4.3.0
+depyf==0.19.0
+dill==0.4.0
+diskcache==5.6.3
+distlib==0.4.0
+distro==1.9.0
+dnspython==2.8.0
+docstring_parser==0.17.0
+einops==0.8.1
+email-validator==2.3.0
+exceptiongroup==1.3.0
+fastapi==0.120.4
+fastapi-cli==0.0.14
+fastapi-cloud-cli==0.3.1
+filelock==3.20.0
+frozendict==2.4.6
+frozenlist==1.8.0
+fsspec==2025.9.0
+gguf==0.17.1
+gitdb==4.0.12
+GitPython==3.1.45
+greenlet==3.2.4
+h11==0.16.0
+hf-xet==1.2.0
+httpcore==1.0.9
+httptools==0.7.1
+httpx==0.28.1
+httpx-sse==0.4.3
+huggingface-hub==0.36.0
+identify==2.6.15
+idna==3.11
+instructor==1.12.0
+interegular==0.3.3
+Jinja2==3.1.6
+jiter==0.10.0
+jsonpatch==1.33
+jsonpointer==3.0.0
+jsonschema==4.25.1
+jsonschema-specifications==2025.9.1
+langchain==1.0.3
+langchain-classic==1.0.0
+langchain-community==0.4.1
+langchain-core==1.0.2
+langchain-openai==1.0.1
+langchain-text-splitters==1.0.0
+langgraph==1.0.2
+langgraph-checkpoint==3.0.0
+langgraph-prebuilt==1.0.2
+langgraph-sdk==0.2.9
+langsmith==0.4.39
+lark==1.2.2
+lm-format-enforcer==0.11.3
+markdown-it-py==4.0.0
+MarkupSafe==3.0.3
+marshmallow==3.26.1
+mdurl==0.1.2
+mistral_common==1.8.5
+mpmath==1.3.0
+msgspec==0.19.0
+multidict==6.7.0
+multiprocess==0.70.16
+mypy_extensions==1.1.0
+nest-asyncio==1.6.0
+networkx==3.4.2
+ninja==1.13.0
+nodeenv==1.9.1
+numpy>=2.0,<2.3.0
+openai==1.109.1
+openai-harmony==0.0.4
+opencv-python-headless==4.12.0.88
+orjson==3.11.4
+ormsgpack==1.11.0
+outlines_core==0.2.11
+packaging==23.2
+pandas==2.3.3
+partial-json-parser==0.2.1.1.post6
+pillow==12.0.0
+platformdirs==4.5.0
+pre_commit==4.3.0
+prometheus-fastapi-instrumentator==7.1.0
+prometheus_client==0.23.1
+propcache==0.4.1
+protobuf==6.33.0
+psutil==7.1.3
+py-cpuinfo==9.0.0
+pyarrow==22.0.0
+pybase64==1.4.2
+pycountry==24.6.1
+pycparser==2.23
+pydantic==2.12.3
+pydantic-extra-types==2.10.6
+pydantic-settings==2.11.0
+pydantic_core==2.41.4
+Pygments==2.19.2
+python-dateutil==2.9.0.post0
+python-dotenv==1.2.1
+python-json-logger==4.0.0
+python-multipart==0.0.20
+pytz==2025.2
+PyYAML==6.0.3
+pyzmq==27.1.0
+ragas==0.3.8
+referencing==0.37.0
+regex==2025.10.23
+requests==2.32.5
+requests-toolbelt==1.0.0
+rich==14.2.0
+rich-toolkit==0.15.1
+rignore==0.7.3
+rpds-py==0.28.0
+safetensors==0.6.2
+scikit-network==0.33.3
+scipy==1.15.3
+sentencepiece==0.2.1
+sentry-sdk==2.43.0
+setproctitle==1.3.7
+shellingham==1.5.4
+six==1.17.0
+smmap==5.0.2
+sniffio==1.3.1
+soundfile==0.13.1
+soxr==1.0.0
+SQLAlchemy==2.0.44
+starlette==0.49.3
+sympy==1.14.0
+tenacity==8.5.0
+tiktoken==0.12.0
+tokenizers==0.22.1
+torch==2.9.0
+tqdm==4.67.1
+transformers==4.57.1
+typer==0.20.0
+typer-slim==0.20.0
+typing-inspect==0.9.0
+typing-inspection==0.4.2
+typing_extensions==4.15.0
+tzdata==2025.2
+urllib3==2.5.0
+uvicorn==0.38.0
+virtualenv==20.35.4
+vllm==0.11.0
+watchfiles==1.1.1
+websockets==15.0.1
+xxhash==3.6.0
+yarl==1.22.0
+zstandard==0.25.0

+ 130 - 0
config.py

@@ -0,0 +1,130 @@
+# 测试环境
+
+# 本地milvus
+milvus_uri = "http://10.1.14.18:19530"
+
+# 测试环境 mysql 数据库配置
+mysql_config = {
+        # "host": "10.168.100.144",
+        # "port": 3306,
+        # "host": "xia0miduo.gicp.net",
+        "host": "10.1.14.18",
+        # "port": 3336,
+        "port": 3306,
+        # "user": "root",
+        "user": "test",
+        # "password": "T@kai2025",
+        "password": "J7#mQ!vP9xL@nR2sK&ea",
+        "database": "jk_rag",
+        # "database": "deepseek_local",
+        # "database": "rag_master",
+        "autocommit": True
+}
+
+# 测试minio配置
+minio_config = {
+    "minio_endpoint" : '10.1.14.18:9000',
+    "minio_access_key" : 'jkragminio',
+    "minio_secret_key" : 'Hfe2RpFaU92objoHxt*AxEjh',
+    "minio_bucket" : 'jk-rag',
+    "minio_url": "http://10.1.14.18:9000",
+    "flag": False
+}
+
+# 测试环境vllm 链接
+# vllm_url = "http://xia0miduo.gicp.net:8102/v1"
+model_name_vllm_url_dict = {
+    "deepseek-chat":"https://api.deepseek.com",
+    "DeepSeek-R1-Distill-Qwen-14B": "http://xia0miduo.gicp.net:8102/v1",
+    "deepcoder-14b-sft": "http://xia0miduo.gicp.net:8102/v1",
+    "Qwen3-Coder-30B-loft": "http://127.0.0.1:8102/v1",
+    "/opt/vllm/models/Qwen/Qwen3-30B-A3B-Instruct-2507": "http://127.0.0.1:8102/v1"
+}
+
+
+# 测试环境redis 配置
+redis_config_dict = {
+    "host": "10.1.14.17",
+    "port": 6379,
+    "db": 1
+}
+
+# 进度反馈Java中转服务器配置
+progress_callback_config = {
+    # "base_url": "http://10.10.10.5:9080",
+    "base_url": "http://10.1.14.17:9080",
+    # "default_url": "http://10.10.10.2:9080/resource/sse/send",
+    # "default_url": "http://10.168.100.4:9080/resource/sse/send",
+    "timeout": 5,
+    "estimate_seconds": 120
+}
+
+# Dots OCR 解析器配置
+dots_ocr_config = {
+    "protocol": "http",
+    "ip": "localhost",
+    "port": 8090,
+    "model_name": "model",
+    "temperature": 0.1,
+    "top_p": 1.0,
+    "max_completion_tokens": 16384,
+    "num_thread": 64,
+    "dpi": 200,
+    "output_dir": "./tmp_file/dots_parsed"
+}
+
+# PaddleOCR-VL 解析器配置
+paddleocr_config = {
+    "service_url": "http://127.0.0.1:8119",
+    # "vl_server_url": "http://127.0.0.1:8118/v1",
+    "vl_server_url": "http://127.0.0.1:8118/v1",
+    "output_dir": "./tmp_file/paddleocr_parsed",
+    "timeout": 600000,
+    "title_optimization": {
+        "enable": True,
+        "api_key": "empty",
+        "base_url": "http://xia0miduo.gicp.net:8102/v1",
+        "model": "Qwen3-Coder-30B-loft",
+        "max_retries": 3
+    }
+} 
+
+
+
+# 线上环境
+
+# # 线上环境 mysql 数据库配置
+# mysql_config = {
+#         "host": "127.0.0.1",
+#         "port": 3306,
+#         "user": "root",
+#         "password": "Lx304307910",
+#         "database": "chat_deepseek",
+# }
+
+# # 线上milvus配置
+# milvus_uri = "http://127.0.0.1:19530"
+
+# # 线上minio配置
+# minio_config = {
+#         "minio_endpoint" : '10.1.28.14:9000',
+#         "minio_access_key" : 'uavadmin',
+#         "minio_secret_key" : 'YEDG9DZ8oby97UGMyxW&',
+#         "minio_bucket" : 'deepseek-doc',
+#         "minio_url": "https://10.1.28.14:9000",
+#         "flag": True
+# }
+
+# # 线上vllm 链接
+# # vllm_url = "http://10.1.27.6:11817/v1"
+# model_name_vllm_url_dict = {
+#     "Qwen3-30B": "http://10.1.27.6:11817/v1",
+#     "Qwen2-72B": "http://10.1.27.6:11818/v1",
+# }
+
+# # 线上环境redis 配置
+# redis_config_dict = {
+#     "host": "localhost",
+#     "port": 6379,
+#     "db": 1
+# } 

+ 466 - 0
data_cleanup_script.py

@@ -0,0 +1,466 @@
+import sys
+import os
+import logging
+from datetime import datetime
+from typing import List, Dict, Set, Tuple, Optional
+import mysql.connector
+from mysql.connector import Error
+from pymilvus import MilvusClient
+
+# 添加项目路径到sys.path
+sys.path.append(os.path.dirname(os.path.abspath(__file__)))
+
+from config import milvus_uri, mysql_config
+from utils.get_logger import setup_logger
+
+# 日志
+logger = setup_logger(__name__)
+
+class VectorDataCleaner:
+    """向量数据清理工具类"""
+    
+    def __init__(self):
+        """初始化数据清理工具"""
+        self.mysql_config = mysql_config
+        self.milvus_uri = milvus_uri
+        self.milvus_client = None
+        self.mysql_conn = None
+        self._connect_databases()
+
+    def _ensure_mysql_connection(self):
+        if not self.mysql_conn or not self.mysql_conn.is_connected():
+            logger.warning("MySQL连接失效,尝试重连")
+            self.mysql_conn = mysql.connector.connect(**self.mysql_config)
+
+    def _connect_databases(self):
+        """连接数据库"""
+        # 连接MySQL
+        try:
+            self.mysql_conn = mysql.connector.connect(**self.mysql_config)
+            logger.info("MySQL数据库连接成功")
+        except Error as e:
+            logger.error(f"MySQL数据库连接失败: {e}")
+            raise
+        
+        # 连接Milvus
+        try:
+            self.milvus_client = MilvusClient(uri=self.milvus_uri)
+            logger.info("Milvus向量数据库连接成功")
+        except Exception as e:
+            logger.error(f"Milvus向量数据库连接失败: {e}")
+            raise
+    
+    def close_connections(self):
+        """关闭数据库连接"""
+        if self.mysql_conn:
+            self.mysql_conn.close()
+            logger.info("MySQL连接已关闭")
+        # Milvus客户端会自动管理连接
+    
+    def get_mysql_slices(self, knowledge_id: str, document_id: str = None, mode: str = "gc") -> Set[str]:
+        """
+        从MySQL获取指定知识库/文件的所有切片ID
+        
+        Args:
+            knowledge_id: 知识库ID
+            document_id: 文档ID,可选。如果不提供则获取整个知识库的切片
+            
+        Returns:
+            Set[str]: 切片ID集合
+        """
+        # if not self.mysql_conn:
+        #     logger.error("MySQL连接未建立")
+        #     return set()
+
+        self._ensure_mysql_connection()
+        
+        cursor = None
+        try:
+            cursor = self.mysql_conn.cursor()
+
+            if mode == "jt":
+            
+                if document_id:
+                    # 查询指定文档的切片
+                    query = """
+                    SELECT slice_id FROM slice_info 
+                    WHERE knowledge_id = %s AND document_id = %s AND del_flag != "1"
+                    """
+                    cursor.execute(query, (knowledge_id, document_id))
+                    logger.info(f"查询知识库 {knowledge_id} 中文档 {document_id} 的切片")
+                else:
+                    # 查询整个知识库的切片
+                    query = """
+                    SELECT slice_id FROM slice_info 
+                    WHERE knowledge_id = %s AND del_flag != "1"
+                    """
+                    cursor.execute(query, (knowledge_id,))
+                    logger.info(f"查询知识库 {knowledge_id} 的所有切片")
+            elif mode == "gc":
+                
+                if document_id:
+                    # 查询指定文档的切片
+                    query = """
+                    SELECT slice_id FROM slice_info 
+                    WHERE knowledge_id = %s AND document_id = %s
+                    """
+                    cursor.execute(query, (knowledge_id, document_id))
+                    logger.info(f"查询知识库 {knowledge_id} 中文档 {document_id} 的切片")
+                else:
+                    # 查询整个知识库的切片
+                    query = """
+                    SELECT slice_id FROM slice_info 
+                    WHERE knowledge_id = %s
+                    """
+                    cursor.execute(query, (knowledge_id,))
+                    logger.info(f"查询知识库 {knowledge_id} 的所有切片")
+
+            
+            results = cursor.fetchall()
+            slice_ids = {row[0] for row in results}
+            
+            logger.info(f"MySQL中找到 {len(slice_ids)} 个切片")
+            return slice_ids, True
+            
+        except Error as e:
+            logger.error(f"查询MySQL切片数据失败: {e}")
+            return set(), False
+        finally:
+            if cursor:
+                cursor.close()
+    
+    def get_milvus_slices(self, knowledge_id: str, document_id: str = None) -> Set[str]:
+        """
+        从Milvus获取指定知识库/文件的所有切片ID
+        
+        Args:
+            knowledge_id: 知识库ID(也是collection名称)
+            document_id: 文档ID,可选。如果不提供则获取整个知识库的切片
+            
+        Returns:
+            Set[str]: 切片ID集合
+        """
+        if not self.milvus_client:
+            logger.error("Milvus连接未建立")
+            return set()
+        
+        try:
+            # 检查collection是否存在
+            if not self.milvus_client.has_collection(collection_name=knowledge_id):
+                logger.warning(f"Milvus中不存在知识库 {knowledge_id} 对应的collection")
+                return set()
+            
+            # 构建查询条件
+            if document_id:
+                filter_expr = f"doc_id == '{document_id}'"
+                logger.info(f"查询Milvus知识库 {knowledge_id} 中文档 {document_id} 的切片")
+            else:
+                filter_expr = None
+                logger.info(f"查询Milvus知识库 {knowledge_id} 的所有切片")
+            
+            # 查询所有切片ID(分批查询以避免限制)
+            all_results = []
+            offset = 0
+            limit = 10000  # 每次查询10000条
+            
+            while True:
+                results = self.milvus_client.query(
+                    collection_name=knowledge_id,
+                    filter=filter_expr,
+                    output_fields=["chunk_id"],
+                    limit=limit,
+                    offset=offset
+                )
+                
+                if not results:
+                    break
+                    
+                all_results.extend(results)
+                
+                # 如果返回的结果少于limit,说明已经查询完毕
+                if len(results) < limit:
+                    break
+                    
+                offset += limit
+            
+            results = all_results
+            
+            slice_ids = {result["chunk_id"] for result in results if "chunk_id" in result}
+            
+            logger.info(f"Milvus中找到 {len(slice_ids)} 个切片")
+            return slice_ids
+            
+        except Exception as e:
+            logger.error(f"查询Milvus切片数据失败: {e}")
+            return set()
+    
+    def get_milvus_slice_details(self, knowledge_id: str, chunk_ids: List[str]) -> List[Dict]:
+        """
+        获取Milvus中指定切片的详细信息
+        
+        Args:
+            knowledge_id: 知识库ID
+            chunk_ids: 切片ID列表
+            
+        Returns:
+            List[Dict]: 切片详细信息列表
+        """
+        if not self.milvus_client or not chunk_ids:
+            return []
+        
+        try:
+            # 构建查询条件
+            chunk_ids_str = "', '".join(chunk_ids)
+            filter_expr = f"chunk_id in ['{chunk_ids_str}']"
+            
+            results = self.milvus_client.query(
+                collection_name=knowledge_id,
+                filter=filter_expr,
+                output_fields=["pk", "chunk_id", "doc_id", "content"],
+                limit=len(chunk_ids)
+            )
+            
+            return results
+            
+        except Exception as e:
+            logger.error(f"获取Milvus切片详细信息失败: {e}")
+            return []
+    
+    def delete_milvus_slices(self, knowledge_id: str, chunk_ids: List[str]) -> Tuple[bool, str]:
+        """
+        删除Milvus中的指定切片
+        
+        Args:
+            knowledge_id: 知识库ID
+            chunk_ids: 要删除的切片ID列表
+            
+        Returns:
+            Tuple[bool, str]: (是否成功, 消息)
+        """
+        if not self.milvus_client or not chunk_ids:
+            return True, "没有需要删除的切片"
+        
+        try:
+            # 分批删除,避免一次删除太多数据
+            batch_size = 100
+            total_deleted = 0
+            
+            for i in range(0, len(chunk_ids), batch_size):
+                batch_chunk_ids = chunk_ids[i:i + batch_size]
+                
+                # 先查询获取主键
+                chunk_ids_str = "', '".join(batch_chunk_ids)
+                filter_expr = f"chunk_id in ['{chunk_ids_str}']"
+                
+                results = self.milvus_client.query(
+                    collection_name=knowledge_id,
+                    filter=filter_expr,
+                    output_fields=["pk"],
+                    limit=len(batch_chunk_ids)
+                )
+                
+                if not results:
+                    continue
+                
+                # 提取主键
+                primary_keys = [result["pk"] for result in results]
+                
+                # 执行删除
+                delete_result = self.milvus_client.delete(
+                    collection_name=knowledge_id,
+                    ids=primary_keys
+                )
+                
+                total_deleted += len(primary_keys)
+                logger.info(f"删除了 {len(primary_keys)} 个切片,累计删除 {total_deleted} 个")
+            
+            # 执行flush和compact操作
+            self.milvus_client.flush(collection_name=knowledge_id)
+            logger.info(f"成功删除 {total_deleted} 个脏数据切片")
+            
+            return True, f"成功删除 {total_deleted} 个脏数据切片"
+            
+        except Exception as e:
+            logger.error(f"删除Milvus切片失败: {e}")
+            return False, f"删除失败: {str(e)}"
+    
+    def cleanup_data(self, knowledge_id: str, document_id: str = None, dry_run: bool = True) -> Dict:
+        """
+        执行数据清理
+        
+        Args:
+            knowledge_id: 知识库ID
+            document_id: 文档ID,可选
+            dry_run: 是否为试运行模式(不实际删除数据)
+            
+        Returns:
+            Dict: 清理结果统计
+        """
+        logger.info(f"开始数据清理 - 知识库: {knowledge_id}, 文档: {document_id or '全部'}, 试运行: {dry_run}")
+        
+        # 检查数据库连接
+        if not self.mysql_conn:
+            return {"error": "MySQL连接失败"}
+        
+        if not self.milvus_client:
+            return {"error": "Milvus连接失败"}
+        
+        try:
+            # 获取MySQL中的切片ID
+            mysql_slice_ids, success = self.get_mysql_slices(knowledge_id, document_id)
+            if not success:
+                return {"error": "MySQL查询失败"}
+            
+            # 获取Milvus中的切片ID
+            milvus_slice_ids = self.get_milvus_slices(knowledge_id, document_id)
+            
+            # 找出需要删除的切片(在Milvus中但不在MySQL中)
+            dirty_slice_ids = milvus_slice_ids - mysql_slice_ids
+            
+            # 找出缺失的切片(在MySQL中但不在Milvus中)
+            missing_slice_ids = mysql_slice_ids - milvus_slice_ids
+            
+            result = {
+                "knowledge_id": knowledge_id,
+                "document_id": document_id,
+                "mysql_slice_count": len(mysql_slice_ids),
+                "milvus_slice_count": len(milvus_slice_ids),
+                "dirty_slice_count": len(dirty_slice_ids),
+                "missing_slice_count": len(missing_slice_ids),
+                "dirty_slice_ids": list(dirty_slice_ids),
+                "missing_slice_ids": list(missing_slice_ids),
+                "dry_run": dry_run
+            }
+            
+            logger.info(f"数据统计 - MySQL切片: {len(mysql_slice_ids)}, "
+                       f"Milvus切片: {len(milvus_slice_ids)}, "
+                       f"脏数据: {len(dirty_slice_ids)}, "
+                       f"缺失数据: {len(missing_slice_ids)}")
+            
+            if dirty_slice_ids:
+                if dry_run:
+                    logger.info(f"试运行模式 - 发现 {len(dirty_slice_ids)} 个脏数据切片,不会实际删除")
+                    # 获取脏数据的详细信息用于日志记录
+                    dirty_details = self.get_milvus_slice_details(knowledge_id, list(dirty_slice_ids)[:10])  # 只获取前10个的详情
+                    result["dirty_slice_samples"] = dirty_details
+                else:
+                    logger.info(f"开始删除 {len(dirty_slice_ids)} 个脏数据切片")
+                    success, message = self.delete_milvus_slices(knowledge_id, list(dirty_slice_ids))
+                    result["delete_success"] = success
+                    result["delete_message"] = message
+            else:
+                logger.info("没有发现脏数据,数据一致性良好")
+                result["delete_success"] = True
+                result["delete_message"] = "没有脏数据需要删除"
+            
+            if missing_slice_ids:
+                logger.warning(f"发现 {len(missing_slice_ids)} 个切片在MySQL中存在但在Milvus中缺失")
+            
+            return result
+            
+        except Exception as e:
+            logger.error(f"数据清理过程中发生错误: {e}")
+            return {"error": str(e)}
+        finally:
+            # 注意:不在这里关闭连接,因为可能还需要使用
+            pass
+    
+    def generate_report(self, result: Dict) -> str:
+        """
+        生成清理报告
+        
+        Args:
+            result: 清理结果
+            
+        Returns:
+            str: 格式化的报告
+        """
+        if "error" in result:
+            return f"清理失败: {result['error']}"
+        
+        report = f"""
+数据清理报告
+{'='*50}
+知识库ID: {result['knowledge_id']}
+文档ID: {result.get('document_id', '全部文档')}
+执行时间: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}
+试运行模式: {'是' if result['dry_run'] else '否'}
+
+数据统计:
+- MySQL中的切片数量: {result['mysql_slice_count']}
+- Milvus中的切片数量: {result['milvus_slice_count']}
+- 脏数据切片数量: {result['dirty_slice_count']}
+- 缺失切片数量: {result['missing_slice_count']}
+
+清理结果:
+- 删除状态: {'成功' if result.get('delete_success', False) else '失败'}
+- 删除消息: {result.get('delete_message', 'N/A')}
+
+建议:
+"""
+        
+        if result['dirty_slice_count'] > 0:
+            report += f"- 发现 {result['dirty_slice_count']} 个脏数据切片"
+            if result['dry_run']:
+                report += ",建议在非试运行模式下执行清理\n"
+            else:
+                report += ",已执行清理\n"
+        else:
+            report += "- 数据一致性良好,无需清理\n"
+        
+        if result['missing_slice_count'] > 0:
+            report += f"- 发现 {result['missing_slice_count']} 个切片在Milvus中缺失,建议检查数据同步\n"
+        
+        return report
+
+
+def main():
+    """主函数"""
+    import argparse
+    
+    parser = argparse.ArgumentParser(description='数据清理脚本 - 清理向量库中的脏数据')
+    parser.add_argument('knowledge_id', help='知识库ID')
+    parser.add_argument('--document_id', help='文档ID(可选,不提供则清理整个知识库)')
+    parser.add_argument('--dry-run', action='store_true', default=True, 
+                       help='试运行模式(默认开启,不实际删除数据)')
+    parser.add_argument('--execute', action='store_true', 
+                       help='实际执行删除操作(关闭运行模式)')
+    
+    args = parser.parse_args()
+    
+    # 如果指定了--execute,则关闭运行模式
+    dry_run = args.execute
+    
+    # 创建清理工具
+    cleanup_tool = VectorDataCleaner()
+    
+    try:
+        # 执行清理
+        result = cleanup_tool.cleanup_data(
+            knowledge_id=args.knowledge_id,
+            document_id=args.document_id,
+            dry_run=dry_run
+        )
+        
+        # 生成并保存报告
+        report = cleanup_tool.generate_report(result)
+        print(report)
+    finally:
+        # 关闭连接
+        cleanup_tool.close_connections()
+    
+    # 保存报告到文件
+    timestamp = datetime.now().strftime('%Y%m%d_%H%M%S')
+    os.makedirs("./data_clean", exist_ok=True)
+    report_filename = f"./data_clean/data_cleanup_report_{args.knowledge_id}_{timestamp}.txt"
+    
+    try:
+        with open(report_filename, 'w', encoding='utf-8') as f:
+            f.write(report)
+        print(f"\n报告已保存到: {report_filename}")
+    except Exception as e:
+        logger.error(f"保存报告失败: {e}")
+
+
+if __name__ == "__main__":
+    main()

+ 125 - 0
data_cleanup_script_api.py

@@ -0,0 +1,125 @@
+# app.py
+import os
+from datetime import datetime
+from typing import Optional
+from fastapi import FastAPI, HTTPException
+from pydantic import BaseModel
+from data_cleanup_script import VectorDataCleaner  # 假设你的类放在vector_data_cleaner.py里
+import logging
+
+# 日志
+logger = logging.getLogger("uvicorn.error")
+
+# FastAPI实例
+app = FastAPI(title="Milvus 数据清理")
+
+# 请求体模型
+class CleanupRequest(BaseModel):
+    knowledge_id: str
+    document_id: Optional[str] = None
+    dry_run: Optional[bool] = True  # 默认试运行
+
+# 响应体模型(可选,可更详细)
+class CleanupResponse(BaseModel):
+    knowledge_id: str
+    document_id: Optional[str]
+    mysql_slice_count: int
+    milvus_slice_count: int
+    dirty_slice_count: int
+    missing_slice_count: int
+    dirty_slice_ids: list
+    missing_slice_ids: list
+    dry_run: bool
+    delete_success: Optional[bool] = None
+    delete_message: Optional[str] = None
+    dirty_slice_samples: Optional[list] = None
+    report: str
+
+# 初始化数据清理工具(单例,避免每次请求重新连接数据库)
+cleanup_tool = VectorDataCleaner()
+
+@app.post("/cleanup", response_model=CleanupResponse)
+def cleanup_data_endpoint(request: CleanupRequest):
+    """
+    清理Milvus向量数据库中的脏数据
+    """
+    try:
+        # # 执行清理
+        # result = cleanup_tool.cleanup_data(
+        #     knowledge_id=request.knowledge_id,
+        #     document_id=request.document_id,
+        #     dry_run=request.dry_run
+        # )
+
+        knowledge_ids_list = request.knowledge_ids
+
+        for knowledge_id in knowledge_ids_list:
+
+            result = cleanup_tool.cleanup_data(
+                knowledge_id=knowledge_id,
+                document_id=None,
+                dry_run=False
+            )
+
+            # 检查是否有错误
+            if "error" in result:
+                raise HTTPException(status_code=500, detail=result["error"])
+
+            # 生成报告
+            report = cleanup_tool.generate_report(result)
+            result["report"] = report
+
+            timestamp = datetime.now().strftime('%Y%m%d_%H%M%S')
+
+            # 保存脏数据ID
+            if result.get("dirty_slice_ids"):
+                dirty_id_file = f"./data_clean/dirty_ids_{request.knowledge_id}_{timestamp}.txt"
+                with open(dirty_id_file, 'w', encoding='utf-8') as f:
+                    f.write("\n".join(result["dirty_slice_ids"]))
+                logger.info(f"脏数据ID已保存到: {dirty_id_file}")
+
+            # 保存缺失数据ID
+            if result.get("missing_slice_ids"):
+                missing_id_file = f"./data_clean/missing_ids_{request.knowledge_id}_{timestamp}.txt"
+                with open(missing_id_file, 'w', encoding='utf-8') as f:
+                    f.write("\n".join(result["missing_slice_ids"]))
+                logger.info(f"缺失数据ID已保存到: {missing_id_file}")
+
+
+            # 保存报告到文件
+            os.makedirs("./data_clean", exist_ok=True)
+            report_filename = f"./data_clean/data_cleanup_report_{request.knowledge_id}_{timestamp}.txt"
+            try:
+                with open(report_filename, 'w', encoding='utf-8') as f:
+                    f.write(report)
+                logger.info(f"清理报告已保存到: {report_filename}")
+            except Exception as e:
+                logger.error(f"保存报告失败: {e}")
+
+        # return result
+        return {"code": 200}
+
+    except Exception as e:
+        logger.error(f"清理请求失败: {e}")
+        raise HTTPException(status_code=500, detail=str(e))
+
+
+@app.on_event("shutdown")
+def shutdown_event():
+    """关闭数据库连接"""
+    cleanup_tool.close_connections()
+
+
+if __name__ == "__main__":
+    import uvicorn
+
+    # 自动创建报告目录
+    os.makedirs("./data_clean", exist_ok=True)
+
+    # 启动 uvicorn
+    uvicorn.run(
+        "data_cleanup_script_api:app",           
+        host="0.0.0.0",      
+        port=9090,
+        log_level="info",
+    )

+ 134 - 0
lb_gateway.py

@@ -0,0 +1,134 @@
+import asyncio
+import itertools
+from typing import Dict
+
+import httpx
+from fastapi import FastAPI, Request, WebSocket
+from fastapi.responses import StreamingResponse, Response
+import uvicorn
+
+# ===================== 配置区 =====================
+
+WORKERS = [
+    "http://127.0.0.1:6001",
+    "http://127.0.0.1:6002",
+    "http://127.0.0.1:6003",
+    "http://127.0.0.1:6004",
+
+]
+
+REQUEST_TIMEOUT = None  # Streaming / SSE 必须是 None
+
+# ===================== 核心状态 =====================
+
+worker_cycle = itertools.cycle(WORKERS)
+
+def next_worker() -> str:
+    """轮询获取下一个 worker"""
+    return next(worker_cycle)
+
+# ===================== FastAPI =====================
+
+app = FastAPI()
+
+client = httpx.AsyncClient(
+    timeout=REQUEST_TIMEOUT,
+    limits=httpx.Limits(max_connections=1000)
+)
+
+# ===================== HTTP 转发 =====================
+
+@app.api_route("/{path:path}", methods=["GET", "POST", "PUT", "DELETE"])
+async def proxy_http(request: Request, path: str):
+    """
+    普通 HTTP / SSE 请求转发
+    """
+    backend = next_worker()
+    url = f"{backend}/{path}"
+
+    headers = dict(request.headers)
+    headers.pop("host", None)
+
+    body = await request.body()
+
+    # Streaming / SSE
+    if request.headers.get("accept") == "text/event-stream":
+        async def stream():
+            async with client.stream(
+                method=request.method,
+                url=url,
+                headers=headers,
+                content=body,
+                params=request.query_params,
+            ) as resp:
+                async for chunk in resp.aiter_raw():
+                    yield chunk
+
+        return StreamingResponse(
+            stream(),
+            media_type="text/event-stream",
+        )
+
+    # 普通请求
+    resp = await client.request(
+        method=request.method,
+        url=url,
+        headers=headers,
+        content=body,
+        params=request.query_params,
+    )
+
+    return Response(
+        content=resp.content,
+        status_code=resp.status_code,
+        headers=dict(resp.headers),
+        media_type=resp.headers.get("content-type"),
+    )
+
+# ===================== WebSocket 转发 =====================
+
+@app.websocket("/{path:path}")
+async def proxy_ws(ws: WebSocket, path: str):
+    """
+    WebSocket 直通转发
+    """
+    await ws.accept()
+    backend = next_worker()
+    backend_ws = backend.replace("http", "ws") + f"/{path}"
+
+    async with httpx.AsyncClient() as session:
+        async with session.ws_connect(backend_ws) as backend_socket:
+            async def client_to_backend():
+                while True:
+                    msg = await ws.receive_text()
+                    await backend_socket.send_text(msg)
+
+            async def backend_to_client():
+                while True:
+                    msg = await backend_socket.receive_text()
+                    await ws.send_text(msg)
+
+            await asyncio.gather(
+                client_to_backend(),
+                backend_to_client(),
+            )
+
+# ===================== 健康检查 =====================
+
+@app.get("/health")
+async def health():
+    return {
+        "status": "ok",
+        "workers": WORKERS,
+    }
+
+# ===================== 启动 =====================
+
+if __name__ == "__main__":
+    uvicorn.run(
+        app,
+        host="0.0.0.0",
+        port=6000,
+        log_level="info",
+    )
+

+ 1 - 0
mineru/__init__.py

@@ -0,0 +1 @@
+# Copyright (c) Opendatalab. All rights reserved.

+ 1 - 0
mineru/backend/__init__.py

@@ -0,0 +1 @@
+# Copyright (c) Opendatalab. All rights reserved.

+ 1 - 0
mineru/backend/hybrid/__init__.py

@@ -0,0 +1 @@
+#  Copyright (c) Opendatalab. All rights reserved.

+ 526 - 0
mineru/backend/hybrid/hybrid_analyze.py

@@ -0,0 +1,526 @@
+#  Copyright (c) Opendatalab. All rights reserved.
+import os
+import time
+from collections import defaultdict
+
+import cv2
+import numpy as np
+from loguru import logger
+from mineru_vl_utils import MinerUClient
+from mineru_vl_utils.structs import BlockType
+from tqdm import tqdm
+
+from mineru.backend.hybrid.hybrid_model_output_to_middle_json import result_to_middle_json
+from mineru.backend.pipeline.model_init import HybridModelSingleton
+from mineru.backend.vlm.vlm_analyze import ModelSingleton
+from mineru.data.data_reader_writer import DataWriter
+from mineru.utils.config_reader import get_device
+from mineru.utils.enum_class import ImageType, NotExtractType
+from mineru.utils.model_utils import crop_img, get_vram, clean_memory
+from mineru.utils.ocr_utils import get_adjusted_mfdetrec_res, get_ocr_result_list, sorted_boxes, merge_det_boxes, \
+    update_det_boxes, OcrConfidence
+from mineru.utils.pdf_classify import classify
+from mineru.utils.pdf_image_tools import load_images_from_pdf
+
+os.environ['PYTORCH_ENABLE_MPS_FALLBACK'] = '1'  # 让mps可以fallback
+os.environ['NO_ALBUMENTATIONS_UPDATE'] = '1'  # 禁止albumentations检查更新
+
+MFR_BASE_BATCH_SIZE = 16
+OCR_DET_BASE_BATCH_SIZE = 16
+
+not_extract_list = [item.value for item in NotExtractType]
+
+def ocr_classify(pdf_bytes, parse_method: str = 'auto',) -> bool:
+    # 确定OCR设置
+    _ocr_enable = False
+    if parse_method == 'auto':
+        if classify(pdf_bytes) == 'ocr':
+            _ocr_enable = True
+    elif parse_method == 'ocr':
+        _ocr_enable = True
+    return _ocr_enable
+
+def ocr_det(
+    hybrid_pipeline_model,
+    np_images,
+    results,
+    mfd_res,
+    _ocr_enable,
+    batch_radio: int = 1,
+):
+    ocr_res_list = []
+    if not hybrid_pipeline_model.enable_ocr_det_batch:
+        # 非批处理模式 - 逐页处理
+        for np_image, page_mfd_res, page_results in tqdm(
+            zip(np_images, mfd_res, results),
+            total=len(np_images),
+            desc="OCR-det"
+        ):
+            ocr_res_list.append([])
+            img_height, img_width = np_image.shape[:2]
+            for res in page_results:
+                if res['type'] not in not_extract_list:
+                    continue
+                x0 = max(0, int(res['bbox'][0] * img_width))
+                y0 = max(0, int(res['bbox'][1] * img_height))
+                x1 = min(img_width, int(res['bbox'][2] * img_width))
+                y1 = min(img_height, int(res['bbox'][3] * img_height))
+                if x1 <= x0 or y1 <= y0:
+                    continue
+                res['poly'] = [x0, y0, x1, y0, x1, y1, x0, y1]
+                new_image, useful_list = crop_img(
+                    res, np_image, crop_paste_x=50, crop_paste_y=50
+                )
+                adjusted_mfdetrec_res = get_adjusted_mfdetrec_res(
+                    page_mfd_res, useful_list
+                )
+                bgr_image = cv2.cvtColor(new_image, cv2.COLOR_RGB2BGR)
+                ocr_res = hybrid_pipeline_model.ocr_model.ocr(
+                    bgr_image, mfd_res=adjusted_mfdetrec_res, rec=False
+                )[0]
+                if ocr_res:
+                    ocr_result_list = get_ocr_result_list(
+                        ocr_res, useful_list, _ocr_enable, bgr_image, hybrid_pipeline_model.lang
+                    )
+
+                    ocr_res_list[-1].extend(ocr_result_list)
+    else:
+        # 批处理模式 - 按语言和分辨率分组
+        # 收集所有需要OCR检测的裁剪图像
+        all_cropped_images_info = []
+
+        for np_image, page_mfd_res, page_results in zip(
+                np_images, mfd_res, results
+        ):
+            ocr_res_list.append([])
+            img_height, img_width = np_image.shape[:2]
+            for res in page_results:
+                if res['type'] not in not_extract_list:
+                    continue
+                x0 = max(0, int(res['bbox'][0] * img_width))
+                y0 = max(0, int(res['bbox'][1] * img_height))
+                x1 = min(img_width, int(res['bbox'][2] * img_width))
+                y1 = min(img_height, int(res['bbox'][3] * img_height))
+                if x1 <= x0 or y1 <= y0:
+                    continue
+                res['poly'] = [x0, y0, x1, y0, x1, y1, x0, y1]
+                new_image, useful_list = crop_img(
+                    res, np_image, crop_paste_x=50, crop_paste_y=50
+                )
+                adjusted_mfdetrec_res = get_adjusted_mfdetrec_res(
+                    page_mfd_res, useful_list
+                )
+                bgr_image = cv2.cvtColor(new_image, cv2.COLOR_RGB2BGR)
+                all_cropped_images_info.append((
+                    bgr_image, useful_list, adjusted_mfdetrec_res, ocr_res_list[-1]
+                ))
+
+        # 按分辨率分组并同时完成padding
+        RESOLUTION_GROUP_STRIDE = 64  # 32
+
+        resolution_groups = defaultdict(list)
+        for crop_info in all_cropped_images_info:
+            cropped_img = crop_info[0]
+            h, w = cropped_img.shape[:2]
+            # 直接计算目标尺寸并用作分组键
+            target_h = ((h + RESOLUTION_GROUP_STRIDE - 1) // RESOLUTION_GROUP_STRIDE) * RESOLUTION_GROUP_STRIDE
+            target_w = ((w + RESOLUTION_GROUP_STRIDE - 1) // RESOLUTION_GROUP_STRIDE) * RESOLUTION_GROUP_STRIDE
+            group_key = (target_h, target_w)
+            resolution_groups[group_key].append(crop_info)
+
+        # 对每个分辨率组进行批处理
+        for (target_h, target_w), group_crops in tqdm(resolution_groups.items(), desc=f"OCR-det"):
+            # 对所有图像进行padding到统一尺寸
+            batch_images = []
+            for crop_info in group_crops:
+                img = crop_info[0]
+                h, w = img.shape[:2]
+                # 创建目标尺寸的白色背景
+                padded_img = np.ones((target_h, target_w, 3), dtype=np.uint8) * 255
+                padded_img[:h, :w] = img
+                batch_images.append(padded_img)
+
+            # 批处理检测
+            det_batch_size = min(len(batch_images), batch_radio*OCR_DET_BASE_BATCH_SIZE)
+            batch_results = hybrid_pipeline_model.ocr_model.text_detector.batch_predict(batch_images, det_batch_size)
+
+            # 处理批处理结果
+            for crop_info, (dt_boxes, _) in zip(group_crops, batch_results):
+                bgr_image, useful_list, adjusted_mfdetrec_res, ocr_page_res_list = crop_info
+
+                if dt_boxes is not None and len(dt_boxes) > 0:
+                    # 处理检测框
+                    dt_boxes_sorted = sorted_boxes(dt_boxes)
+                    dt_boxes_merged = merge_det_boxes(dt_boxes_sorted) if dt_boxes_sorted else []
+
+                    # 根据公式位置更新检测框
+                    dt_boxes_final = (update_det_boxes(dt_boxes_merged, adjusted_mfdetrec_res)
+                                      if dt_boxes_merged and adjusted_mfdetrec_res
+                                      else dt_boxes_merged)
+
+                    if dt_boxes_final:
+                        ocr_res = [box.tolist() if hasattr(box, 'tolist') else box for box in dt_boxes_final]
+                        ocr_result_list = get_ocr_result_list(
+                            ocr_res, useful_list, _ocr_enable, bgr_image, hybrid_pipeline_model.lang
+                        )
+                        ocr_page_res_list.extend(ocr_result_list)
+    return ocr_res_list
+
+def mask_image_regions(np_images, results):
+    # 根据vlm返回的结果,在每一页中将image、table、equation块mask成白色背景图像
+    for np_image, vlm_page_results in zip(np_images, results):
+        img_height, img_width = np_image.shape[:2]
+        # 收集需要mask的区域
+        mask_regions = []
+        for block in vlm_page_results:
+            if block['type'] in [BlockType.IMAGE, BlockType.TABLE, BlockType.EQUATION]:
+                bbox = block['bbox']
+                # 批量转换归一化坐标到像素坐标,并进行边界检查
+                x0 = max(0, int(bbox[0] * img_width))
+                y0 = max(0, int(bbox[1] * img_height))
+                x1 = min(img_width, int(bbox[2] * img_width))
+                y1 = min(img_height, int(bbox[3] * img_height))
+                # 只添加有效区域
+                if x1 > x0 and y1 > y0:
+                    mask_regions.append((y0, y1, x0, x1))
+        # 批量应用mask
+        for y0, y1, x0, x1 in mask_regions:
+            np_image[y0:y1, x0:x1, :] = 255
+    return np_images
+
+def normalize_poly_to_bbox(item, page_width, page_height):
+    """将poly坐标归一化为bbox"""
+    poly = item['poly']
+    x0 = min(max(poly[0] / page_width, 0), 1)
+    y0 = min(max(poly[1] / page_height, 0), 1)
+    x1 = min(max(poly[4] / page_width, 0), 1)
+    y1 = min(max(poly[5] / page_height, 0), 1)
+    item['bbox'] = [round(x0, 3), round(y0, 3), round(x1, 3), round(y1, 3)]
+    item.pop('poly', None)
+
+
+def _process_ocr_and_formulas(
+    images_pil_list,
+    results,
+    language,
+    inline_formula_enable,
+    _ocr_enable,
+    batch_radio: int = 1,
+):
+    """处理OCR和公式识别"""
+
+    # 遍历results,对文本块截图交由OCR识别
+    # 根据_ocr_enable决定ocr只开det还是det+rec
+    # 根据inline_formula_enable决定是使用mfd和ocr结合的方式,还是纯ocr方式
+
+    # 将PIL图片转换为numpy数组
+    np_images = [np.asarray(pil_image).copy() for pil_image in images_pil_list]
+
+    # 获取混合模型实例
+    hybrid_model_singleton = HybridModelSingleton()
+    hybrid_pipeline_model = hybrid_model_singleton.get_model(
+        lang=language,
+        formula_enable=inline_formula_enable,
+    )
+
+    if inline_formula_enable:
+        # 在进行`行内`公式检测和识别前,先将图像中的图片、表格、`行间`公式区域mask掉
+        np_images = mask_image_regions(np_images, results)
+        # 公式检测
+        images_mfd_res = hybrid_pipeline_model.mfd_model.batch_predict(np_images, batch_size=1, conf=0.5)
+        # 公式识别
+        inline_formula_list = hybrid_pipeline_model.mfr_model.batch_predict(
+            images_mfd_res,
+            np_images,
+            batch_size=batch_radio*MFR_BASE_BATCH_SIZE,
+            interline_enable=True,
+        )
+    else:
+        inline_formula_list = [[] for _ in range(len(images_pil_list))]
+
+    mfd_res = []
+    for page_inline_formula_list in inline_formula_list:
+        page_mfd_res = []
+        for formula in page_inline_formula_list:
+            formula['category_id'] = 13
+            page_mfd_res.append({
+                "bbox": [int(formula['poly'][0]), int(formula['poly'][1]),
+                         int(formula['poly'][4]), int(formula['poly'][5])],
+            })
+        mfd_res.append(page_mfd_res)
+
+    # vlm没有执行ocr,需要ocr_det
+    ocr_res_list = ocr_det(
+        hybrid_pipeline_model,
+        np_images,
+        results,
+        mfd_res,
+        _ocr_enable,
+        batch_radio=batch_radio,
+    )
+
+    # 如果需要ocr则做ocr_rec
+    if _ocr_enable:
+        need_ocr_list = []
+        img_crop_list = []
+        for page_ocr_res_list in ocr_res_list:
+            for ocr_res in page_ocr_res_list:
+                if 'np_img' in ocr_res:
+                    need_ocr_list.append(ocr_res)
+                    img_crop_list.append(ocr_res.pop('np_img'))
+        if len(img_crop_list) > 0:
+            # Process OCR
+            ocr_result_list = hybrid_pipeline_model.ocr_model.ocr(img_crop_list, det=False, tqdm_enable=True)[0]
+
+            # Verify we have matching counts
+            assert len(ocr_result_list) == len(need_ocr_list), f'ocr_result_list: {len(ocr_result_list)}, need_ocr_list: {len(need_ocr_list)}'
+
+            # Process OCR results for this language
+            for index, need_ocr_res in enumerate(need_ocr_list):
+                ocr_text, ocr_score = ocr_result_list[index]
+                need_ocr_res['text'] = ocr_text
+                need_ocr_res['score'] = float(f"{ocr_score:.3f}")
+                if ocr_score < OcrConfidence.min_confidence:
+                    need_ocr_res['category_id'] = 16
+                else:
+                    layout_res_bbox = [need_ocr_res['poly'][0], need_ocr_res['poly'][1],
+                                       need_ocr_res['poly'][4], need_ocr_res['poly'][5]]
+                    layout_res_width = layout_res_bbox[2] - layout_res_bbox[0]
+                    layout_res_height = layout_res_bbox[3] - layout_res_bbox[1]
+                    if (
+                            ocr_text in [
+                                '(204号', '(20', '(2', '(2号', '(20号', '号','(204',
+                                '(cid:)', '(ci:)', '(cd:1)', 'cd:)', 'c)', '(cd:)', 'c', 'id:)',
+                                ':)', '√:)', '√i:)', '−i:)', '−:' , 'i:)',
+                            ]
+                            and ocr_score < 0.8
+                            and layout_res_width < layout_res_height
+                    ):
+                        need_ocr_res['category_id'] = 16
+
+    return inline_formula_list, ocr_res_list, hybrid_pipeline_model
+
+
+def _normalize_bbox(
+    inline_formula_list,
+    ocr_res_list,
+    images_pil_list,
+):
+    """归一化坐标并生成最终结果"""
+    for page_inline_formula_list, page_ocr_res_list, page_pil_image in zip(
+            inline_formula_list, ocr_res_list, images_pil_list
+    ):
+        if page_inline_formula_list or page_ocr_res_list:
+            page_width, page_height = page_pil_image.size
+            # 处理公式列表
+            for formula in page_inline_formula_list:
+                normalize_poly_to_bbox(formula, page_width, page_height)
+            # 处理OCR结果列表
+            for ocr_res in page_ocr_res_list:
+                normalize_poly_to_bbox(ocr_res, page_width, page_height)
+
+
+def get_batch_ratio(device):
+    """
+    根据显存大小或环境变量获取 batch ratio
+    """
+    # 1. 优先尝试从环境变量获取
+    """
+    c/s架构分离部署时,建议通过设置环境变量 MINERU_HYBRID_BATCH_RATIO 来指定 batch ratio
+    建议的设置值如如下,以下配置值已考虑一定的冗余,单卡多终端部署时为了保证稳定性,可以额外保留一个client端的显存作为整体冗余
+    单个client端显存大小 | MINERU_HYBRID_BATCH_RATIO
+    ------------------|------------------------
+    <= 6   GB         | 8
+    <= 4.5 GB         | 4
+    <= 3   GB         | 2
+    <= 2.5 GB         | 1
+    例如:
+    export MINERU_HYBRID_BATCH_RATIO=4
+    """
+    env_val = os.getenv("MINERU_HYBRID_BATCH_RATIO")
+    if env_val:
+        try:
+            batch_ratio = int(env_val)
+            logger.info(f"hybrid batch ratio (from env): {batch_ratio}")
+            return batch_ratio
+        except ValueError as e:
+            logger.warning(f"Invalid MINERU_HYBRID_BATCH_RATIO value: {env_val}, switching to auto mode. Error: {e}")
+
+    # 2. 根据显存自动推断
+    """
+    根据总显存大小粗略估计 batch ratio,需要排除掉vllm等推理框架占用的显存开销
+    """
+    gpu_memory = get_vram(device)
+    if gpu_memory >= 32:
+        batch_ratio = 16
+    elif gpu_memory >= 16:
+        batch_ratio = 8
+    elif gpu_memory >= 12:
+        batch_ratio = 4
+    elif gpu_memory >= 8:
+        batch_ratio = 2
+    else:
+        batch_ratio = 1
+
+    logger.info(f"hybrid batch ratio (auto, vram={gpu_memory}GB): {batch_ratio}")
+    return batch_ratio
+
+
+def _should_enable_vlm_ocr(ocr_enable: bool, language: str, inline_formula_enable: bool) -> bool:
+    """判断是否启用VLM OCR"""
+    force_enable = os.getenv("MINERU_FORCE_VLM_OCR_ENABLE", "0").lower() in ("1", "true", "yes")
+    if force_enable:
+        return True
+
+    force_pipeline = os.getenv("MINERU_HYBRID_FORCE_PIPELINE_ENABLE", "0").lower() in ("1", "true", "yes")
+    return (
+            ocr_enable
+            and language in ["ch", "en"]
+            and inline_formula_enable
+            and not force_pipeline
+    )
+
+
+def doc_analyze(
+        pdf_bytes,
+        image_writer: DataWriter | None,
+        predictor: MinerUClient | None = None,
+        backend="transformers",
+        parse_method: str = 'auto',
+        language: str = 'ch',
+        inline_formula_enable: bool = True,
+        model_path: str | None = None,
+        server_url: str | None = None,
+        **kwargs,
+):
+    # 初始化预测器
+    if predictor is None:
+        predictor = ModelSingleton().get_model(backend, model_path, server_url, **kwargs)
+
+    # 加载图像
+    load_images_start = time.time()
+    images_list, pdf_doc = load_images_from_pdf(pdf_bytes, image_type=ImageType.PIL)
+    images_pil_list = [image_dict["img_pil"] for image_dict in images_list]
+    load_images_time = round(time.time() - load_images_start, 2)
+    logger.debug(f"load images cost: {load_images_time}, speed: {round(len(images_pil_list)/load_images_time, 3)} images/s")
+
+    # 获取设备信息
+    device = get_device()
+
+    # 确定OCR配置
+    _ocr_enable = ocr_classify(pdf_bytes, parse_method=parse_method)
+    _vlm_ocr_enable = _should_enable_vlm_ocr(_ocr_enable, language, inline_formula_enable)
+
+    infer_start = time.time()
+    # VLM提取
+    if _vlm_ocr_enable:
+        results = predictor.batch_two_step_extract(images=images_pil_list)
+        hybrid_pipeline_model = None
+        inline_formula_list = [[] for _ in images_pil_list]
+        ocr_res_list = [[] for _ in images_pil_list]
+    else:
+        batch_ratio = get_batch_ratio(device)
+        results = predictor.batch_two_step_extract(
+            images=images_pil_list,
+            not_extract_list=not_extract_list
+        )
+        inline_formula_list, ocr_res_list, hybrid_pipeline_model = _process_ocr_and_formulas(
+            images_pil_list,
+            results,
+            language,
+            inline_formula_enable,
+            _ocr_enable,
+            batch_radio=batch_ratio,
+        )
+        _normalize_bbox(inline_formula_list, ocr_res_list, images_pil_list)
+    infer_time = round(time.time() - infer_start, 2)
+    logger.debug(f"infer finished, cost: {infer_time}, speed: {round(len(results)/infer_time, 3)} page/s")
+
+    # 生成中间JSON
+    middle_json = result_to_middle_json(
+        results,
+        inline_formula_list,
+        ocr_res_list,
+        images_list,
+        pdf_doc,
+        image_writer,
+        _ocr_enable,
+        _vlm_ocr_enable,
+        hybrid_pipeline_model,
+    )
+
+    clean_memory(device)
+    return middle_json, results, _vlm_ocr_enable
+
+
+async def aio_doc_analyze(
+    pdf_bytes,
+    image_writer: DataWriter | None,
+    predictor: MinerUClient | None = None,
+    backend="transformers",
+    parse_method: str = 'auto',
+    language: str = 'ch',
+    inline_formula_enable: bool = True,
+    model_path: str | None = None,
+    server_url: str | None = None,
+    **kwargs,
+):
+    # 初始化预测器
+    if predictor is None:
+        predictor = ModelSingleton().get_model(backend, model_path, server_url, **kwargs)
+
+    # 加载图像
+    load_images_start = time.time()
+    images_list, pdf_doc = load_images_from_pdf(pdf_bytes, image_type=ImageType.PIL)
+    images_pil_list = [image_dict["img_pil"] for image_dict in images_list]
+    load_images_time = round(time.time() - load_images_start, 2)
+    logger.debug(f"load images cost: {load_images_time}, speed: {round(len(images_pil_list)/load_images_time, 3)} images/s")
+
+    # 获取设备信息
+    device = get_device()
+
+    # 确定OCR配置
+    _ocr_enable = ocr_classify(pdf_bytes, parse_method=parse_method)
+    _vlm_ocr_enable = _should_enable_vlm_ocr(_ocr_enable, language, inline_formula_enable)
+
+    infer_start = time.time()
+    # VLM提取
+    if _vlm_ocr_enable:
+        results = await predictor.aio_batch_two_step_extract(images=images_pil_list)
+        hybrid_pipeline_model = None
+        inline_formula_list = [[] for _ in images_pil_list]
+        ocr_res_list = [[] for _ in images_pil_list]
+    else:
+        batch_ratio = get_batch_ratio(device)
+        results = await predictor.aio_batch_two_step_extract(
+            images=images_pil_list,
+            not_extract_list=not_extract_list
+        )
+        inline_formula_list, ocr_res_list, hybrid_pipeline_model = _process_ocr_and_formulas(
+            images_pil_list,
+            results,
+            language,
+            inline_formula_enable,
+            _ocr_enable,
+            batch_radio=batch_ratio,
+        )
+        _normalize_bbox(inline_formula_list, ocr_res_list, images_pil_list)
+    infer_time = round(time.time() - infer_start, 2)
+    logger.debug(f"infer finished, cost: {infer_time}, speed: {round(len(results)/infer_time, 3)} page/s")
+
+    # 生成中间JSON
+    middle_json = result_to_middle_json(
+        results,
+        inline_formula_list,
+        ocr_res_list,
+        images_list,
+        pdf_doc,
+        image_writer,
+        _ocr_enable,
+        _vlm_ocr_enable,
+        hybrid_pipeline_model,
+    )
+
+    clean_memory(device)
+    return middle_json, results, _vlm_ocr_enable
+

+ 618 - 0
mineru/backend/hybrid/hybrid_magic_model.py

@@ -0,0 +1,618 @@
+import re
+from typing import Literal
+
+from loguru import logger
+
+from mineru.utils.boxbase import calculate_overlap_area_in_bbox1_area_ratio
+from mineru.utils.enum_class import ContentType, BlockType, NotExtractType
+from mineru.utils.guess_suffix_or_lang import guess_language_by_text
+from mineru.utils.magic_model_utils import reduct_overlap, tie_up_category_by_index
+from mineru.utils.span_block_fix import fix_text_block
+from mineru.utils.span_pre_proc import txt_spans_extract
+
+not_extract_list = [item.value for item in NotExtractType]
+
+class MagicModel:
+    def __init__(self,
+        page_blocks: list,
+        page_inline_formula,
+        page_ocr_res,
+        page,
+        scale,
+        page_pil_img,
+        width,
+        height,
+        _ocr_enable,
+        _vlm_ocr_enable,
+    ):
+        self.page_blocks = page_blocks
+        self.page_inline_formula = page_inline_formula
+        self.page_ocr_res = page_ocr_res
+
+        self.width = width
+        self.height = height
+
+        blocks = []
+        self.all_spans = []
+
+        page_text_inline_formula_spans = []
+        if not _vlm_ocr_enable:
+            for inline_formula in page_inline_formula:
+                inline_formula["bbox"] = self.cal_real_bbox(inline_formula["bbox"])
+                inline_formula_latex = inline_formula.pop("latex", "")
+                if inline_formula_latex:
+                    page_text_inline_formula_spans.append({
+                        "bbox": inline_formula["bbox"],
+                        "type": ContentType.INLINE_EQUATION,
+                        "content": inline_formula_latex,
+                        "score": inline_formula["score"],
+                    })
+            for ocr_res in page_ocr_res:
+                ocr_res["bbox"] = self.cal_real_bbox(ocr_res["bbox"])
+                if ocr_res['category_id'] == 15:
+                    page_text_inline_formula_spans.append({
+                        "bbox": ocr_res["bbox"],
+                        "type": ContentType.TEXT,
+                        "content": ocr_res["text"],
+                        "score": ocr_res["score"],
+                    })
+            if not _ocr_enable:
+                virtual_block = [0, 0, width, height, None, None, None, "text"]
+                page_text_inline_formula_spans = txt_spans_extract(page, page_text_inline_formula_spans, page_pil_img, scale, [virtual_block],[])
+
+        # 解析每个块
+        for index, block_info in enumerate(page_blocks):
+            try:
+                block_bbox = self.cal_real_bbox(block_info["bbox"])
+                block_type = block_info["type"]
+                block_content = block_info["content"]
+                block_angle = block_info["angle"]
+
+                # print(f"坐标: {block_bbox}")
+                # print(f"类型: {block_type}")
+                # print(f"内容: {block_content}")
+                # print("-" * 50)
+            except Exception as e:
+                # 如果解析失败,可能是因为格式不正确,跳过这个块
+                logger.warning(f"Invalid block format: {block_info}, error: {e}")
+                continue
+
+            span_type = "unknown"
+            code_block_sub_type = None
+            guess_lang = None
+
+            if block_type in [
+                "text",
+                "title",
+                "image_caption",
+                "image_footnote",
+                "table_caption",
+                "table_footnote",
+                "code_caption",
+                "ref_text",
+                "phonetic",
+                "header",
+                "footer",
+                "page_number",
+                "aside_text",
+                "page_footnote",
+                "list"
+            ]:
+                span_type = ContentType.TEXT
+            elif block_type in ["image"]:
+                block_type = BlockType.IMAGE_BODY
+                span_type = ContentType.IMAGE
+            elif block_type in ["table"]:
+                block_type = BlockType.TABLE_BODY
+                span_type = ContentType.TABLE
+            elif block_type in ["code", "algorithm"]:
+                block_content = code_content_clean(block_content)
+                code_block_sub_type = block_type
+                block_type = BlockType.CODE_BODY
+                span_type = ContentType.TEXT
+                guess_lang = guess_language_by_text(block_content)
+            elif block_type in ["equation"]:
+                block_type = BlockType.INTERLINE_EQUATION
+                span_type = ContentType.INTERLINE_EQUATION
+
+            #  code 和 algorithm 类型的块,如果内容中包含行内公式,则需要将块类型切换为algorithm
+            switch_code_to_algorithm = False
+
+            span = None
+            if span_type in ["image", "table"]:
+                span = {
+                    "bbox": block_bbox,
+                    "type": span_type,
+                }
+                if span_type == ContentType.TABLE:
+                    span["html"] = block_content
+            elif span_type in [ContentType.INTERLINE_EQUATION]:
+                span = {
+                    "bbox": block_bbox,
+                    "type": span_type,
+                    "content": isolated_formula_clean(block_content),
+                }
+            elif _vlm_ocr_enable or block_type not in not_extract_list:
+                #  vlm_ocr_enable模式下,所有文本块都直接使用block的内容
+                #  非vlm_ocr_enable模式下,非提取块需要使用span填充方式
+                if block_content:
+                    block_content = clean_content(block_content)
+
+                if block_content and block_content.count("\\(") == block_content.count("\\)") and block_content.count("\\(") > 0:
+
+                    switch_code_to_algorithm = True
+
+                    # 生成包含文本和公式的span列表
+                    spans = []
+                    last_end = 0
+
+                    # 查找所有公式
+                    for match in re.finditer(r'\\\((.+?)\\\)', block_content):
+                        start, end = match.span()
+
+                        # 添加公式前的文本
+                        if start > last_end:
+                            text_before = block_content[last_end:start]
+                            if text_before.strip():
+                                spans.append({
+                                    "bbox": block_bbox,
+                                    "type": ContentType.TEXT,
+                                    "content": text_before
+                                })
+
+                        # 添加公式(去除\(和\))
+                        formula = match.group(1)
+                        spans.append({
+                            "bbox": block_bbox,
+                            "type": ContentType.INLINE_EQUATION,
+                            "content": formula.strip()
+                        })
+
+                        last_end = end
+
+                    # 添加最后一个公式后的文本
+                    if last_end < len(block_content):
+                        text_after = block_content[last_end:]
+                        if text_after.strip():
+                            spans.append({
+                                "bbox": block_bbox,
+                                "type": ContentType.TEXT,
+                                "content": text_after
+                            })
+
+                    span = spans
+                else:
+                    span = {
+                        "bbox": block_bbox,
+                        "type": span_type,
+                        "content": block_content,
+                    }
+
+            if (
+                    span_type in ["image", "table", ContentType.INTERLINE_EQUATION]
+                    or (_vlm_ocr_enable or block_type not in not_extract_list)
+            ):
+                if span is None:
+                    continue
+                # 处理span类型并添加到all_spans
+                if isinstance(span, dict) and "bbox" in span:
+                    self.all_spans.append(span)
+                    spans = [span]
+                elif isinstance(span, list):
+                    self.all_spans.extend(span)
+                    spans = span
+                else:
+                    raise ValueError(f"Invalid span type: {span_type}, expected dict or list, got {type(span)}")
+
+                # 构造line对象
+                if block_type in [BlockType.CODE_BODY]:
+                    if switch_code_to_algorithm and code_block_sub_type == "code":
+                        code_block_sub_type = "algorithm"
+                    line = {"bbox": block_bbox, "spans": spans,
+                            "extra": {"type": code_block_sub_type, "guess_lang": guess_lang}}
+                else:
+                    line = {"bbox": block_bbox, "spans": spans}
+
+                block = {
+                    "bbox": block_bbox,
+                    "type": block_type,
+                    "angle": block_angle,
+                    "lines": [line],
+                    "index": index,
+                }
+
+            else:  #  使用span填充方式
+                block_spans = []
+                for span in page_text_inline_formula_spans:
+                    if calculate_overlap_area_in_bbox1_area_ratio(span['bbox'], block_bbox) > 0.5:
+                        block_spans.append(span)
+                # 从spans删除已经放入block_spans中的span
+                if len(block_spans) > 0:
+                    for span in block_spans:
+                        page_text_inline_formula_spans.remove(span)
+
+                block = {
+                    "bbox": block_bbox,
+                    "type": block_type,
+                    "angle": block_angle,
+                    "spans": block_spans,
+                    "index": index,
+                }
+                block = fix_text_block(block)
+
+            blocks.append(block)
+
+        self.image_blocks = []
+        self.table_blocks = []
+        self.interline_equation_blocks = []
+        self.text_blocks = []
+        self.title_blocks = []
+        self.code_blocks = []
+        self.discarded_blocks = []
+        self.ref_text_blocks = []
+        self.phonetic_blocks = []
+        self.list_blocks = []
+        for block in blocks:
+            if block["type"] in [BlockType.IMAGE_BODY, BlockType.IMAGE_CAPTION, BlockType.IMAGE_FOOTNOTE]:
+                self.image_blocks.append(block)
+            elif block["type"] in [BlockType.TABLE_BODY, BlockType.TABLE_CAPTION, BlockType.TABLE_FOOTNOTE]:
+                self.table_blocks.append(block)
+            elif block["type"] in [BlockType.CODE_BODY, BlockType.CODE_CAPTION]:
+                self.code_blocks.append(block)
+            elif block["type"] == BlockType.INTERLINE_EQUATION:
+                self.interline_equation_blocks.append(block)
+            elif block["type"] == BlockType.TEXT:
+                self.text_blocks.append(block)
+            elif block["type"] == BlockType.TITLE:
+                self.title_blocks.append(block)
+            elif block["type"] in [BlockType.REF_TEXT]:
+                self.ref_text_blocks.append(block)
+            elif block["type"] in [BlockType.PHONETIC]:
+                self.phonetic_blocks.append(block)
+            elif block["type"] in [BlockType.HEADER, BlockType.FOOTER, BlockType.PAGE_NUMBER, BlockType.ASIDE_TEXT, BlockType.PAGE_FOOTNOTE]:
+                self.discarded_blocks.append(block)
+            elif block["type"] == BlockType.LIST:
+                self.list_blocks.append(block)
+            else:
+                continue
+
+        self.list_blocks, self.text_blocks, self.ref_text_blocks = fix_list_blocks(self.list_blocks, self.text_blocks, self.ref_text_blocks)
+        self.image_blocks, not_include_image_blocks = fix_two_layer_blocks(self.image_blocks, BlockType.IMAGE)
+        self.table_blocks, not_include_table_blocks = fix_two_layer_blocks(self.table_blocks, BlockType.TABLE)
+        self.code_blocks, not_include_code_blocks = fix_two_layer_blocks(self.code_blocks, BlockType.CODE)
+        for code_block in self.code_blocks:
+            for block in code_block['blocks']:
+                if block['type'] == BlockType.CODE_BODY:
+                    if len(block["lines"]) > 0:
+                        line = block["lines"][0]
+                        code_block["sub_type"] = line["extra"]["type"]
+                        if code_block["sub_type"] in ["code"]:
+                            code_block["guess_lang"] = line["extra"]["guess_lang"]
+                        del line["extra"]
+                    else:
+                        code_block["sub_type"] = "code"
+                        code_block["guess_lang"] = "txt"
+
+        for block in not_include_image_blocks + not_include_table_blocks + not_include_code_blocks:
+            block["type"] = BlockType.TEXT
+            self.text_blocks.append(block)
+
+    def cal_real_bbox(self, bbox):
+        x1, y1, x2, y2 = bbox
+        x_1, y_1, x_2, y_2 = (
+            int(x1 * self.width),
+            int(y1 * self.height),
+            int(x2 * self.width),
+            int(y2 * self.height),
+        )
+        if x_2 < x_1:
+            x_1, x_2 = x_2, x_1
+        if y_2 < y_1:
+            y_1, y_2 = y_2, y_1
+        bbox = (x_1, y_1, x_2, y_2)
+        return bbox
+
+    def get_list_blocks(self):
+        return self.list_blocks
+
+    def get_image_blocks(self):
+        return self.image_blocks
+
+    def get_table_blocks(self):
+        return self.table_blocks
+
+    def get_code_blocks(self):
+        return self.code_blocks
+
+    def get_ref_text_blocks(self):
+        return self.ref_text_blocks
+
+    def get_phonetic_blocks(self):
+        return self.phonetic_blocks
+
+    def get_title_blocks(self):
+        return self.title_blocks
+
+    def get_text_blocks(self):
+        return self.text_blocks
+
+    def get_interline_equation_blocks(self):
+        return self.interline_equation_blocks
+
+    def get_discarded_blocks(self):
+        return self.discarded_blocks
+
+    def get_all_spans(self):
+        return self.all_spans
+
+
+def isolated_formula_clean(txt):
+    latex = txt[:]
+    if latex.startswith("\\["): latex = latex[2:]
+    if latex.endswith("\\]"): latex = latex[:-2]
+    latex = latex.strip()
+    return latex
+
+
+def code_content_clean(content):
+    """清理代码内容,移除Markdown代码块的开始和结束标记"""
+    if not content:
+        return ""
+
+    lines = content.splitlines()
+    start_idx = 0
+    end_idx = len(lines)
+
+    # 处理开头的三个反引号
+    if lines and lines[0].startswith("```"):
+        start_idx = 1
+
+    # 处理结尾的三个反引号
+    if lines and end_idx > start_idx and lines[end_idx - 1].strip() == "```":
+        end_idx -= 1
+
+    # 只有在有内容时才进行join操作
+    if start_idx < end_idx:
+        return "\n".join(lines[start_idx:end_idx]).strip()
+    return ""
+
+
+def clean_content(content):
+    if content and content.count("\\[") == content.count("\\]") and content.count("\\[") > 0:
+        # Function to handle each match
+        def replace_pattern(match):
+            # Extract content between \[ and \]
+            inner_content = match.group(1)
+            return f"[{inner_content}]"
+
+        # Find all patterns of \[x\] and apply replacement
+        pattern = r'\\\[(.*?)\\\]'
+        content = re.sub(pattern, replace_pattern, content)
+
+    return content
+
+
+def __tie_up_category_by_index(blocks, subject_block_type, object_block_type):
+    """基于index的主客体关联包装函数"""
+    # 定义获取主体和客体对象的函数
+    def get_subjects():
+        return reduct_overlap(
+            list(
+                map(
+                    lambda x: {"bbox": x["bbox"], "lines": x["lines"], "index": x["index"], "angle": x["angle"]},
+                    filter(
+                        lambda x: x["type"] == subject_block_type,
+                        blocks,
+                    ),
+                )
+            )
+        )
+
+    def get_objects():
+        return reduct_overlap(
+            list(
+                map(
+                    lambda x: {"bbox": x["bbox"], "lines": x["lines"], "index": x["index"], "angle": x["angle"]},
+                    filter(
+                        lambda x: x["type"] == object_block_type,
+                        blocks,
+                    ),
+                )
+            )
+        )
+
+    # 调用通用方法
+    return tie_up_category_by_index(
+        get_subjects,
+        get_objects,
+        object_block_type=object_block_type
+    )
+
+
+def get_type_blocks_by_index(blocks, block_type: Literal["image", "table", "code"]):
+    """使用基于index的匹配策略来组织blocks"""
+    with_captions = __tie_up_category_by_index(blocks, f"{block_type}_body", f"{block_type}_caption")
+    with_footnotes = __tie_up_category_by_index(blocks, f"{block_type}_body", f"{block_type}_footnote")
+    ret = []
+    for v in with_captions:
+        record = {
+            f"{block_type}_body": v["sub_bbox"],
+            f"{block_type}_caption_list": v["obj_bboxes"],
+        }
+        filter_idx = v["sub_idx"]
+        d = next(filter(lambda x: x["sub_idx"] == filter_idx, with_footnotes))
+        record[f"{block_type}_footnote_list"] = d["obj_bboxes"]
+        ret.append(record)
+    return ret
+
+
+def fix_two_layer_blocks(blocks, fix_type: Literal["image", "table", "code"]):
+    need_fix_blocks = get_type_blocks_by_index(blocks, fix_type)
+    fixed_blocks = []
+    not_include_blocks = []
+    processed_indices = set()
+
+    # 特殊处理表格类型,确保标题在表格前,注脚在表格后
+    if fix_type in ["table", "image"]:
+        # 收集所有不合适的caption和footnote
+        misplaced_footnotes = []  # 存储(footnote, 原始block索引)
+
+        # 第一步:移除不符合位置要求的footnote
+        for block_idx, block in enumerate(need_fix_blocks):
+            body = block[f"{fix_type}_body"]
+            body_index = body["index"]
+
+            # 检查footnote应在body后或同位置
+            valid_footnotes = []
+            for footnote in block[f"{fix_type}_footnote_list"]:
+                if footnote["index"] >= body_index:
+                    valid_footnotes.append(footnote)
+                else:
+                    misplaced_footnotes.append((footnote, block_idx))
+            block[f"{fix_type}_footnote_list"] = valid_footnotes
+
+        # 第三步:重新分配不合规的footnote到合适的body
+        for footnote, original_block_idx in misplaced_footnotes:
+            footnote_index = footnote["index"]
+            best_block_idx = None
+            min_distance = float('inf')
+
+            # 寻找索引小于等于footnote_index的最近body
+            for idx, block in enumerate(need_fix_blocks):
+                body_index = block[f"{fix_type}_body"]["index"]
+                if body_index <= footnote_index and idx != original_block_idx:
+                    distance = footnote_index - body_index
+                    if distance < min_distance:
+                        min_distance = distance
+                        best_block_idx = idx
+
+            if best_block_idx is not None:
+                # 找到合适的body,添加到对应block的footnote_list
+                need_fix_blocks[best_block_idx][f"{fix_type}_footnote_list"].append(footnote)
+            else:
+                # 没找到合适的body,作为普通block处理
+                not_include_blocks.append(footnote)
+
+        # 第四步:将每个block的caption_list和footnote_list中不连续index的元素提出来作为普通block处理
+        for block in need_fix_blocks:
+            caption_list = block[f"{fix_type}_caption_list"]
+            footnote_list = block[f"{fix_type}_footnote_list"]
+            body_index = block[f"{fix_type}_body"]["index"]
+
+            # 处理caption_list (从body往前看,caption在body之前)
+            if caption_list:
+                # 按index降序排列,从最接近body的开始检查
+                caption_list.sort(key=lambda x: x["index"], reverse=True)
+                filtered_captions = [caption_list[0]]
+                for i in range(1, len(caption_list)):
+                    prev_index = caption_list[i - 1]["index"]
+                    curr_index = caption_list[i]["index"]
+
+                    # 检查是否连续
+                    if curr_index == prev_index - 1:
+                        filtered_captions.append(caption_list[i])
+                    else:
+                        # 检查gap中是否只有body_index
+                        gap_indices = set(range(curr_index + 1, prev_index))
+                        if gap_indices == {body_index}:
+                            # gap中只有body_index,不算真正的gap
+                            filtered_captions.append(caption_list[i])
+                        else:
+                            # 出现真正的gap,后续所有caption都作为普通block
+                            not_include_blocks.extend(caption_list[i:])
+                            break
+                # 恢复升序
+                filtered_captions.reverse()
+                block[f"{fix_type}_caption_list"] = filtered_captions
+
+            # 处理footnote_list (从body往后看,footnote在body之后)
+            if footnote_list:
+                # 按index升序排列,从最接近body的开始检查
+                footnote_list.sort(key=lambda x: x["index"])
+                filtered_footnotes = [footnote_list[0]]
+                for i in range(1, len(footnote_list)):
+                    # 检查是否与前一个footnote连续
+                    if footnote_list[i]["index"] == footnote_list[i - 1]["index"] + 1:
+                        filtered_footnotes.append(footnote_list[i])
+                    else:
+                        # 出现gap,后续所有footnote都作为普通block
+                        not_include_blocks.extend(footnote_list[i:])
+                        break
+                block[f"{fix_type}_footnote_list"] = filtered_footnotes
+
+    # 构建两层结构blocks
+    for block in need_fix_blocks:
+        body = block[f"{fix_type}_body"]
+        caption_list = block[f"{fix_type}_caption_list"]
+        footnote_list = block[f"{fix_type}_footnote_list"]
+
+        body["type"] = f"{fix_type}_body"
+        for caption in caption_list:
+            caption["type"] = f"{fix_type}_caption"
+            processed_indices.add(caption["index"])
+        for footnote in footnote_list:
+            footnote["type"] = f"{fix_type}_footnote"
+            processed_indices.add(footnote["index"])
+
+        processed_indices.add(body["index"])
+
+        two_layer_block = {
+            "type": fix_type,
+            "bbox": body["bbox"],
+            "blocks": [body],
+            "index": body["index"],
+        }
+        two_layer_block["blocks"].extend([*caption_list, *footnote_list])
+        # 对blocks按index排序
+        two_layer_block["blocks"].sort(key=lambda x: x["index"])
+
+        fixed_blocks.append(two_layer_block)
+
+    # 添加未处理的blocks
+    for block in blocks:
+        block.pop("type", None)
+        if block["index"] not in processed_indices and block not in not_include_blocks:
+            not_include_blocks.append(block)
+
+    return fixed_blocks, not_include_blocks
+
+
+def fix_list_blocks(list_blocks, text_blocks, ref_text_blocks):
+    for list_block in list_blocks:
+        list_block["blocks"] = []
+        if "lines" in list_block:
+            del list_block["lines"]
+
+    temp_text_blocks = text_blocks + ref_text_blocks
+    need_remove_blocks = []
+    for block in temp_text_blocks:
+        for list_block in list_blocks:
+            if calculate_overlap_area_in_bbox1_area_ratio(block["bbox"], list_block["bbox"]) >= 0.8:
+                list_block["blocks"].append(block)
+                need_remove_blocks.append(block)
+                break
+
+    for block in need_remove_blocks:
+        if block in text_blocks:
+            text_blocks.remove(block)
+        elif block in ref_text_blocks:
+            ref_text_blocks.remove(block)
+
+    # 移除blocks为空的list_block
+    list_blocks = [lb for lb in list_blocks if lb["blocks"]]
+
+    for list_block in list_blocks:
+        # 统计list_block["blocks"]中所有block的type,用众数作为list_block的sub_type
+        type_count = {}
+        for sub_block in list_block["blocks"]:
+            sub_block_type = sub_block["type"]
+            if sub_block_type not in type_count:
+                type_count[sub_block_type] = 0
+            type_count[sub_block_type] += 1
+
+        if type_count:
+            list_block["sub_type"] = max(type_count, key=type_count.get)
+        else:
+            list_block["sub_type"] = "unknown"
+
+    return list_blocks, text_blocks, ref_text_blocks

+ 212 - 0
mineru/backend/hybrid/hybrid_model_output_to_middle_json.py

@@ -0,0 +1,212 @@
+#  Copyright (c) Opendatalab. All rights reserved.
+
+import os
+import time
+
+import cv2
+import numpy as np
+from loguru import logger
+
+from mineru.backend.hybrid.hybrid_magic_model import MagicModel
+from mineru.backend.utils import cross_page_table_merge
+from mineru.utils.config_reader import get_table_enable, get_llm_aided_config
+from mineru.utils.cut_image import cut_image_and_table
+from mineru.utils.enum_class import ContentType
+from mineru.utils.hash_utils import bytes_md5
+from mineru.utils.ocr_utils import OcrConfidence
+from mineru.utils.pdf_image_tools import get_crop_img
+from mineru.version import __version__
+
+
+heading_level_import_success = False
+llm_aided_config = get_llm_aided_config()
+if llm_aided_config:
+    title_aided_config = llm_aided_config.get('title_aided', {})
+    if title_aided_config.get('enable', False):
+        try:
+            from mineru.utils.llm_aided import llm_aided_title
+            from mineru.backend.pipeline.model_init import AtomModelSingleton
+            heading_level_import_success = True
+        except Exception as e:
+            logger.warning("The heading level feature cannot be used. If you need to use the heading level feature, "
+                            "please execute `pip install mineru[core]` to install the required packages.")
+
+
+def blocks_to_page_info(
+        page_blocks,
+        page_inline_formula,
+        page_ocr_res,
+        image_dict,
+        page,
+        image_writer,
+        page_index,
+        _ocr_enable,
+        _vlm_ocr_enable,
+) -> dict:
+    """将blocks转换为页面信息"""
+
+    scale = image_dict["scale"]
+    page_pil_img = image_dict["img_pil"]
+    page_img_md5 = bytes_md5(page_pil_img.tobytes())
+    width, height = map(int, page.get_size())
+
+    magic_model = MagicModel(
+        page_blocks,
+        page_inline_formula,
+        page_ocr_res,
+        page,
+        scale,
+        page_pil_img,
+        width,
+        height,
+        _ocr_enable,
+        _vlm_ocr_enable,
+    )
+    image_blocks = magic_model.get_image_blocks()
+    table_blocks = magic_model.get_table_blocks()
+    title_blocks = magic_model.get_title_blocks()
+    discarded_blocks = magic_model.get_discarded_blocks()
+    code_blocks = magic_model.get_code_blocks()
+    ref_text_blocks = magic_model.get_ref_text_blocks()
+    phonetic_blocks = magic_model.get_phonetic_blocks()
+    list_blocks = magic_model.get_list_blocks()
+
+    # 如果有标题优化需求,计算标题的平均行高
+    if heading_level_import_success:
+        if _vlm_ocr_enable:  # vlm_ocr导致没有line信息,需要重新det获取平均行高
+            atom_model_manager = AtomModelSingleton()
+            ocr_model = atom_model_manager.get_atom_model(
+                atom_model_name='ocr',
+                ocr_show_log=False,
+                det_db_box_thresh=0.3,
+                lang='ch_lite'
+            )
+            for title_block in title_blocks:
+                title_pil_img = get_crop_img(title_block['bbox'], page_pil_img, scale)
+                title_np_img = np.array(title_pil_img)
+                # 给title_pil_img添加上下左右各50像素白边padding
+                title_np_img = cv2.copyMakeBorder(
+                    title_np_img, 50, 50, 50, 50, cv2.BORDER_CONSTANT, value=[255, 255, 255]
+                )
+                title_img = cv2.cvtColor(title_np_img, cv2.COLOR_RGB2BGR)
+                ocr_det_res = ocr_model.ocr(title_img, rec=False)[0]
+                if len(ocr_det_res) > 0:
+                    # 计算所有res的平均高度
+                    avg_height = np.mean([box[2][1] - box[0][1] for box in ocr_det_res])
+                    title_block['line_avg_height'] = round(avg_height/scale)
+        else:  # 有line信息,直接计算平均行高
+            for title_block in title_blocks:
+                lines = title_block.get('lines', [])
+                if lines:
+                    # 使用列表推导式和内置函数,一次性计算平均高度
+                    avg_height = sum(line['bbox'][3] - line['bbox'][1] for line in lines) / len(lines)
+                    title_block['line_avg_height'] = round(avg_height)
+                else:
+                    title_block['line_avg_height'] = title_block['bbox'][3] - title_block['bbox'][1]
+
+    text_blocks = magic_model.get_text_blocks()
+    interline_equation_blocks = magic_model.get_interline_equation_blocks()
+
+    all_spans = magic_model.get_all_spans()
+    # 对image/table/interline_equation的span截图
+    for span in all_spans:
+        if span["type"] in [ContentType.IMAGE, ContentType.TABLE, ContentType.INTERLINE_EQUATION]:
+            span = cut_image_and_table(span, page_pil_img, page_img_md5, page_index, image_writer, scale=scale)
+
+    page_blocks = []
+    page_blocks.extend([
+        *image_blocks,
+        *table_blocks,
+        *code_blocks,
+        *ref_text_blocks,
+        *phonetic_blocks,
+        *title_blocks,
+        *text_blocks,
+        *interline_equation_blocks,
+        *list_blocks,
+    ])
+    # 对page_blocks根据index的值进行排序
+    page_blocks.sort(key=lambda x: x["index"])
+
+    page_info = {"para_blocks": page_blocks, "discarded_blocks": discarded_blocks, "page_size": [width, height], "page_idx": page_index}
+    return page_info
+
+
+def result_to_middle_json(
+        model_output_blocks_list,
+        inline_formula_list,
+        ocr_res_list,
+        images_list,
+        pdf_doc,
+        image_writer,
+        _ocr_enable,
+        _vlm_ocr_enable,
+        hybrid_pipeline_model,
+):
+    middle_json = {
+        "pdf_info": [],
+        "_backend": "hybrid",
+        "_ocr_enable": _ocr_enable,
+        "_vlm_ocr_enable": _vlm_ocr_enable,
+        "_version_name": __version__
+    }
+
+    for index, (page_blocks, page_inline_formula, page_ocr_res) in enumerate(zip(model_output_blocks_list, inline_formula_list, ocr_res_list)):
+        page = pdf_doc[index]
+        image_dict = images_list[index]
+        page_info = blocks_to_page_info(
+            page_blocks, page_inline_formula, page_ocr_res,
+            image_dict, page, image_writer, index,
+            _ocr_enable, _vlm_ocr_enable
+        )
+        middle_json["pdf_info"].append(page_info)
+
+    if not (_vlm_ocr_enable or _ocr_enable):
+        """后置ocr处理"""
+        need_ocr_list = []
+        img_crop_list = []
+        text_block_list = []
+        for page_info in middle_json["pdf_info"]:
+            for block in page_info['para_blocks']:
+                if block['type'] in ['table', 'image', 'list', 'code']:
+                    for sub_block in block['blocks']:
+                        if not sub_block['type'].endswith('body'):
+                            text_block_list.append(sub_block)
+                elif block['type'] in ['text', 'title', 'ref_text']:
+                    text_block_list.append(block)
+            for block in page_info['discarded_blocks']:
+                text_block_list.append(block)
+        for block in text_block_list:
+            for line in block['lines']:
+                for span in line['spans']:
+                    if 'np_img' in span:
+                        need_ocr_list.append(span)
+                        img_crop_list.append(span['np_img'])
+                        span.pop('np_img')
+        if len(img_crop_list) > 0:
+            ocr_res_list = hybrid_pipeline_model.ocr_model.ocr(img_crop_list, det=False, tqdm_enable=True)[0]
+            assert len(ocr_res_list) == len(
+                need_ocr_list), f'ocr_res_list: {len(ocr_res_list)}, need_ocr_list: {len(need_ocr_list)}'
+            for index, span in enumerate(need_ocr_list):
+                ocr_text, ocr_score = ocr_res_list[index]
+                if ocr_score > OcrConfidence.min_confidence:
+                    span['content'] = ocr_text
+                    span['score'] = float(f"{ocr_score:.3f}")
+                else:
+                    span['content'] = ''
+                    span['score'] = 0.0
+
+    """表格跨页合并"""
+    table_enable = get_table_enable(os.getenv('MINERU_VLM_TABLE_ENABLE', 'True').lower() == 'true')
+    if table_enable:
+        cross_page_table_merge(middle_json["pdf_info"])
+
+    """llm优化标题分级"""
+    if heading_level_import_success:
+        llm_aided_title_start_time = time.time()
+        llm_aided_title(middle_json["pdf_info"], title_aided_config)
+        logger.info(f'llm aided title time: {round(time.time() - llm_aided_title_start_time, 2)}')
+
+    # 关闭pdf文档
+    pdf_doc.close()
+    return middle_json

+ 1 - 0
mineru/backend/pipeline/__init__.py

@@ -0,0 +1 @@
+# Copyright (c) Opendatalab. All rights reserved.

+ 436 - 0
mineru/backend/pipeline/batch_analyze.py

@@ -0,0 +1,436 @@
+import html
+
+import cv2
+from loguru import logger
+from tqdm import tqdm
+from collections import defaultdict
+import numpy as np
+
+from .model_init import AtomModelSingleton
+from .model_list import AtomicModel
+from ...utils.config_reader import get_formula_enable, get_table_enable
+from ...utils.model_utils import crop_img, get_res_list_from_layout_res, clean_vram
+from ...utils.ocr_utils import merge_det_boxes, update_det_boxes, sorted_boxes
+from ...utils.ocr_utils import get_adjusted_mfdetrec_res, get_ocr_result_list, OcrConfidence, get_rotate_crop_image
+from ...utils.pdf_image_tools import get_crop_np_img
+
+YOLO_LAYOUT_BASE_BATCH_SIZE = 1
+MFD_BASE_BATCH_SIZE = 1
+MFR_BASE_BATCH_SIZE = 16
+OCR_DET_BASE_BATCH_SIZE = 16
+TABLE_ORI_CLS_BATCH_SIZE = 16
+TABLE_Wired_Wireless_CLS_BATCH_SIZE = 16
+
+
+class BatchAnalyze:
+    def __init__(self, model_manager, batch_ratio: int, formula_enable, table_enable, enable_ocr_det_batch: bool = True):
+        self.batch_ratio = batch_ratio
+        self.formula_enable = get_formula_enable(formula_enable)
+        self.table_enable = get_table_enable(table_enable)
+        self.model_manager = model_manager
+        self.enable_ocr_det_batch = enable_ocr_det_batch
+
+    def __call__(self, images_with_extra_info: list) -> list:
+        if len(images_with_extra_info) == 0:
+            return []
+
+        images_layout_res = []
+
+        self.model = self.model_manager.get_model(
+            lang=None,
+            formula_enable=self.formula_enable,
+            table_enable=self.table_enable,
+        )
+        atom_model_manager = AtomModelSingleton()
+
+        pil_images = [image for image, _, _ in images_with_extra_info]
+
+        np_images = [np.asarray(image) for image, _, _ in images_with_extra_info]
+
+        # doclayout_yolo
+
+        images_layout_res += self.model.layout_model.batch_predict(
+            pil_images, YOLO_LAYOUT_BASE_BATCH_SIZE
+        )
+
+        if self.formula_enable:
+            # 公式检测
+            images_mfd_res = self.model.mfd_model.batch_predict(
+                np_images, MFD_BASE_BATCH_SIZE
+            )
+
+            # 公式识别
+            images_formula_list = self.model.mfr_model.batch_predict(
+                images_mfd_res,
+                np_images,
+                batch_size=self.batch_ratio * MFR_BASE_BATCH_SIZE,
+            )
+            mfr_count = 0
+            for image_index in range(len(np_images)):
+                images_layout_res[image_index] += images_formula_list[image_index]
+                mfr_count += len(images_formula_list[image_index])
+
+        # 清理显存
+        clean_vram(self.model.device, vram_threshold=8)
+
+        ocr_res_list_all_page = []
+        table_res_list_all_page = []
+        for index in range(len(np_images)):
+            _, ocr_enable, _lang = images_with_extra_info[index]
+            layout_res = images_layout_res[index]
+            np_img = np_images[index]
+
+            ocr_res_list, table_res_list, single_page_mfdetrec_res = (
+                get_res_list_from_layout_res(layout_res)
+            )
+
+            ocr_res_list_all_page.append({'ocr_res_list':ocr_res_list,
+                                          'lang':_lang,
+                                          'ocr_enable':ocr_enable,
+                                          'np_img':np_img,
+                                          'single_page_mfdetrec_res':single_page_mfdetrec_res,
+                                          'layout_res':layout_res,
+                                          })
+
+            for table_res in table_res_list:
+                def get_crop_table_img(scale):
+                    crop_xmin, crop_ymin = int(table_res['poly'][0]), int(table_res['poly'][1])
+                    crop_xmax, crop_ymax = int(table_res['poly'][4]), int(table_res['poly'][5])
+                    bbox = (int(crop_xmin / scale), int(crop_ymin / scale), int(crop_xmax / scale), int(crop_ymax / scale))
+                    return get_crop_np_img(bbox, np_img, scale=scale)
+
+                wireless_table_img = get_crop_table_img(scale = 1)
+                wired_table_img = get_crop_table_img(scale = 10/3)
+
+                table_res_list_all_page.append({'table_res':table_res,
+                                                'lang':_lang,
+                                                'table_img':wireless_table_img,
+                                                'wired_table_img':wired_table_img,
+                                              })
+
+        # 表格识别 table recognition
+        if self.table_enable:
+
+            # 图片旋转批量处理
+            img_orientation_cls_model = atom_model_manager.get_atom_model(
+                atom_model_name=AtomicModel.ImgOrientationCls,
+            )
+            try:
+                if self.enable_ocr_det_batch:
+                    img_orientation_cls_model.batch_predict(table_res_list_all_page,
+                                                            det_batch_size=self.batch_ratio * OCR_DET_BASE_BATCH_SIZE,
+                                                            batch_size=TABLE_ORI_CLS_BATCH_SIZE)
+                else:
+                    for table_res in table_res_list_all_page:
+                        rotate_label = img_orientation_cls_model.predict(table_res['table_img'])
+                        img_orientation_cls_model.img_rotate(table_res, rotate_label)
+            except Exception as e:
+                logger.warning(
+                    f"Image orientation classification failed: {e}, using original image"
+                )
+
+            # 表格分类
+            table_cls_model = atom_model_manager.get_atom_model(
+                atom_model_name=AtomicModel.TableCls,
+            )
+            try:
+                table_cls_model.batch_predict(table_res_list_all_page,
+                                              batch_size=TABLE_Wired_Wireless_CLS_BATCH_SIZE)
+            except Exception as e:
+                logger.warning(
+                    f"Table classification failed: {e}, using default model"
+                )
+
+            # OCR det 过程,顺序执行
+            rec_img_lang_group = defaultdict(list)
+            det_ocr_engine = atom_model_manager.get_atom_model(
+                atom_model_name=AtomicModel.OCR,
+                det_db_box_thresh=0.5,
+                det_db_unclip_ratio=1.6,
+                enable_merge_det_boxes=False,
+            )
+            for index, table_res_dict in enumerate(
+                    tqdm(table_res_list_all_page, desc="Table-ocr det")
+            ):
+                bgr_image = cv2.cvtColor(table_res_dict["table_img"], cv2.COLOR_RGB2BGR)
+                ocr_result = det_ocr_engine.ocr(bgr_image, rec=False)[0]
+                # 构造需要 OCR 识别的图片字典,包括cropped_img, dt_box, table_id,并按照语言进行分组
+                for dt_box in ocr_result:
+                    rec_img_lang_group[_lang].append(
+                        {
+                            "cropped_img": get_rotate_crop_image(
+                                bgr_image, np.asarray(dt_box, dtype=np.float32)
+                            ),
+                            "dt_box": np.asarray(dt_box, dtype=np.float32),
+                            "table_id": index,
+                        }
+                    )
+
+            # OCR rec,按照语言分批处理
+            for _lang, rec_img_list in rec_img_lang_group.items():
+                ocr_engine = atom_model_manager.get_atom_model(
+                    atom_model_name=AtomicModel.OCR,
+                    det_db_box_thresh=0.5,
+                    det_db_unclip_ratio=1.6,
+                    lang=_lang,
+                    enable_merge_det_boxes=False,
+                )
+                cropped_img_list = [item["cropped_img"] for item in rec_img_list]
+                ocr_res_list = ocr_engine.ocr(cropped_img_list, det=False, tqdm_enable=True, tqdm_desc=f"Table-ocr rec {_lang}")[0]
+                # 按照 table_id 将识别结果进行回填
+                for img_dict, ocr_res in zip(rec_img_list, ocr_res_list):
+                    if table_res_list_all_page[img_dict["table_id"]].get("ocr_result"):
+                        table_res_list_all_page[img_dict["table_id"]]["ocr_result"].append(
+                            [img_dict["dt_box"], html.escape(ocr_res[0]), ocr_res[1]]
+                        )
+                    else:
+                        table_res_list_all_page[img_dict["table_id"]]["ocr_result"] = [
+                            [img_dict["dt_box"], html.escape(ocr_res[0]), ocr_res[1]]
+                        ]
+
+            clean_vram(self.model.device, vram_threshold=8)
+
+            # 先对所有表格使用无线表格模型,然后对分类为有线的表格使用有线表格模型
+            wireless_table_model = atom_model_manager.get_atom_model(
+                atom_model_name=AtomicModel.WirelessTable,
+            )
+            wireless_table_model.batch_predict(table_res_list_all_page)
+
+            # 单独拿出有线表格进行预测
+            wired_table_res_list = []
+            for table_res_dict in table_res_list_all_page:
+                # logger.debug(f"Table classification result: {table_res_dict["table_res"]["cls_label"]} with confidence {table_res_dict["table_res"]["cls_score"]}")
+                if (
+                    (table_res_dict["table_res"]["cls_label"] == AtomicModel.WirelessTable and table_res_dict["table_res"]["cls_score"] < 0.9)
+                    or table_res_dict["table_res"]["cls_label"] == AtomicModel.WiredTable
+                ):
+                    wired_table_res_list.append(table_res_dict)
+                del table_res_dict["table_res"]["cls_label"]
+                del table_res_dict["table_res"]["cls_score"]
+            if wired_table_res_list:
+                for table_res_dict in tqdm(
+                        wired_table_res_list, desc="Table-wired Predict"
+                ):
+                    if not table_res_dict.get("ocr_result", None):
+                        continue
+
+                    wired_table_model = atom_model_manager.get_atom_model(
+                        atom_model_name=AtomicModel.WiredTable,
+                        lang=table_res_dict["lang"],
+                    )
+                    table_res_dict["table_res"]["html"] = wired_table_model.predict(
+                        table_res_dict["wired_table_img"],
+                        table_res_dict["ocr_result"],
+                        table_res_dict["table_res"].get("html", None)
+                    )
+
+            # 表格格式清理
+            for table_res_dict in table_res_list_all_page:
+                html_code = table_res_dict["table_res"].get("html", "") or ""
+
+                # 检查html_code是否包含'<table>'和'</table>'
+                if "<table>" in html_code and "</table>" in html_code:
+                    # 选用<table>到</table>的内容,放入table_res_dict['table_res']['html']
+                    start_index = html_code.find("<table>")
+                    end_index = html_code.rfind("</table>") + len("</table>")
+                    table_res_dict["table_res"]["html"] = html_code[start_index:end_index]
+
+        # OCR det
+        if self.enable_ocr_det_batch:
+            # 批处理模式 - 按语言和分辨率分组
+            # 收集所有需要OCR检测的裁剪图像
+            all_cropped_images_info = []
+
+            for ocr_res_list_dict in ocr_res_list_all_page:
+                _lang = ocr_res_list_dict['lang']
+
+                for res in ocr_res_list_dict['ocr_res_list']:
+                    new_image, useful_list = crop_img(
+                        res, ocr_res_list_dict['np_img'], crop_paste_x=50, crop_paste_y=50
+                    )
+                    adjusted_mfdetrec_res = get_adjusted_mfdetrec_res(
+                        ocr_res_list_dict['single_page_mfdetrec_res'], useful_list
+                    )
+
+                    # BGR转换
+                    bgr_image = cv2.cvtColor(new_image, cv2.COLOR_RGB2BGR)
+
+                    all_cropped_images_info.append((
+                        bgr_image, useful_list, ocr_res_list_dict, res, adjusted_mfdetrec_res, _lang
+                    ))
+
+            # 按语言分组
+            lang_groups = defaultdict(list)
+            for crop_info in all_cropped_images_info:
+                lang = crop_info[5]
+                lang_groups[lang].append(crop_info)
+
+            # 对每种语言按分辨率分组并批处理
+            for lang, lang_crop_list in lang_groups.items():
+                if not lang_crop_list:
+                    continue
+
+                # logger.info(f"Processing OCR detection for language {lang} with {len(lang_crop_list)} images")
+
+                # 获取OCR模型
+                ocr_model = atom_model_manager.get_atom_model(
+                    atom_model_name=AtomicModel.OCR,
+                    det_db_box_thresh=0.3,
+                    lang=lang
+                )
+
+                # 按分辨率分组并同时完成padding
+                # RESOLUTION_GROUP_STRIDE = 32
+                RESOLUTION_GROUP_STRIDE = 64
+
+                resolution_groups = defaultdict(list)
+                for crop_info in lang_crop_list:
+                    cropped_img = crop_info[0]
+                    h, w = cropped_img.shape[:2]
+                    # 直接计算目标尺寸并用作分组键
+                    target_h = ((h + RESOLUTION_GROUP_STRIDE - 1) // RESOLUTION_GROUP_STRIDE) * RESOLUTION_GROUP_STRIDE
+                    target_w = ((w + RESOLUTION_GROUP_STRIDE - 1) // RESOLUTION_GROUP_STRIDE) * RESOLUTION_GROUP_STRIDE
+                    group_key = (target_h, target_w)
+                    resolution_groups[group_key].append(crop_info)
+
+                # 对每个分辨率组进行批处理
+                for (target_h, target_w), group_crops in tqdm(resolution_groups.items(), desc=f"OCR-det {lang}"):
+                    # 对所有图像进行padding到统一尺寸
+                    batch_images = []
+                    for crop_info in group_crops:
+                        img = crop_info[0]
+                        h, w = img.shape[:2]
+                        # 创建目标尺寸的白色背景
+                        padded_img = np.ones((target_h, target_w, 3), dtype=np.uint8) * 255
+                        padded_img[:h, :w] = img
+                        batch_images.append(padded_img)
+
+                    # 批处理检测
+                    det_batch_size = min(len(batch_images), self.batch_ratio * OCR_DET_BASE_BATCH_SIZE)
+                    batch_results = ocr_model.text_detector.batch_predict(batch_images, det_batch_size)
+
+                    # 处理批处理结果
+                    for crop_info, (dt_boxes, _) in zip(group_crops, batch_results):
+                        bgr_image, useful_list, ocr_res_list_dict, res, adjusted_mfdetrec_res, _lang = crop_info
+
+                        if dt_boxes is not None and len(dt_boxes) > 0:
+                            # 处理检测框
+                            dt_boxes_sorted = sorted_boxes(dt_boxes)
+                            dt_boxes_merged = merge_det_boxes(dt_boxes_sorted) if dt_boxes_sorted else []
+
+                            # 根据公式位置更新检测框
+                            dt_boxes_final = (update_det_boxes(dt_boxes_merged, adjusted_mfdetrec_res)
+                                              if dt_boxes_merged and adjusted_mfdetrec_res
+                                              else dt_boxes_merged)
+
+                            if dt_boxes_final:
+                                ocr_res = [box.tolist() if hasattr(box, 'tolist') else box for box in dt_boxes_final]
+                                ocr_result_list = get_ocr_result_list(
+                                    ocr_res, useful_list, ocr_res_list_dict['ocr_enable'], bgr_image, _lang
+                                )
+                                ocr_res_list_dict['layout_res'].extend(ocr_result_list)
+
+        else:
+            # 原始单张处理模式
+            for ocr_res_list_dict in tqdm(ocr_res_list_all_page, desc="OCR-det Predict"):
+                # Process each area that requires OCR processing
+                _lang = ocr_res_list_dict['lang']
+                # Get OCR results for this language's images
+                ocr_model = atom_model_manager.get_atom_model(
+                    atom_model_name=AtomicModel.OCR,
+                    ocr_show_log=False,
+                    det_db_box_thresh=0.3,
+                    lang=_lang
+                )
+                for res in ocr_res_list_dict['ocr_res_list']:
+                    new_image, useful_list = crop_img(
+                        res, ocr_res_list_dict['np_img'], crop_paste_x=50, crop_paste_y=50
+                    )
+                    adjusted_mfdetrec_res = get_adjusted_mfdetrec_res(
+                        ocr_res_list_dict['single_page_mfdetrec_res'], useful_list
+                    )
+                    # OCR-det
+                    bgr_image = cv2.cvtColor(new_image, cv2.COLOR_RGB2BGR)
+                    ocr_res = ocr_model.ocr(
+                        bgr_image, mfd_res=adjusted_mfdetrec_res, rec=False
+                    )[0]
+
+                    # Integration results
+                    if ocr_res:
+                        ocr_result_list = get_ocr_result_list(
+                            ocr_res, useful_list, ocr_res_list_dict['ocr_enable'],bgr_image, _lang
+                        )
+
+                        ocr_res_list_dict['layout_res'].extend(ocr_result_list)
+
+        # OCR rec
+        # Create dictionaries to store items by language
+        need_ocr_lists_by_lang = {}  # Dict of lists for each language
+        img_crop_lists_by_lang = {}  # Dict of lists for each language
+
+        for layout_res in images_layout_res:
+            for layout_res_item in layout_res:
+                if layout_res_item['category_id'] in [15]:
+                    if 'np_img' in layout_res_item and 'lang' in layout_res_item:
+                        lang = layout_res_item['lang']
+
+                        # Initialize lists for this language if not exist
+                        if lang not in need_ocr_lists_by_lang:
+                            need_ocr_lists_by_lang[lang] = []
+                            img_crop_lists_by_lang[lang] = []
+
+                        # Add to the appropriate language-specific lists
+                        need_ocr_lists_by_lang[lang].append(layout_res_item)
+                        img_crop_lists_by_lang[lang].append(layout_res_item['np_img'])
+
+                        # Remove the fields after adding to lists
+                        layout_res_item.pop('np_img')
+                        layout_res_item.pop('lang')
+
+        if len(img_crop_lists_by_lang) > 0:
+
+            # Process OCR by language
+            total_processed = 0
+
+            # Process each language separately
+            for lang, img_crop_list in img_crop_lists_by_lang.items():
+                if len(img_crop_list) > 0:
+                    # Get OCR results for this language's images
+
+                    ocr_model = atom_model_manager.get_atom_model(
+                        atom_model_name=AtomicModel.OCR,
+                        det_db_box_thresh=0.3,
+                        lang=lang
+                    )
+                    ocr_res_list = ocr_model.ocr(img_crop_list, det=False, tqdm_enable=True)[0]
+
+                    # Verify we have matching counts
+                    assert len(ocr_res_list) == len(
+                        need_ocr_lists_by_lang[lang]), f'ocr_res_list: {len(ocr_res_list)}, need_ocr_list: {len(need_ocr_lists_by_lang[lang])} for lang: {lang}'
+
+                    # Process OCR results for this language
+                    for index, layout_res_item in enumerate(need_ocr_lists_by_lang[lang]):
+                        ocr_text, ocr_score = ocr_res_list[index]
+                        layout_res_item['text'] = ocr_text
+                        layout_res_item['score'] = float(f"{ocr_score:.3f}")
+                        if ocr_score < OcrConfidence.min_confidence:
+                            layout_res_item['category_id'] = 16
+                        else:
+                            layout_res_bbox = [layout_res_item['poly'][0], layout_res_item['poly'][1],
+                                               layout_res_item['poly'][4], layout_res_item['poly'][5]]
+                            layout_res_width = layout_res_bbox[2] - layout_res_bbox[0]
+                            layout_res_height = layout_res_bbox[3] - layout_res_bbox[1]
+                            if (
+                                    ocr_text in [
+                                        '(204号', '(20', '(2', '(2号', '(20号', '号', '(204',
+                                        '(cid:)', '(ci:)', '(cd:1)', 'cd:)', 'c)', '(cd:)', 'c', 'id:)',
+                                        ':)', '√:)', '√i:)', '−i:)', '−:', 'i:)',
+                                    ]
+                                    and ocr_score < 0.8
+                                    and layout_res_width < layout_res_height
+                            ):
+                                layout_res_item['category_id'] = 16
+
+                    total_processed += len(img_crop_list)
+
+        return images_layout_res

+ 365 - 0
mineru/backend/pipeline/model_init.py

@@ -0,0 +1,365 @@
+import os
+
+import torch
+from loguru import logger
+
+from .model_list import AtomicModel
+from ...model.layout.doclayoutyolo import DocLayoutYOLOModel
+from ...model.mfd.yolo_v8 import YOLOv8MFDModel
+from ...model.mfr.unimernet.Unimernet import UnimernetModel
+from ...model.mfr.pp_formulanet_plus_m.predict_formula import FormulaRecognizer
+from mineru.model.ocr.pytorch_paddle import PytorchPaddleOCR
+from ...model.ori_cls.paddle_ori_cls import PaddleOrientationClsModel
+from ...model.table.cls.paddle_table_cls import PaddleTableClsModel
+# from ...model.table.rec.RapidTable import RapidTableModel
+from ...model.table.rec.slanet_plus.main import RapidTableModel
+from ...model.table.rec.unet_table.main import UnetTableModel
+from ...utils.config_reader import get_device
+from ...utils.enum_class import ModelPath
+from ...utils.models_download_utils import auto_download_and_get_model_root_path
+
+MFR_MODEL = os.getenv('MINERU_FORMULA_CH_SUPPORT', 'False')
+if MFR_MODEL.lower() in ['true', '1', 'yes']:
+    MFR_MODEL = "pp_formulanet_plus_m"
+elif MFR_MODEL.lower() in ['false', '0', 'no']:
+    MFR_MODEL = "unimernet_small"
+else:
+    logger.warning(f"Invalid MINERU_FORMULA_CH_SUPPORT value: {MFR_MODEL}, set to default 'False'")
+    MFR_MODEL = "unimernet_small"
+
+
+def img_orientation_cls_model_init():
+    atom_model_manager = AtomModelSingleton()
+    ocr_engine = atom_model_manager.get_atom_model(
+        atom_model_name=AtomicModel.OCR,
+        det_db_box_thresh=0.5,
+        det_db_unclip_ratio=1.6,
+        lang="ch_lite",
+        enable_merge_det_boxes=False
+    )
+    cls_model = PaddleOrientationClsModel(ocr_engine)
+    return cls_model
+
+
+def table_cls_model_init():
+    return PaddleTableClsModel()
+
+
+def wired_table_model_init(lang=None):
+    atom_model_manager = AtomModelSingleton()
+    ocr_engine = atom_model_manager.get_atom_model(
+        atom_model_name=AtomicModel.OCR,
+        det_db_box_thresh=0.5,
+        det_db_unclip_ratio=1.6,
+        lang=lang,
+        enable_merge_det_boxes=False
+    )
+    table_model = UnetTableModel(ocr_engine)
+    return table_model
+
+
+def wireless_table_model_init(lang=None):
+    atom_model_manager = AtomModelSingleton()
+    ocr_engine = atom_model_manager.get_atom_model(
+        atom_model_name=AtomicModel.OCR,
+        det_db_box_thresh=0.5,
+        det_db_unclip_ratio=1.6,
+        lang=lang,
+        enable_merge_det_boxes=False
+    )
+    table_model = RapidTableModel(ocr_engine)
+    return table_model
+
+
+def mfd_model_init(weight, device='cpu'):
+    if str(device).startswith('npu'):
+        device = torch.device(device)
+    mfd_model = YOLOv8MFDModel(weight, device)
+    return mfd_model
+
+
+def mfr_model_init(weight_dir, device='cpu'):
+    if MFR_MODEL == "unimernet_small":
+        mfr_model = UnimernetModel(weight_dir, device)
+    elif MFR_MODEL == "pp_formulanet_plus_m":
+        mfr_model = FormulaRecognizer(weight_dir, device)
+    else:
+        logger.error('MFR model name not allow')
+        exit(1)
+    return mfr_model
+
+
+def doclayout_yolo_model_init(weight, device='cpu'):
+    if str(device).startswith('npu'):
+        device = torch.device(device)
+    model = DocLayoutYOLOModel(weight, device)
+    return model
+
+def ocr_model_init(det_db_box_thresh=0.3,
+                   lang=None,
+                   det_db_unclip_ratio=1.8,
+                   enable_merge_det_boxes=True
+                   ):
+    if lang is not None and lang != '':
+        model = PytorchPaddleOCR(
+            det_db_box_thresh=det_db_box_thresh,
+            lang=lang,
+            use_dilation=True,
+            det_db_unclip_ratio=det_db_unclip_ratio,
+            enable_merge_det_boxes=enable_merge_det_boxes,
+        )
+    else:
+        model = PytorchPaddleOCR(
+            det_db_box_thresh=det_db_box_thresh,
+            use_dilation=True,
+            det_db_unclip_ratio=det_db_unclip_ratio,
+            enable_merge_det_boxes=enable_merge_det_boxes,
+        )
+    return model
+
+
+class AtomModelSingleton:
+    _instance = None
+    _models = {}
+
+    def __new__(cls, *args, **kwargs):
+        if cls._instance is None:
+            cls._instance = super().__new__(cls)
+        return cls._instance
+
+    def get_atom_model(self, atom_model_name: str, **kwargs):
+
+        lang = kwargs.get('lang', None)
+
+        if atom_model_name in [AtomicModel.WiredTable, AtomicModel.WirelessTable]:
+            key = (
+                atom_model_name,
+                lang
+            )
+        elif atom_model_name in [AtomicModel.OCR]:
+            key = (
+                atom_model_name,
+                kwargs.get('det_db_box_thresh', 0.3),
+                lang,
+                kwargs.get('det_db_unclip_ratio', 1.8),
+                kwargs.get('enable_merge_det_boxes', True)
+            )
+        else:
+            key = atom_model_name
+
+        if key not in self._models:
+            self._models[key] = atom_model_init(model_name=atom_model_name, **kwargs)
+        return self._models[key]
+
+def atom_model_init(model_name: str, **kwargs):
+    atom_model = None
+    if model_name == AtomicModel.Layout:
+        atom_model = doclayout_yolo_model_init(
+            kwargs.get('doclayout_yolo_weights'),
+            kwargs.get('device')
+        )
+    elif model_name == AtomicModel.MFD:
+        atom_model = mfd_model_init(
+            kwargs.get('mfd_weights'),
+            kwargs.get('device')
+        )
+    elif model_name == AtomicModel.MFR:
+        atom_model = mfr_model_init(
+            kwargs.get('mfr_weight_dir'),
+            kwargs.get('device')
+        )
+    elif model_name == AtomicModel.OCR:
+        atom_model = ocr_model_init(
+            kwargs.get('det_db_box_thresh', 0.3),
+            kwargs.get('lang'),
+            kwargs.get('det_db_unclip_ratio', 1.8),
+            kwargs.get('enable_merge_det_boxes', True)
+        )
+    elif model_name == AtomicModel.WirelessTable:
+        atom_model = wireless_table_model_init(
+            kwargs.get('lang'),
+        )
+    elif model_name == AtomicModel.WiredTable:
+        atom_model = wired_table_model_init(
+            kwargs.get('lang'),
+        )
+    elif model_name == AtomicModel.TableCls:
+        atom_model = table_cls_model_init()
+    elif model_name == AtomicModel.ImgOrientationCls:
+        atom_model = img_orientation_cls_model_init()
+    else:
+        logger.error('model name not allow')
+        exit(1)
+
+    if atom_model is None:
+        logger.error('model init failed')
+        exit(1)
+    else:
+        return atom_model
+
+
+class MineruPipelineModel:
+    def __init__(self, **kwargs):
+        self.formula_config = kwargs.get('formula_config')
+        self.apply_formula = self.formula_config.get('enable', True)
+        self.table_config = kwargs.get('table_config')
+        self.apply_table = self.table_config.get('enable', True)
+        self.lang = kwargs.get('lang', None)
+        self.device = kwargs.get('device', 'cpu')
+        logger.info(
+            'DocAnalysis init, this may take some times......'
+        )
+        atom_model_manager = AtomModelSingleton()
+
+        if self.apply_formula:
+            # 初始化公式检测模型
+            self.mfd_model = atom_model_manager.get_atom_model(
+                atom_model_name=AtomicModel.MFD,
+                mfd_weights=str(
+                    os.path.join(auto_download_and_get_model_root_path(ModelPath.yolo_v8_mfd), ModelPath.yolo_v8_mfd)
+                ),
+                device=self.device,
+            )
+
+            # 初始化公式解析模型
+            if MFR_MODEL == "unimernet_small":
+                mfr_model_path = ModelPath.unimernet_small
+            elif MFR_MODEL == "pp_formulanet_plus_m":
+                mfr_model_path = ModelPath.pp_formulanet_plus_m
+            else:
+                logger.error('MFR model name not allow')
+                exit(1)
+
+            self.mfr_model = atom_model_manager.get_atom_model(
+                atom_model_name=AtomicModel.MFR,
+                mfr_weight_dir=str(os.path.join(auto_download_and_get_model_root_path(mfr_model_path), mfr_model_path)),
+                device=self.device,
+            )
+
+        # 初始化layout模型
+        self.layout_model = atom_model_manager.get_atom_model(
+            atom_model_name=AtomicModel.Layout,
+            doclayout_yolo_weights=str(
+                os.path.join(auto_download_and_get_model_root_path(ModelPath.doclayout_yolo), ModelPath.doclayout_yolo)
+            ),
+            device=self.device,
+        )
+        # 初始化ocr
+        self.ocr_model = atom_model_manager.get_atom_model(
+            atom_model_name=AtomicModel.OCR,
+            det_db_box_thresh=0.3,
+            lang=self.lang
+        )
+        # init table model
+        if self.apply_table:
+            self.wired_table_model = atom_model_manager.get_atom_model(
+                atom_model_name=AtomicModel.WiredTable,
+                lang=self.lang,
+            )
+            self.wireless_table_model = atom_model_manager.get_atom_model(
+                atom_model_name=AtomicModel.WirelessTable,
+                lang=self.lang,
+            )
+            self.table_cls_model = atom_model_manager.get_atom_model(
+                atom_model_name=AtomicModel.TableCls,
+            )
+            self.img_orientation_cls_model = atom_model_manager.get_atom_model(
+                atom_model_name=AtomicModel.ImgOrientationCls,
+                lang=self.lang,
+            )
+
+        logger.info('DocAnalysis init done!')
+
+
+class HybridModelSingleton:
+    _instance = None
+    _models = {}
+
+    def __new__(cls, *args, **kwargs):
+        if cls._instance is None:
+            cls._instance = super().__new__(cls)
+        return cls._instance
+
+    def get_model(
+        self,
+        lang=None,
+        formula_enable=None,
+    ):
+        key = (lang, formula_enable)
+        if key not in self._models:
+            self._models[key] = MineruHybridModel(
+                lang=lang,
+                formula_enable=formula_enable,
+            )
+        return self._models[key]
+
+def ocr_det_batch_setting(device):
+    # 检测torch的版本号
+    import torch
+    from packaging import version
+    if version.parse(torch.__version__) >= version.parse("2.8.0") or str(device).startswith('mps'):
+        enable_ocr_det_batch = False
+    else:
+        enable_ocr_det_batch = True
+    return enable_ocr_det_batch
+
+class MineruHybridModel:
+    def __init__(
+            self,
+            device=None,
+            lang=None,
+            formula_enable=True,
+    ):
+        if device is not None:
+            self.device = device
+        else:
+            self.device = get_device()
+
+        self.lang = lang
+
+        self.enable_ocr_det_batch = ocr_det_batch_setting(self.device)
+
+        if str(self.device).startswith('npu'):
+            try:
+                import torch_npu
+                if torch_npu.npu.is_available():
+                    torch_npu.npu.set_compile_mode(jit_compile=False)
+            except Exception as e:
+                raise RuntimeError(
+                    "NPU is selected as device, but torch_npu is not available. "
+                    "Please ensure that the torch_npu package is installed correctly."
+                ) from e
+
+        self.atom_model_manager = AtomModelSingleton()
+
+        # 初始化OCR模型
+        self.ocr_model = self.atom_model_manager.get_atom_model(
+            atom_model_name=AtomicModel.OCR,
+            det_db_box_thresh=0.3,
+            lang=self.lang
+        )
+
+        if formula_enable:
+            # 初始化公式检测模型
+            self.mfd_model = self.atom_model_manager.get_atom_model(
+                atom_model_name=AtomicModel.MFD,
+                mfd_weights=str(
+                    os.path.join(auto_download_and_get_model_root_path(ModelPath.yolo_v8_mfd), ModelPath.yolo_v8_mfd)
+                ),
+                device=self.device,
+            )
+
+            # 初始化公式解析模型
+            if MFR_MODEL == "unimernet_small":
+                mfr_model_path = ModelPath.unimernet_small
+            elif MFR_MODEL == "pp_formulanet_plus_m":
+                mfr_model_path = ModelPath.pp_formulanet_plus_m
+            else:
+                logger.error('MFR model name not allow')
+                exit(1)
+
+            self.mfr_model = self.atom_model_manager.get_atom_model(
+                atom_model_name=AtomicModel.MFR,
+                mfr_weight_dir=str(os.path.join(auto_download_and_get_model_root_path(mfr_model_path), mfr_model_path)),
+                device=self.device,
+            )

+ 263 - 0
mineru/backend/pipeline/model_json_to_middle_json.py

@@ -0,0 +1,263 @@
+# Copyright (c) Opendatalab. All rights reserved.
+import os
+import time
+
+from loguru import logger
+from tqdm import tqdm
+
+from mineru.backend.utils import cross_page_table_merge
+from mineru.utils.config_reader import get_device, get_llm_aided_config, get_formula_enable
+from mineru.backend.pipeline.model_init import AtomModelSingleton
+from mineru.backend.pipeline.para_split import para_split
+from mineru.utils.block_pre_proc import prepare_block_bboxes, process_groups
+from mineru.utils.block_sort import sort_blocks_by_bbox
+from mineru.utils.boxbase import calculate_overlap_area_in_bbox1_area_ratio
+from mineru.utils.cut_image import cut_image_and_table
+from mineru.utils.enum_class import ContentType
+from mineru.utils.llm_aided import llm_aided_title
+from mineru.utils.model_utils import clean_memory
+from mineru.backend.pipeline.pipeline_magic_model import MagicModel
+from mineru.utils.ocr_utils import OcrConfidence
+from mineru.utils.span_block_fix import fill_spans_in_blocks, fix_discarded_block, fix_block_spans
+from mineru.utils.span_pre_proc import remove_outside_spans, remove_overlaps_low_confidence_spans, \
+    remove_overlaps_min_spans, txt_spans_extract
+from mineru.version import __version__
+from mineru.utils.hash_utils import bytes_md5
+
+
+def page_model_info_to_page_info(page_model_info, image_dict, page, image_writer, page_index, ocr_enable=False, formula_enabled=True):
+    scale = image_dict["scale"]
+    page_pil_img = image_dict["img_pil"]
+    # page_img_md5 = str_md5(image_dict["img_base64"])
+    page_img_md5 = bytes_md5(page_pil_img.tobytes())
+    page_w, page_h = map(int, page.get_size())
+    magic_model = MagicModel(page_model_info, scale)
+
+    """从magic_model对象中获取后面会用到的区块信息"""
+    discarded_blocks = magic_model.get_discarded()
+    text_blocks = magic_model.get_text_blocks()
+    title_blocks = magic_model.get_title_blocks()
+    inline_equations, interline_equations, interline_equation_blocks = magic_model.get_equations()
+
+    img_groups = magic_model.get_imgs()
+    table_groups = magic_model.get_tables()
+
+    """对image和table的区块分组"""
+    img_body_blocks, img_caption_blocks, img_footnote_blocks, maybe_text_image_blocks = process_groups(
+        img_groups, 'image_body', 'image_caption_list', 'image_footnote_list'
+    )
+
+    table_body_blocks, table_caption_blocks, table_footnote_blocks, _ = process_groups(
+        table_groups, 'table_body', 'table_caption_list', 'table_footnote_list'
+    )
+
+    """获取所有的spans信息"""
+    spans = magic_model.get_all_spans()
+
+    """某些图可能是文本块,通过简单的规则判断一下"""
+    if len(maybe_text_image_blocks) > 0:
+        for block in maybe_text_image_blocks:
+            should_add_to_text_blocks = False
+
+            if ocr_enable:
+                # 找到与当前block重叠的text spans
+                span_in_block_list = [
+                    span for span in spans
+                    if span['type'] == 'text' and
+                       calculate_overlap_area_in_bbox1_area_ratio(span['bbox'], block['bbox']) > 0.7
+                ]
+
+                if len(span_in_block_list) > 0:
+                    # 计算spans总面积
+                    spans_area = sum(
+                        (span['bbox'][2] - span['bbox'][0]) * (span['bbox'][3] - span['bbox'][1])
+                        for span in span_in_block_list
+                    )
+
+                    # 计算block面积
+                    block_area = (block['bbox'][2] - block['bbox'][0]) * (block['bbox'][3] - block['bbox'][1])
+
+                    # 判断是否符合文本图条件
+                    if block_area > 0 and spans_area / block_area > 0.25:
+                        should_add_to_text_blocks = True
+
+            # 根据条件决定添加到哪个列表
+            if should_add_to_text_blocks:
+                block.pop('group_id', None)  # 移除group_id
+                text_blocks.append(block)
+            else:
+                img_body_blocks.append(block)
+
+
+    """将所有区块的bbox整理到一起"""
+    if formula_enabled:
+        interline_equation_blocks = []
+
+    if len(interline_equation_blocks) > 0:
+
+        for block in interline_equation_blocks:
+            spans.append({
+                "type": ContentType.INTERLINE_EQUATION,
+                'score': block['score'],
+                "bbox": block['bbox'],
+                "content": "",
+            })
+
+        all_bboxes, all_discarded_blocks, footnote_blocks = prepare_block_bboxes(
+            img_body_blocks, img_caption_blocks, img_footnote_blocks,
+            table_body_blocks, table_caption_blocks, table_footnote_blocks,
+            discarded_blocks,
+            text_blocks,
+            title_blocks,
+            interline_equation_blocks,
+            page_w,
+            page_h,
+        )
+    else:
+        all_bboxes, all_discarded_blocks, footnote_blocks = prepare_block_bboxes(
+            img_body_blocks, img_caption_blocks, img_footnote_blocks,
+            table_body_blocks, table_caption_blocks, table_footnote_blocks,
+            discarded_blocks,
+            text_blocks,
+            title_blocks,
+            interline_equations,
+            page_w,
+            page_h,
+        )
+
+    """在删除重复span之前,应该通过image_body和table_body的block过滤一下image和table的span"""
+    """顺便删除大水印并保留abandon的span"""
+    spans = remove_outside_spans(spans, all_bboxes, all_discarded_blocks)
+
+    """删除重叠spans中置信度较低的那些"""
+    spans, dropped_spans_by_confidence = remove_overlaps_low_confidence_spans(spans)
+    """删除重叠spans中较小的那些"""
+    spans, dropped_spans_by_span_overlap = remove_overlaps_min_spans(spans)
+
+    """根据parse_mode,构造spans,主要是文本类的字符填充"""
+    if ocr_enable:
+        pass
+    else:
+        """使用新版本的混合ocr方案."""
+        spans = txt_spans_extract(page, spans, page_pil_img, scale, all_bboxes, all_discarded_blocks)
+
+    """先处理不需要排版的discarded_blocks"""
+    discarded_block_with_spans, spans = fill_spans_in_blocks(
+        all_discarded_blocks, spans, 0.4
+    )
+    fix_discarded_blocks = fix_discarded_block(discarded_block_with_spans)
+
+    """如果当前页面没有有效的bbox则跳过"""
+    if len(all_bboxes) == 0 and len(fix_discarded_blocks) == 0:
+        return None
+
+    """对image/table/interline_equation截图"""
+    for span in spans:
+        if span['type'] in [ContentType.IMAGE, ContentType.TABLE, ContentType.INTERLINE_EQUATION]:
+            span = cut_image_and_table(
+                span, page_pil_img, page_img_md5, page_index, image_writer, scale=scale
+            )
+
+    """span填充进block"""
+    block_with_spans, spans = fill_spans_in_blocks(all_bboxes, spans, 0.5)
+
+    """对block进行fix操作"""
+    fix_blocks = fix_block_spans(block_with_spans)
+
+    """对block进行排序"""
+    sorted_blocks = sort_blocks_by_bbox(fix_blocks, page_w, page_h, footnote_blocks)
+
+    """构造page_info"""
+    page_info = make_page_info_dict(sorted_blocks, page_index, page_w, page_h, fix_discarded_blocks)
+
+    return page_info
+
+
+def result_to_middle_json(model_list, images_list, pdf_doc, image_writer, lang=None, ocr_enable=False, formula_enabled=True):
+    middle_json = {"pdf_info": [], "_backend":"pipeline", "_version_name": __version__}
+    formula_enabled = get_formula_enable(formula_enabled)
+    for page_index, page_model_info in tqdm(enumerate(model_list), total=len(model_list), desc="Processing pages"):
+        page = pdf_doc[page_index]
+        image_dict = images_list[page_index]
+        page_info = page_model_info_to_page_info(
+            page_model_info, image_dict, page, image_writer, page_index, ocr_enable=ocr_enable, formula_enabled=formula_enabled
+        )
+        if page_info is None:
+            page_w, page_h = map(int, page.get_size())
+            page_info = make_page_info_dict([], page_index, page_w, page_h, [])
+        middle_json["pdf_info"].append(page_info)
+
+    """后置ocr处理"""
+    need_ocr_list = []
+    img_crop_list = []
+    text_block_list = []
+    for page_info in middle_json["pdf_info"]:
+        for block in page_info['preproc_blocks']:
+            if block['type'] in ['table', 'image']:
+                for sub_block in block['blocks']:
+                    if sub_block['type'] in ['image_caption', 'image_footnote', 'table_caption', 'table_footnote']:
+                        text_block_list.append(sub_block)
+            elif block['type'] in ['text', 'title']:
+                text_block_list.append(block)
+        for block in page_info['discarded_blocks']:
+            text_block_list.append(block)
+    for block in text_block_list:
+        for line in block['lines']:
+            for span in line['spans']:
+                if 'np_img' in span:
+                    need_ocr_list.append(span)
+                    img_crop_list.append(span['np_img'])
+                    span.pop('np_img')
+    if len(img_crop_list) > 0:
+        atom_model_manager = AtomModelSingleton()
+        ocr_model = atom_model_manager.get_atom_model(
+            atom_model_name='ocr',
+            det_db_box_thresh=0.3,
+            lang=lang
+        )
+        ocr_res_list = ocr_model.ocr(img_crop_list, det=False, tqdm_enable=True)[0]
+        assert len(ocr_res_list) == len(
+            need_ocr_list), f'ocr_res_list: {len(ocr_res_list)}, need_ocr_list: {len(need_ocr_list)}'
+        for index, span in enumerate(need_ocr_list):
+            ocr_text, ocr_score = ocr_res_list[index]
+            if ocr_score > OcrConfidence.min_confidence:
+                span['content'] = ocr_text
+                span['score'] = float(f"{ocr_score:.3f}")
+            else:
+                span['content'] = ''
+                span['score'] = 0.0
+
+    """分段"""
+    para_split(middle_json["pdf_info"])
+
+    """表格跨页合并"""
+    cross_page_table_merge(middle_json["pdf_info"])
+
+    """llm优化"""
+    llm_aided_config = get_llm_aided_config()
+
+    if llm_aided_config is not None:
+        """标题优化"""
+        title_aided_config = llm_aided_config.get('title_aided', None)
+        if title_aided_config is not None:
+            if title_aided_config.get('enable', False):
+                llm_aided_title_start_time = time.time()
+                llm_aided_title(middle_json["pdf_info"], title_aided_config)
+                logger.info(f'llm aided title time: {round(time.time() - llm_aided_title_start_time, 2)}')
+
+    """清理内存"""
+    pdf_doc.close()
+    if os.getenv('MINERU_DONOT_CLEAN_MEM') is None and len(model_list) >= 10:
+        clean_memory(get_device())
+
+    return middle_json
+
+
+def make_page_info_dict(blocks, page_id, page_w, page_h, discarded_blocks):
+    return_dict = {
+        'preproc_blocks': blocks,
+        'page_idx': page_id,
+        'page_size': [page_w, page_h],
+        'discarded_blocks': discarded_blocks,
+    }
+    return return_dict

+ 9 - 0
mineru/backend/pipeline/model_list.py

@@ -0,0 +1,9 @@
+class AtomicModel:
+    Layout = "layout"
+    MFD = "mfd"
+    MFR = "mfr"
+    OCR = "ocr"
+    WirelessTable = "wireless_table"
+    WiredTable = "wired_table"
+    TableCls = "table_cls"
+    ImgOrientationCls = "img_ori_cls"

+ 381 - 0
mineru/backend/pipeline/para_split.py

@@ -0,0 +1,381 @@
+import copy
+from loguru import logger
+from mineru.utils.enum_class import ContentType, BlockType, SplitFlag
+from mineru.utils.language import detect_lang
+
+
+LINE_STOP_FLAG = ('.', '!', '?', '。', '!', '?', ')', ')', '"', '”', ':', ':', ';', ';')
+LIST_END_FLAG = ('.', '。', ';', ';')
+
+
+class ListLineTag:
+    IS_LIST_START_LINE = 'is_list_start_line'
+    IS_LIST_END_LINE = 'is_list_end_line'
+
+
+def __process_blocks(blocks):
+    # 对所有block预处理
+    # 1.通过title和interline_equation将block分组
+    # 2.bbox边界根据line信息重置
+
+    result = []
+    current_group = []
+
+    for i in range(len(blocks)):
+        current_block = blocks[i]
+
+        # 如果当前块是 text 类型
+        if current_block['type'] == 'text':
+            current_block['bbox_fs'] = copy.deepcopy(current_block['bbox'])
+            if 'lines' in current_block and len(current_block['lines']) > 0:
+                current_block['bbox_fs'] = [
+                    min([line['bbox'][0] for line in current_block['lines']]),
+                    min([line['bbox'][1] for line in current_block['lines']]),
+                    max([line['bbox'][2] for line in current_block['lines']]),
+                    max([line['bbox'][3] for line in current_block['lines']]),
+                ]
+            current_group.append(current_block)
+
+        # 检查下一个块是否存在
+        if i + 1 < len(blocks):
+            next_block = blocks[i + 1]
+            # 如果下一个块不是 text 类型且是 title 或 interline_equation 类型
+            if next_block['type'] in ['title', 'interline_equation']:
+                result.append(current_group)
+                current_group = []
+
+    # 处理最后一个 group
+    if current_group:
+        result.append(current_group)
+
+    return result
+
+
+def __is_list_or_index_block(block):
+    # 一个block如果是list block 应该同时满足以下特征
+    # 1.block内有多个line 2.block 内有多个line左侧顶格写 3.block内有多个line 右侧不顶格(狗牙状)
+    # 1.block内有多个line 2.block 内有多个line左侧顶格写 3.多个line以endflag结尾
+    # 1.block内有多个line 2.block 内有多个line左侧顶格写 3.block内有多个line 左侧不顶格
+
+    # index block 是一种特殊的list block
+    # 一个block如果是index block 应该同时满足以下特征
+    # 1.block内有多个line 2.block 内有多个line两侧均顶格写 3.line的开头或者结尾均为数字
+    if len(block['lines']) >= 2:
+        first_line = block['lines'][0]
+        line_height = first_line['bbox'][3] - first_line['bbox'][1]
+        block_weight = block['bbox_fs'][2] - block['bbox_fs'][0]
+        block_height = block['bbox_fs'][3] - block['bbox_fs'][1]
+        page_weight, page_height = block['page_size']
+
+        left_close_num = 0
+        left_not_close_num = 0
+        right_not_close_num = 0
+        right_close_num = 0
+        lines_text_list = []
+        center_close_num = 0
+        external_sides_not_close_num = 0
+        multiple_para_flag = False
+        last_line = block['lines'][-1]
+
+        if page_weight == 0:
+            block_weight_radio = 0
+        else:
+            block_weight_radio = block_weight / page_weight
+        # logger.info(f"block_weight_radio: {block_weight_radio}")
+
+        # 如果首行左边不顶格而右边顶格,末行左边顶格而右边不顶格 (第一行可能可以右边不顶格)
+        if (
+            first_line['bbox'][0] - block['bbox_fs'][0] > line_height / 2
+            and abs(last_line['bbox'][0] - block['bbox_fs'][0]) < line_height / 2
+            and block['bbox_fs'][2] - last_line['bbox'][2] > line_height
+        ):
+            multiple_para_flag = True
+
+        block_text = ''
+
+        for line in block['lines']:
+            line_text = ''
+
+            for span in line['spans']:
+                span_type = span['type']
+                if span_type == ContentType.TEXT:
+                    line_text += span['content'].strip()
+            # 添加所有文本,包括空行,保持与block['lines']长度一致
+            lines_text_list.append(line_text)
+            block_text = ''.join(lines_text_list)
+
+        block_lang = detect_lang(block_text)
+        # logger.info(f"block_lang: {block_lang}")
+
+        for line in block['lines']:
+            line_mid_x = (line['bbox'][0] + line['bbox'][2]) / 2
+            block_mid_x = (block['bbox_fs'][0] + block['bbox_fs'][2]) / 2
+            if (
+                line['bbox'][0] - block['bbox_fs'][0] > 0.7 * line_height
+                and block['bbox_fs'][2] - line['bbox'][2] > 0.7 * line_height
+            ):
+                external_sides_not_close_num += 1
+            if abs(line_mid_x - block_mid_x) < line_height / 2:
+                center_close_num += 1
+
+            # 计算line左侧顶格数量是否大于2,是否顶格用abs(block['bbox_fs'][0] - line['bbox'][0]) < line_height/2 来判断
+            if abs(block['bbox_fs'][0] - line['bbox'][0]) < line_height / 2:
+                left_close_num += 1
+            elif line['bbox'][0] - block['bbox_fs'][0] > line_height:
+                left_not_close_num += 1
+
+            # 计算右侧是否顶格
+            if abs(block['bbox_fs'][2] - line['bbox'][2]) < line_height:
+                right_close_num += 1
+            else:
+                # 类中文没有超长单词的情况,可以用统一的阈值
+                if block_lang in ['zh', 'ja', 'ko']:
+                    closed_area = 0.26 * block_weight
+                else:
+                    # 右侧不顶格情况下是否有一段距离,拍脑袋用0.3block宽度做阈值
+                    # block宽的阈值可以小些,block窄的阈值要大
+                    if block_weight_radio >= 0.5:
+                        closed_area = 0.26 * block_weight
+                    else:
+                        closed_area = 0.36 * block_weight
+                if block['bbox_fs'][2] - line['bbox'][2] > closed_area:
+                    right_not_close_num += 1
+
+        # 判断lines_text_list中的元素是否有超过80%都以LIST_END_FLAG结尾
+        line_end_flag = False
+        # 判断lines_text_list中的元素是否有超过80%都以数字开头或都以数字结尾
+        line_num_flag = False
+        num_start_count = 0
+        num_end_count = 0
+        flag_end_count = 0
+
+        if len(lines_text_list) > 0:
+            for line_text in lines_text_list:
+                if len(line_text) > 0:
+                    if line_text[-1] in LIST_END_FLAG:
+                        flag_end_count += 1
+                    if line_text[0].isdigit():
+                        num_start_count += 1
+                    if line_text[-1].isdigit():
+                        num_end_count += 1
+
+            if (
+                num_start_count / len(lines_text_list) >= 0.8
+                or num_end_count / len(lines_text_list) >= 0.8
+            ):
+                line_num_flag = True
+            if flag_end_count / len(lines_text_list) >= 0.8:
+                line_end_flag = True
+
+        # 有的目录右侧不贴边, 目前认为左边或者右边有一边全贴边,且符合数字规则极为index
+        if (
+            left_close_num / len(block['lines']) >= 0.8
+            or right_close_num / len(block['lines']) >= 0.8
+        ) and line_num_flag:
+            for line in block['lines']:
+                line[ListLineTag.IS_LIST_START_LINE] = True
+            return BlockType.INDEX
+
+        # 全部line都居中的特殊list识别,每行都需要换行,特征是多行,且大多数行都前后not_close,每line中点x坐标接近
+        # 补充条件block的长宽比有要求
+        elif (
+            external_sides_not_close_num >= 2
+            and center_close_num == len(block['lines'])
+            and external_sides_not_close_num / len(block['lines']) >= 0.5
+            and block_height / block_weight > 0.4
+        ):
+            for line in block['lines']:
+                line[ListLineTag.IS_LIST_START_LINE] = True
+            return BlockType.LIST
+
+        elif (
+            left_close_num >= 2
+            and (right_not_close_num >= 2 or line_end_flag or left_not_close_num >= 2)
+            and not multiple_para_flag
+            # and block_weight_radio > 0.27
+        ):
+            # 处理一种特殊的没有缩进的list,所有行都贴左边,通过右边的空隙判断是否是item尾
+            if left_close_num / len(block['lines']) > 0.8:
+                # 这种是每个item只有一行,且左边都贴边的短item list
+                if flag_end_count == 0 and right_close_num / len(block['lines']) < 0.5:
+                    for line in block['lines']:
+                        if abs(block['bbox_fs'][0] - line['bbox'][0]) < line_height / 2:
+                            line[ListLineTag.IS_LIST_START_LINE] = True
+                # 这种是大部分line item 都有结束标识符的情况,按结束标识符区分不同item
+                elif line_end_flag:
+                    for i, line in enumerate(block['lines']):
+                        if (
+                            len(lines_text_list[i]) > 0
+                            and lines_text_list[i][-1] in LIST_END_FLAG
+                        ):
+                            line[ListLineTag.IS_LIST_END_LINE] = True
+                            if i + 1 < len(block['lines']):
+                                block['lines'][i + 1][
+                                    ListLineTag.IS_LIST_START_LINE
+                                ] = True
+                # line item基本没有结束标识符,而且也没有缩进,按右侧空隙判断哪些是item end
+                else:
+                    line_start_flag = False
+                    for i, line in enumerate(block['lines']):
+                        if line_start_flag:
+                            line[ListLineTag.IS_LIST_START_LINE] = True
+                            line_start_flag = False
+
+                        if (
+                            abs(block['bbox_fs'][2] - line['bbox'][2])
+                            > 0.1 * block_weight
+                        ):
+                            line[ListLineTag.IS_LIST_END_LINE] = True
+                            line_start_flag = True
+            # 一种有缩进的特殊有序list,start line 左侧不贴边且以数字开头,end line 以 IS_LIST_END_FLAG 结尾且数量和start line 一致
+            elif num_start_count >= 2 and num_start_count == flag_end_count:
+                for i, line in enumerate(block['lines']):
+                    if len(lines_text_list[i]) > 0:
+                        if lines_text_list[i][0].isdigit():
+                            line[ListLineTag.IS_LIST_START_LINE] = True
+                        if lines_text_list[i][-1] in LIST_END_FLAG:
+                            line[ListLineTag.IS_LIST_END_LINE] = True
+            else:
+                # 正常有缩进的list处理
+                for line in block['lines']:
+                    if abs(block['bbox_fs'][0] - line['bbox'][0]) < line_height / 2:
+                        line[ListLineTag.IS_LIST_START_LINE] = True
+                    if abs(block['bbox_fs'][2] - line['bbox'][2]) > line_height:
+                        line[ListLineTag.IS_LIST_END_LINE] = True
+
+            return BlockType.LIST
+        else:
+            return BlockType.TEXT
+    else:
+        return BlockType.TEXT
+
+
+def __merge_2_text_blocks(block1, block2):
+    if len(block1['lines']) > 0:
+        first_line = block1['lines'][0]
+        line_height = first_line['bbox'][3] - first_line['bbox'][1]
+        block1_weight = block1['bbox'][2] - block1['bbox'][0]
+        block2_weight = block2['bbox'][2] - block2['bbox'][0]
+        min_block_weight = min(block1_weight, block2_weight)
+        if abs(block1['bbox_fs'][0] - first_line['bbox'][0]) < line_height / 2:
+            last_line = block2['lines'][-1]
+            if len(last_line['spans']) > 0:
+                last_span = last_line['spans'][-1]
+                line_height = last_line['bbox'][3] - last_line['bbox'][1]
+                if len(first_line['spans']) > 0:
+                    first_span = first_line['spans'][0]
+                    if len(first_span['content']) > 0:
+                        span_start_with_num = first_span['content'][0].isdigit()
+                        span_start_with_big_char = first_span['content'][0].isupper()
+                        if (
+                            # 上一个block的最后一个line的右边界和block的右边界差距不超过line_height
+                            abs(block2['bbox_fs'][2] - last_line['bbox'][2]) < line_height
+                            # 上一个block的最后一个span不是以特定符号结尾
+                            and not last_span['content'].endswith(LINE_STOP_FLAG)
+                            # 两个block宽度差距超过2倍也不合并
+                            and abs(block1_weight - block2_weight) < min_block_weight
+                            # 下一个block的第一个字符是数字
+                            and not span_start_with_num
+                            # 下一个block的第一个字符是大写字母
+                            and not span_start_with_big_char
+                        ):
+                            if block1['page_num'] != block2['page_num']:
+                                for line in block1['lines']:
+                                    for span in line['spans']:
+                                        span[SplitFlag.CROSS_PAGE] = True
+                            block2['lines'].extend(block1['lines'])
+                            block1['lines'] = []
+                            block1[SplitFlag.LINES_DELETED] = True
+
+    return block1, block2
+
+
+def __merge_2_list_blocks(block1, block2):
+    if block1['page_num'] != block2['page_num']:
+        for line in block1['lines']:
+            for span in line['spans']:
+                span[SplitFlag.CROSS_PAGE] = True
+    block2['lines'].extend(block1['lines'])
+    block1['lines'] = []
+    block1[SplitFlag.LINES_DELETED] = True
+
+    return block1, block2
+
+
+def __is_list_group(text_blocks_group):
+    # list group的特征是一个group内的所有block都满足以下条件
+    # 1.每个block都不超过3行 2. 每个block 的左边界都比较接近(逻辑简单点先不加这个规则)
+    for block in text_blocks_group:
+        if len(block['lines']) > 3:
+            return False
+    return True
+
+
+def __para_merge_page(blocks):
+    page_text_blocks_groups = __process_blocks(blocks)
+    for text_blocks_group in page_text_blocks_groups:
+        if len(text_blocks_group) > 0:
+            # 需要先在合并前对所有block判断是否为list or index block
+            for block in text_blocks_group:
+                block_type = __is_list_or_index_block(block)
+                block['type'] = block_type
+                # logger.info(f"{block['type']}:{block}")
+
+        if len(text_blocks_group) > 1:
+            # 在合并前判断这个group 是否是一个 list group
+            is_list_group = __is_list_group(text_blocks_group)
+
+            # 倒序遍历
+            for i in range(len(text_blocks_group) - 1, -1, -1):
+                current_block = text_blocks_group[i]
+
+                # 检查是否有前一个块
+                if i - 1 >= 0:
+                    prev_block = text_blocks_group[i - 1]
+
+                    if (
+                        current_block['type'] == 'text'
+                        and prev_block['type'] == 'text'
+                        and not is_list_group
+                    ):
+                        __merge_2_text_blocks(current_block, prev_block)
+                    elif (
+                        current_block['type'] == BlockType.LIST
+                        and prev_block['type'] == BlockType.LIST
+                    ) or (
+                        current_block['type'] == BlockType.INDEX
+                        and prev_block['type'] == BlockType.INDEX
+                    ):
+                        __merge_2_list_blocks(current_block, prev_block)
+
+        else:
+            continue
+
+
+def para_split(page_info_list):
+    all_blocks = []
+    for page_info in page_info_list:
+        blocks = copy.deepcopy(page_info['preproc_blocks'])
+        for block in blocks:
+            block['page_num'] = page_info['page_idx']
+            block['page_size'] = page_info['page_size']
+        all_blocks.extend(blocks)
+
+    __para_merge_page(all_blocks)
+    for page_info in page_info_list:
+        page_info['para_blocks'] = []
+        for block in all_blocks:
+            if 'page_num' in block:
+                if block['page_num'] == page_info['page_idx']:
+                    page_info['para_blocks'].append(block)
+                    # 从block中删除不需要的page_num和page_size字段
+                    del block['page_num']
+                    del block['page_size']
+
+
+if __name__ == '__main__':
+    input_blocks = []
+    # 调用函数
+    groups = __process_blocks(input_blocks)
+    for group_index, group in enumerate(groups):
+        print(f'Group {group_index}: {group}')

+ 206 - 0
mineru/backend/pipeline/pipeline_analyze.py

@@ -0,0 +1,206 @@
+import os
+import time
+from typing import List, Tuple
+from PIL import Image
+from loguru import logger
+
+from .model_init import MineruPipelineModel
+from mineru.utils.config_reader import get_device
+from ...utils.enum_class import ImageType
+from ...utils.pdf_classify import classify
+from ...utils.pdf_image_tools import load_images_from_pdf
+from ...utils.model_utils import get_vram, clean_memory
+
+
+os.environ['PYTORCH_ENABLE_MPS_FALLBACK'] = '1'  # 让mps可以fallback
+os.environ['NO_ALBUMENTATIONS_UPDATE'] = '1'  # 禁止albumentations检查更新
+
+class ModelSingleton:
+    _instance = None
+    _models = {}
+
+    def __new__(cls, *args, **kwargs):
+        if cls._instance is None:
+            cls._instance = super().__new__(cls)
+        return cls._instance
+
+    def get_model(
+        self,
+        lang=None,
+        formula_enable=None,
+        table_enable=None,
+    ):
+        key = (lang, formula_enable, table_enable)
+        if key not in self._models:
+            self._models[key] = custom_model_init(
+                lang=lang,
+                formula_enable=formula_enable,
+                table_enable=table_enable,
+            )
+        return self._models[key]
+
+
+def custom_model_init(
+    lang=None,
+    formula_enable=True,
+    table_enable=True,
+):
+    model_init_start = time.time()
+    # 从配置文件读取model-dir和device
+    device = get_device()
+
+    formula_config = {"enable": formula_enable}
+    table_config = {"enable": table_enable}
+
+    model_input = {
+        'device': device,
+        'table_config': table_config,
+        'formula_config': formula_config,
+        'lang': lang,
+    }
+
+    custom_model = MineruPipelineModel(**model_input)
+
+    model_init_cost = time.time() - model_init_start
+    logger.info(f'model init cost: {model_init_cost}')
+
+    return custom_model
+
+
+def doc_analyze(
+        pdf_bytes_list,
+        lang_list,
+        parse_method: str = 'auto',
+        formula_enable=True,
+        table_enable=True,
+):
+    """
+    适当调大MIN_BATCH_INFERENCE_SIZE可以提高性能,更大的 MIN_BATCH_INFERENCE_SIZE会消耗更多内存,
+    可通过环境变量MINERU_MIN_BATCH_INFERENCE_SIZE设置,默认值为384。
+    """
+    min_batch_inference_size = int(os.environ.get('MINERU_MIN_BATCH_INFERENCE_SIZE', 384))
+
+    # 收集所有页面信息
+    all_pages_info = []  # 存储(dataset_index, page_index, img, ocr, lang, width, height)
+
+    all_image_lists = []
+    all_pdf_docs = []
+    ocr_enabled_list = []
+    load_images_start = time.time()
+    for pdf_idx, pdf_bytes in enumerate(pdf_bytes_list):
+        # 确定OCR设置
+        _ocr_enable = False
+        if parse_method == 'auto':
+            if classify(pdf_bytes) == 'ocr':
+                _ocr_enable = True
+        elif parse_method == 'ocr':
+            _ocr_enable = True
+
+        ocr_enabled_list.append(_ocr_enable)
+        _lang = lang_list[pdf_idx]
+
+        # 收集每个数据集中的页面
+        images_list, pdf_doc = load_images_from_pdf(pdf_bytes, image_type=ImageType.PIL)
+        all_image_lists.append(images_list)
+        all_pdf_docs.append(pdf_doc)
+        for page_idx in range(len(images_list)):
+            img_dict = images_list[page_idx]
+            all_pages_info.append((
+                pdf_idx, page_idx,
+                img_dict['img_pil'], _ocr_enable, _lang,
+            ))
+    load_images_time = round(time.time() - load_images_start, 2)
+    logger.debug(f"load images cost: {load_images_time}, speed: {round(len(all_pages_info) / load_images_time, 3)} images/s")
+
+    # 准备批处理
+    images_with_extra_info = [(info[2], info[3], info[4]) for info in all_pages_info]
+    batch_size = min_batch_inference_size
+    batch_images = [
+        images_with_extra_info[i:i + batch_size]
+        for i in range(0, len(images_with_extra_info), batch_size)
+    ]
+
+    # 执行批处理
+    results = []
+    processed_images_count = 0
+    infer_start = time.time()
+    for index, batch_image in enumerate(batch_images):
+        processed_images_count += len(batch_image)
+        logger.info(
+            f'Batch {index + 1}/{len(batch_images)}: '
+            f'{processed_images_count} pages/{len(images_with_extra_info)} pages'
+        )
+        batch_results = batch_image_analyze(batch_image, formula_enable, table_enable)
+        results.extend(batch_results)
+    infer_time = round(time.time() - infer_start, 2)
+    logger.debug(f"infer finished, cost: {infer_time}, speed: {round(len(results) / infer_time, 3)} page/s")
+
+    # 构建返回结果
+    infer_results = []
+
+    for _ in range(len(pdf_bytes_list)):
+        infer_results.append([])
+
+    for i, page_info in enumerate(all_pages_info):
+        pdf_idx, page_idx, pil_img, _, _ = page_info
+        result = results[i]
+
+        page_info_dict = {'page_no': page_idx, 'width': pil_img.width, 'height': pil_img.height}
+        page_dict = {'layout_dets': result, 'page_info': page_info_dict}
+
+        infer_results[pdf_idx].append(page_dict)
+
+    return infer_results, all_image_lists, all_pdf_docs, lang_list, ocr_enabled_list
+
+
+def batch_image_analyze(
+        images_with_extra_info: List[Tuple[Image.Image, bool, str]],
+        formula_enable=True,
+        table_enable=True):
+
+    from .batch_analyze import BatchAnalyze
+
+    model_manager = ModelSingleton()
+
+    device = get_device()
+
+    if str(device).startswith('npu'):
+        try:
+            import torch_npu
+            if torch_npu.npu.is_available():
+                torch_npu.npu.set_compile_mode(jit_compile=False)
+        except Exception as e:
+            raise RuntimeError(
+                "NPU is selected as device, but torch_npu is not available. "
+                "Please ensure that the torch_npu package is installed correctly."
+            ) from e
+
+    gpu_memory = get_vram(device)
+    if gpu_memory >= 16:
+        batch_ratio = 16
+    elif gpu_memory >= 12:
+        batch_ratio = 8
+    elif gpu_memory >= 8:
+        batch_ratio = 4
+    elif gpu_memory >= 6:
+        batch_ratio = 2
+    else:
+        batch_ratio = 1
+    logger.info(
+            f'GPU Memory: {gpu_memory} GB, Batch Ratio: {batch_ratio}. '
+    )
+
+    # 检测torch的版本号
+    import torch
+    from packaging import version
+    if version.parse(torch.__version__) >= version.parse("2.8.0") or str(device).startswith('mps'):
+        enable_ocr_det_batch = False
+    else:
+        enable_ocr_det_batch = True
+
+    batch_model = BatchAnalyze(model_manager, batch_ratio, formula_enable, table_enable, enable_ocr_det_batch)
+    results = batch_model(images_with_extra_info)
+
+    clean_memory(get_device())
+
+    return results

+ 373 - 0
mineru/backend/pipeline/pipeline_magic_model.py

@@ -0,0 +1,373 @@
+from mineru.utils.boxbase import bbox_relative_pos, calculate_iou, bbox_distance, get_minbox_if_overlap_by_ratio
+from mineru.utils.enum_class import CategoryId, ContentType
+from mineru.utils.magic_model_utils import tie_up_category_by_distance_v3, reduct_overlap
+
+
+class MagicModel:
+    """每个函数没有得到元素的时候返回空list."""
+    def __init__(self, page_model_info: dict, scale: float):
+        self.__page_model_info = page_model_info
+        self.__scale = scale
+        """为所有模型数据添加bbox信息(缩放,poly->bbox)"""
+        self.__fix_axis()
+        """删除置信度特别低的模型数据(<0.05),提高质量"""
+        self.__fix_by_remove_low_confidence()
+        """删除高iou(>0.9)数据中置信度较低的那个"""
+        self.__fix_by_remove_high_iou_and_low_confidence()
+        """将部分tbale_footnote修正为image_footnote"""
+        self.__fix_footnote()
+        """处理重叠的image_body和table_body"""
+        self.__fix_by_remove_overlap_image_table_body()
+
+    def __fix_by_remove_overlap_image_table_body(self):
+        need_remove_list = []
+        layout_dets = self.__page_model_info['layout_dets']
+        image_blocks = list(filter(
+            lambda x: x['category_id'] == CategoryId.ImageBody, layout_dets
+        ))
+        table_blocks = list(filter(
+            lambda x: x['category_id'] == CategoryId.TableBody, layout_dets
+        ))
+
+        def add_need_remove_block(blocks):
+            for i in range(len(blocks)):
+                for j in range(i + 1, len(blocks)):
+                    block1 = blocks[i]
+                    block2 = blocks[j]
+                    overlap_box = get_minbox_if_overlap_by_ratio(
+                        block1['bbox'], block2['bbox'], 0.8
+                    )
+                    if overlap_box is not None:
+                        # 判断哪个区块的面积更小,移除较小的区块
+                        area1 = (block1['bbox'][2] - block1['bbox'][0]) * (block1['bbox'][3] - block1['bbox'][1])
+                        area2 = (block2['bbox'][2] - block2['bbox'][0]) * (block2['bbox'][3] - block2['bbox'][1])
+
+                        if area1 <= area2:
+                            block_to_remove = block1
+                            large_block = block2
+                        else:
+                            block_to_remove = block2
+                            large_block = block1
+
+                        if block_to_remove not in need_remove_list:
+                            # 扩展大区块的边界框
+                            x1, y1, x2, y2 = large_block['bbox']
+                            sx1, sy1, sx2, sy2 = block_to_remove['bbox']
+                            x1 = min(x1, sx1)
+                            y1 = min(y1, sy1)
+                            x2 = max(x2, sx2)
+                            y2 = max(y2, sy2)
+                            large_block['bbox'] = [x1, y1, x2, y2]
+                            need_remove_list.append(block_to_remove)
+
+        # 处理图像-图像重叠
+        add_need_remove_block(image_blocks)
+        # 处理表格-表格重叠
+        add_need_remove_block(table_blocks)
+
+        # 从布局中移除标记的区块
+        for need_remove in need_remove_list:
+            if need_remove in layout_dets:
+                layout_dets.remove(need_remove)
+
+
+    def __fix_axis(self):
+        need_remove_list = []
+        layout_dets = self.__page_model_info['layout_dets']
+        for layout_det in layout_dets:
+            x0, y0, _, _, x1, y1, _, _ = layout_det['poly']
+            bbox = [
+                int(x0 / self.__scale),
+                int(y0 / self.__scale),
+                int(x1 / self.__scale),
+                int(y1 / self.__scale),
+            ]
+            layout_det['bbox'] = bbox
+            # 删除高度或者宽度小于等于0的spans
+            if bbox[2] - bbox[0] <= 0 or bbox[3] - bbox[1] <= 0:
+                need_remove_list.append(layout_det)
+        for need_remove in need_remove_list:
+            layout_dets.remove(need_remove)
+
+    def __fix_by_remove_low_confidence(self):
+        need_remove_list = []
+        layout_dets = self.__page_model_info['layout_dets']
+        for layout_det in layout_dets:
+            if layout_det['score'] <= 0.05:
+                need_remove_list.append(layout_det)
+            else:
+                continue
+        for need_remove in need_remove_list:
+            layout_dets.remove(need_remove)
+
+    def __fix_by_remove_high_iou_and_low_confidence(self):
+        need_remove_list = []
+        layout_dets = list(filter(
+            lambda x: x['category_id'] in [
+                    CategoryId.Title,
+                    CategoryId.Text,
+                    CategoryId.ImageBody,
+                    CategoryId.ImageCaption,
+                    CategoryId.TableBody,
+                    CategoryId.TableCaption,
+                    CategoryId.TableFootnote,
+                    CategoryId.InterlineEquation_Layout,
+                    CategoryId.InterlineEquationNumber_Layout,
+                ], self.__page_model_info['layout_dets']
+            )
+        )
+        for i in range(len(layout_dets)):
+            for j in range(i + 1, len(layout_dets)):
+                layout_det1 = layout_dets[i]
+                layout_det2 = layout_dets[j]
+
+                if calculate_iou(layout_det1['bbox'], layout_det2['bbox']) > 0.9:
+
+                    layout_det_need_remove = layout_det1 if layout_det1['score'] < layout_det2['score'] else layout_det2
+
+                    if layout_det_need_remove not in need_remove_list:
+                        need_remove_list.append(layout_det_need_remove)
+
+        for need_remove in need_remove_list:
+            self.__page_model_info['layout_dets'].remove(need_remove)
+
+    def __fix_footnote(self):
+        footnotes = []
+        figures = []
+        tables = []
+
+        for obj in self.__page_model_info['layout_dets']:
+            if obj['category_id'] == CategoryId.TableFootnote:
+                footnotes.append(obj)
+            elif obj['category_id'] == CategoryId.ImageBody:
+                figures.append(obj)
+            elif obj['category_id'] == CategoryId.TableBody:
+                tables.append(obj)
+            if len(footnotes) * len(figures) == 0:
+                continue
+        dis_figure_footnote = {}
+        dis_table_footnote = {}
+
+        for i in range(len(footnotes)):
+            for j in range(len(figures)):
+                pos_flag_count = sum(
+                    list(
+                        map(
+                            lambda x: 1 if x else 0,
+                            bbox_relative_pos(
+                                footnotes[i]['bbox'], figures[j]['bbox']
+                            ),
+                        )
+                    )
+                )
+                if pos_flag_count > 1:
+                    continue
+                dis_figure_footnote[i] = min(
+                    self._bbox_distance(figures[j]['bbox'], footnotes[i]['bbox']),
+                    dis_figure_footnote.get(i, float('inf')),
+                )
+        for i in range(len(footnotes)):
+            for j in range(len(tables)):
+                pos_flag_count = sum(
+                    list(
+                        map(
+                            lambda x: 1 if x else 0,
+                            bbox_relative_pos(
+                                footnotes[i]['bbox'], tables[j]['bbox']
+                            ),
+                        )
+                    )
+                )
+                if pos_flag_count > 1:
+                    continue
+
+                dis_table_footnote[i] = min(
+                    self._bbox_distance(tables[j]['bbox'], footnotes[i]['bbox']),
+                    dis_table_footnote.get(i, float('inf')),
+                )
+        for i in range(len(footnotes)):
+            if i not in dis_figure_footnote:
+                continue
+            if dis_table_footnote.get(i, float('inf')) > dis_figure_footnote[i]:
+                footnotes[i]['category_id'] = CategoryId.ImageFootnote
+
+    def _bbox_distance(self, bbox1, bbox2):
+        left, right, bottom, top = bbox_relative_pos(bbox1, bbox2)
+        flags = [left, right, bottom, top]
+        count = sum([1 if v else 0 for v in flags])
+        if count > 1:
+            return float('inf')
+        if left or right:
+            l1 = bbox1[3] - bbox1[1]
+            l2 = bbox2[3] - bbox2[1]
+        else:
+            l1 = bbox1[2] - bbox1[0]
+            l2 = bbox2[2] - bbox2[0]
+
+        if l2 > l1 and (l2 - l1) / l1 > 0.3:
+            return float('inf')
+
+        return bbox_distance(bbox1, bbox2)
+
+    def __tie_up_category_by_distance_v3(self, subject_category_id, object_category_id):
+        # 定义获取主体和客体对象的函数
+        def get_subjects():
+            return reduct_overlap(
+                list(
+                    map(
+                        lambda x: {'bbox': x['bbox'], 'score': x['score']},
+                        filter(
+                            lambda x: x['category_id'] == subject_category_id,
+                            self.__page_model_info['layout_dets'],
+                        ),
+                    )
+                )
+            )
+
+        def get_objects():
+            return reduct_overlap(
+                list(
+                    map(
+                        lambda x: {'bbox': x['bbox'], 'score': x['score']},
+                        filter(
+                            lambda x: x['category_id'] == object_category_id,
+                            self.__page_model_info['layout_dets'],
+                        ),
+                    )
+                )
+            )
+
+        # 调用通用方法
+        return tie_up_category_by_distance_v3(
+            get_subjects,
+            get_objects
+        )
+
+    def get_imgs(self):
+        with_captions = self.__tie_up_category_by_distance_v3(
+            CategoryId.ImageBody, CategoryId.ImageCaption
+        )
+        with_footnotes = self.__tie_up_category_by_distance_v3(
+            CategoryId.ImageBody, CategoryId.ImageFootnote
+        )
+        ret = []
+        for v in with_captions:
+            record = {
+                'image_body': v['sub_bbox'],
+                'image_caption_list': v['obj_bboxes'],
+            }
+            filter_idx = v['sub_idx']
+            d = next(filter(lambda x: x['sub_idx'] == filter_idx, with_footnotes))
+            record['image_footnote_list'] = d['obj_bboxes']
+            ret.append(record)
+        return ret
+
+    def get_tables(self) -> list:
+        with_captions = self.__tie_up_category_by_distance_v3(
+            CategoryId.TableBody, CategoryId.TableCaption
+        )
+        with_footnotes = self.__tie_up_category_by_distance_v3(
+            CategoryId.TableBody, CategoryId.TableFootnote
+        )
+        ret = []
+        for v in with_captions:
+            record = {
+                'table_body': v['sub_bbox'],
+                'table_caption_list': v['obj_bboxes'],
+            }
+            filter_idx = v['sub_idx']
+            d = next(filter(lambda x: x['sub_idx'] == filter_idx, with_footnotes))
+            record['table_footnote_list'] = d['obj_bboxes']
+            ret.append(record)
+        return ret
+
+    def get_equations(self) -> tuple[list, list, list]:  # 有坐标,也有字
+        inline_equations = self.__get_blocks_by_type(
+            CategoryId.InlineEquation, ['latex']
+        )
+        interline_equations = self.__get_blocks_by_type(
+            CategoryId.InterlineEquation_YOLO, ['latex']
+        )
+        interline_equations_blocks = self.__get_blocks_by_type(
+            CategoryId.InterlineEquation_Layout
+        )
+        return inline_equations, interline_equations, interline_equations_blocks
+
+    def get_discarded(self) -> list:  # 自研模型,只有坐标
+        blocks = self.__get_blocks_by_type(CategoryId.Abandon)
+        return blocks
+
+    def get_text_blocks(self) -> list:  # 自研模型搞的,只有坐标,没有字
+        blocks = self.__get_blocks_by_type(CategoryId.Text)
+        return blocks
+
+    def get_title_blocks(self) -> list:  # 自研模型,只有坐标,没字
+        blocks = self.__get_blocks_by_type(CategoryId.Title)
+        return blocks
+
+    def get_all_spans(self) -> list:
+
+        def remove_duplicate_spans(spans):
+            new_spans = []
+            for span in spans:
+                if not any(span == existing_span for existing_span in new_spans):
+                    new_spans.append(span)
+            return new_spans
+
+        all_spans = []
+        layout_dets = self.__page_model_info['layout_dets']
+        allow_category_id_list = [
+            CategoryId.ImageBody,
+            CategoryId.TableBody,
+            CategoryId.InlineEquation,
+            CategoryId.InterlineEquation_YOLO,
+            CategoryId.OcrText,
+        ]
+        """当成span拼接的"""
+        for layout_det in layout_dets:
+            category_id = layout_det['category_id']
+            if category_id in allow_category_id_list:
+                span = {'bbox': layout_det['bbox'], 'score': layout_det['score']}
+                if category_id == CategoryId.ImageBody:
+                    span['type'] = ContentType.IMAGE
+                elif category_id == CategoryId.TableBody:
+                    # 获取table模型结果
+                    latex = layout_det.get('latex', None)
+                    html = layout_det.get('html', None)
+                    if latex:
+                        span['latex'] = latex
+                    elif html:
+                        span['html'] = html
+                    span['type'] = ContentType.TABLE
+                elif category_id == CategoryId.InlineEquation:
+                    span['content'] = layout_det['latex']
+                    span['type'] = ContentType.INLINE_EQUATION
+                elif category_id == CategoryId.InterlineEquation_YOLO:
+                    span['content'] = layout_det['latex']
+                    span['type'] = ContentType.INTERLINE_EQUATION
+                elif category_id == CategoryId.OcrText:
+                    span['content'] = layout_det['text']
+                    span['type'] = ContentType.TEXT
+                all_spans.append(span)
+        return remove_duplicate_spans(all_spans)
+
+    def __get_blocks_by_type(
+        self, category_type: int, extra_col=None
+    ) -> list:
+        if extra_col is None:
+            extra_col = []
+        blocks = []
+        layout_dets = self.__page_model_info.get('layout_dets', [])
+        for item in layout_dets:
+            category_id = item.get('category_id', -1)
+            bbox = item.get('bbox', None)
+
+            if category_id == category_type:
+                block = {
+                    'bbox': bbox,
+                    'score': item.get('score'),
+                }
+                for col in extra_col:
+                    block[col] = item.get(col, None)
+                blocks.append(block)
+        return blocks

+ 314 - 0
mineru/backend/pipeline/pipeline_middle_json_mkcontent.py

@@ -0,0 +1,314 @@
+from loguru import logger
+
+from mineru.utils.char_utils import full_to_half_exclude_marks, is_hyphen_at_line_end
+from mineru.utils.config_reader import get_latex_delimiter_config
+from mineru.backend.pipeline.para_split import ListLineTag
+from mineru.utils.enum_class import BlockType, ContentType, MakeMode
+from mineru.utils.language import detect_lang
+
+
+def make_blocks_to_markdown(paras_of_layout,
+                                      mode,
+                                      img_buket_path='',
+                                      ):
+    page_markdown = []
+    for para_block in paras_of_layout:
+        para_text = ''
+        para_type = para_block['type']
+        if para_type in [BlockType.TEXT, BlockType.LIST, BlockType.INDEX]:
+            para_text = merge_para_with_text(para_block)
+        elif para_type == BlockType.TITLE:
+            title_level = get_title_level(para_block)
+            para_text = f'{"#" * title_level} {merge_para_with_text(para_block)}'
+        elif para_type == BlockType.INTERLINE_EQUATION:
+            if len(para_block['lines']) == 0 or len(para_block['lines'][0]['spans']) == 0:
+                continue
+            if para_block['lines'][0]['spans'][0].get('content', ''):
+                para_text = merge_para_with_text(para_block)
+            else:
+                para_text += f"![]({img_buket_path}/{para_block['lines'][0]['spans'][0]['image_path']})"
+        elif para_type == BlockType.IMAGE:
+            if mode == MakeMode.NLP_MD:
+                continue
+            elif mode == MakeMode.MM_MD:
+                # 检测是否存在图片脚注
+                has_image_footnote = any(block['type'] == BlockType.IMAGE_FOOTNOTE for block in para_block['blocks'])
+                # 如果存在图片脚注,则将图片脚注拼接到图片正文后面
+                if has_image_footnote:
+                    for block in para_block['blocks']:  # 1st.拼image_caption
+                        if block['type'] == BlockType.IMAGE_CAPTION:
+                            para_text += merge_para_with_text(block) + '  \n'
+                    for block in para_block['blocks']:  # 2nd.拼image_body
+                        if block['type'] == BlockType.IMAGE_BODY:
+                            for line in block['lines']:
+                                for span in line['spans']:
+                                    if span['type'] == ContentType.IMAGE:
+                                        if span.get('image_path', ''):
+                                            para_text += f"![]({img_buket_path}/{span['image_path']})"
+                    for block in para_block['blocks']:  # 3rd.拼image_footnote
+                        if block['type'] == BlockType.IMAGE_FOOTNOTE:
+                            para_text += '  \n' + merge_para_with_text(block)
+                else:
+                    for block in para_block['blocks']:  # 1st.拼image_body
+                        if block['type'] == BlockType.IMAGE_BODY:
+                            for line in block['lines']:
+                                for span in line['spans']:
+                                    if span['type'] == ContentType.IMAGE:
+                                        if span.get('image_path', ''):
+                                            para_text += f"![]({img_buket_path}/{span['image_path']})"
+                    for block in para_block['blocks']:  # 2nd.拼image_caption
+                        if block['type'] == BlockType.IMAGE_CAPTION:
+                            para_text += '  \n' + merge_para_with_text(block)
+        elif para_type == BlockType.TABLE:
+            if mode == MakeMode.NLP_MD:
+                continue
+            elif mode == MakeMode.MM_MD:
+                for block in para_block['blocks']:  # 1st.拼table_caption
+                    if block['type'] == BlockType.TABLE_CAPTION:
+                        para_text += merge_para_with_text(block) + '  \n'
+                for block in para_block['blocks']:  # 2nd.拼table_body
+                    if block['type'] == BlockType.TABLE_BODY:
+                        for line in block['lines']:
+                            for span in line['spans']:
+                                if span['type'] == ContentType.TABLE:
+                                    # if processed by table model
+                                    if span.get('html', ''):
+                                        para_text += f"\n{span['html']}\n"
+                                    elif span.get('image_path', ''):
+                                        para_text += f"![]({img_buket_path}/{span['image_path']})"
+                for block in para_block['blocks']:  # 3rd.拼table_footnote
+                    if block['type'] == BlockType.TABLE_FOOTNOTE:
+                        para_text += '\n' + merge_para_with_text(block) + '  '
+
+        if para_text.strip() == '':
+            continue
+        else:
+            # page_markdown.append(para_text.strip() + '  ')
+            page_markdown.append(para_text.strip())
+
+    return page_markdown
+
+
+latex_delimiters_config = get_latex_delimiter_config()
+
+default_delimiters = {
+    'display': {'left': '$$', 'right': '$$'},
+    'inline': {'left': '$', 'right': '$'}
+}
+
+delimiters = latex_delimiters_config if latex_delimiters_config else default_delimiters
+
+display_left_delimiter = delimiters['display']['left']
+display_right_delimiter = delimiters['display']['right']
+inline_left_delimiter = delimiters['inline']['left']
+inline_right_delimiter = delimiters['inline']['right']
+
+def merge_para_with_text(para_block):
+    block_text = ''
+    for line in para_block['lines']:
+        for span in line['spans']:
+            if span['type'] in [ContentType.TEXT]:
+                span['content'] = full_to_half_exclude_marks(span['content'])
+                block_text += span['content']
+    block_lang = detect_lang(block_text)
+
+    para_text = ''
+    for i, line in enumerate(para_block['lines']):
+
+        if i >= 1 and line.get(ListLineTag.IS_LIST_START_LINE, False):
+            para_text += '  \n'
+
+        for j, span in enumerate(line['spans']):
+
+            span_type = span['type']
+            content = ''
+            if span_type == ContentType.TEXT:
+                content = escape_special_markdown_char(span['content'])
+            elif span_type == ContentType.INLINE_EQUATION:
+                if span.get('content', ''):
+                    content = f"{inline_left_delimiter}{span['content']}{inline_right_delimiter}"
+            elif span_type == ContentType.INTERLINE_EQUATION:
+                if span.get('content', ''):
+                    content = f"\n{display_left_delimiter}\n{span['content']}\n{display_right_delimiter}\n"
+
+            content = content.strip()
+
+            if content:
+
+                if span_type == ContentType.INTERLINE_EQUATION:
+                    para_text += content
+                    continue
+
+                # 定义CJK语言集合(中日韩)
+                cjk_langs = {'zh', 'ja', 'ko'}
+                # logger.info(f'block_lang: {block_lang}, content: {content}')
+
+                # 判断是否为行末span
+                is_last_span = j == len(line['spans']) - 1
+
+                if block_lang in cjk_langs: # 中文/日语/韩文语境下,换行不需要空格分隔,但是如果是行内公式结尾,还是要加空格
+                    if is_last_span and span_type not in [ContentType.INLINE_EQUATION]:
+                        para_text += content
+                    else:
+                        para_text += f'{content} '
+                else:
+                    # 西方文本语境下 每行的最后一个span判断是否要去除连字符
+                    if span_type in [ContentType.TEXT, ContentType.INLINE_EQUATION]:
+                        # 如果span是line的最后一个且末尾带有-连字符,那么末尾不应该加空格,同时应该把-删除
+                        if (
+                                is_last_span
+                                and span_type == ContentType.TEXT
+                                and is_hyphen_at_line_end(content)
+                        ):
+                            # 如果下一行的第一个span是小写字母开头,删除连字符
+                            if (
+                                    i + 1 < len(para_block['lines'])
+                                    and para_block['lines'][i + 1].get('spans')
+                                    and para_block['lines'][i + 1]['spans'][0].get('type') == ContentType.TEXT
+                                    and para_block['lines'][i + 1]['spans'][0].get('content', '')
+                                    and para_block['lines'][i + 1]['spans'][0]['content'][0].islower()
+                            ):
+                                para_text += content[:-1]
+                            else:  # 如果没有下一行,或者下一行的第一个span不是小写字母开头,则保留连字符但不加空格
+                                para_text += content
+                        else:  # 西方文本语境下 content间需要空格分隔
+                            para_text += f'{content} '
+            else:
+                continue
+
+    return para_text
+
+
+def make_blocks_to_content_list(para_block, img_buket_path, page_idx, page_size):
+    para_type = para_block['type']
+    para_content = {}
+    if para_type in [
+        BlockType.TEXT,
+        BlockType.LIST,
+        BlockType.INDEX,
+    ]:
+        para_content = {
+            'type': ContentType.TEXT,
+            'text': merge_para_with_text(para_block),
+        }
+    elif para_type == BlockType.DISCARDED:
+        para_content = {
+            'type': para_type,
+            'text': merge_para_with_text(para_block),
+        }
+    elif para_type == BlockType.TITLE:
+        para_content = {
+            'type': ContentType.TEXT,
+            'text': merge_para_with_text(para_block),
+        }
+        title_level = get_title_level(para_block)
+        if title_level != 0:
+            para_content['text_level'] = title_level
+    elif para_type == BlockType.INTERLINE_EQUATION:
+        if len(para_block['lines']) == 0 or len(para_block['lines'][0]['spans']) == 0:
+            return None
+        para_content = {
+            'type': ContentType.EQUATION,
+            'img_path': f"{img_buket_path}/{para_block['lines'][0]['spans'][0].get('image_path', '')}",
+        }
+        if para_block['lines'][0]['spans'][0].get('content', ''):
+            para_content['text'] = merge_para_with_text(para_block)
+            para_content['text_format'] = 'latex'
+    elif para_type == BlockType.IMAGE:
+        para_content = {'type': ContentType.IMAGE, 'img_path': '', BlockType.IMAGE_CAPTION: [], BlockType.IMAGE_FOOTNOTE: []}
+        for block in para_block['blocks']:
+            if block['type'] == BlockType.IMAGE_BODY:
+                for line in block['lines']:
+                    for span in line['spans']:
+                        if span['type'] == ContentType.IMAGE:
+                            if span.get('image_path', ''):
+                                para_content['img_path'] = f"{img_buket_path}/{span['image_path']}"
+            if block['type'] == BlockType.IMAGE_CAPTION:
+                para_content[BlockType.IMAGE_CAPTION].append(merge_para_with_text(block))
+            if block['type'] == BlockType.IMAGE_FOOTNOTE:
+                para_content[BlockType.IMAGE_FOOTNOTE].append(merge_para_with_text(block))
+    elif para_type == BlockType.TABLE:
+        para_content = {'type': ContentType.TABLE, 'img_path': '', BlockType.TABLE_CAPTION: [], BlockType.TABLE_FOOTNOTE: []}
+        for block in para_block['blocks']:
+            if block['type'] == BlockType.TABLE_BODY:
+                for line in block['lines']:
+                    for span in line['spans']:
+                        if span['type'] == ContentType.TABLE:
+                            if span.get('html', ''):
+                                para_content[BlockType.TABLE_BODY] = f"{span['html']}"
+
+                            if span.get('image_path', ''):
+                                para_content['img_path'] = f"{img_buket_path}/{span['image_path']}"
+
+            if block['type'] == BlockType.TABLE_CAPTION:
+                para_content[BlockType.TABLE_CAPTION].append(merge_para_with_text(block))
+            if block['type'] == BlockType.TABLE_FOOTNOTE:
+                para_content[BlockType.TABLE_FOOTNOTE].append(merge_para_with_text(block))
+
+    page_width, page_height = page_size
+    para_bbox = para_block.get('bbox')
+    if para_bbox:
+        x0, y0, x1, y1 = para_bbox
+        para_content['bbox'] = [
+            int(x0 * 1000 / page_width),
+            int(y0 * 1000 / page_height),
+            int(x1 * 1000 / page_width),
+            int(y1 * 1000 / page_height),
+        ]
+
+    para_content['page_idx'] = page_idx
+
+    return para_content
+
+
+def union_make(pdf_info_dict: list,
+               make_mode: str,
+               img_buket_path: str = '',
+               ):
+    output_content = []
+    for page_info in pdf_info_dict:
+        paras_of_layout = page_info.get('para_blocks')
+        paras_of_discarded = page_info.get('discarded_blocks')
+        page_idx = page_info.get('page_idx')
+        page_size = page_info.get('page_size')
+        if make_mode in [MakeMode.MM_MD, MakeMode.NLP_MD]:
+            if not paras_of_layout:
+                continue
+            page_markdown = make_blocks_to_markdown(paras_of_layout, make_mode, img_buket_path)
+            output_content.extend(page_markdown)
+        elif make_mode == MakeMode.CONTENT_LIST:
+            para_blocks = (paras_of_layout or []) + (paras_of_discarded or [])
+            if not para_blocks:
+                continue
+            for para_block in para_blocks:
+                para_content = make_blocks_to_content_list(para_block, img_buket_path, page_idx, page_size)
+                if para_content:
+                    output_content.append(para_content)
+
+    if make_mode in [MakeMode.MM_MD, MakeMode.NLP_MD]:
+        return '\n\n'.join(output_content)
+    elif make_mode == MakeMode.CONTENT_LIST:
+        return output_content
+    else:
+        logger.error(f"Unsupported make mode: {make_mode}")
+        return None
+
+
+def get_title_level(block):
+    title_level = block.get('level', 1)
+    if title_level > 4:
+        title_level = 4
+    elif title_level < 1:
+        title_level = 0
+    return title_level
+
+
+def escape_special_markdown_char(content):
+    """
+    转义正文里对markdown语法有特殊意义的字符
+    """
+    special_chars = ["*", "`", "~", "$"]
+    for char in special_chars:
+        content = content.replace(char, "\\" + char)
+
+    return content

+ 24 - 0
mineru/backend/utils.py

@@ -0,0 +1,24 @@
+import os
+
+from loguru import logger
+
+from mineru.utils.table_merge import merge_table
+
+
+def cross_page_table_merge(pdf_info: list[dict]):
+    """Merge tables that span across multiple pages in a PDF document.
+
+    Args:
+        pdf_info (list[dict]): A list of dictionaries containing information about each page in the PDF.
+
+    Returns:
+        None
+    """
+    is_merge_table = os.getenv('MINERU_TABLE_MERGE_ENABLE', 'true')
+    if is_merge_table.lower() in ['true', '1', 'yes']:
+        merge_table(pdf_info)
+    elif is_merge_table.lower() in ['false', '0', 'no']:
+        pass
+    else:
+        logger.warning(f'unknown MINERU_TABLE_MERGE_ENABLE config: {is_merge_table}, pass')
+        pass

+ 1 - 0
mineru/backend/vlm/__init__.py

@@ -0,0 +1 @@
+# Copyright (c) Opendatalab. All rights reserved.

+ 131 - 0
mineru/backend/vlm/model_output_to_middle_json.py

@@ -0,0 +1,131 @@
+import asyncio
+import os
+import time
+
+import cv2
+import numpy as np
+from loguru import logger
+
+from mineru.backend.utils import cross_page_table_merge
+from mineru.backend.vlm.vlm_magic_model import MagicModel
+from mineru.utils.config_reader import get_table_enable, get_llm_aided_config
+from mineru.utils.cut_image import cut_image_and_table
+from mineru.utils.enum_class import ContentType
+from mineru.utils.hash_utils import bytes_md5
+from mineru.utils.pdf_image_tools import get_crop_img
+from mineru.version import __version__
+
+
+heading_level_import_success = False
+llm_aided_config = get_llm_aided_config()
+if llm_aided_config:
+    title_aided_config = llm_aided_config.get('title_aided', {})
+    if title_aided_config.get('enable', False):
+        try:
+            from mineru.utils.llm_aided import llm_aided_title
+            from mineru.backend.pipeline.model_init import AtomModelSingleton
+            heading_level_import_success = True
+        except Exception as e:
+            logger.warning("The heading level feature cannot be used. If you need to use the heading level feature, "
+                            "please execute `pip install mineru[core]` to install the required packages.")
+
+
+def blocks_to_page_info(page_blocks, image_dict, page, image_writer, page_index) -> dict:
+    """将blocks转换为页面信息"""
+
+    scale = image_dict["scale"]
+    # page_pil_img = image_dict["img_pil"]
+    page_pil_img = image_dict["img_pil"]
+    page_img_md5 = bytes_md5(page_pil_img.tobytes())
+    width, height = map(int, page.get_size())
+
+    magic_model = MagicModel(page_blocks, width, height)
+    image_blocks = magic_model.get_image_blocks()
+    table_blocks = magic_model.get_table_blocks()
+    title_blocks = magic_model.get_title_blocks()
+    discarded_blocks = magic_model.get_discarded_blocks()
+    code_blocks = magic_model.get_code_blocks()
+    ref_text_blocks = magic_model.get_ref_text_blocks()
+    phonetic_blocks = magic_model.get_phonetic_blocks()
+    list_blocks = magic_model.get_list_blocks()
+
+    # 如果有标题优化需求,则对title_blocks截图det
+    if heading_level_import_success:
+        atom_model_manager = AtomModelSingleton()
+        ocr_model = atom_model_manager.get_atom_model(
+            atom_model_name='ocr',
+            ocr_show_log=False,
+            det_db_box_thresh=0.3,
+            lang='ch_lite'
+        )
+        for title_block in title_blocks:
+            title_pil_img = get_crop_img(title_block['bbox'], page_pil_img, scale)
+            title_np_img = np.array(title_pil_img)
+            # 给title_pil_img添加上下左右各50像素白边padding
+            title_np_img = cv2.copyMakeBorder(
+                title_np_img, 50, 50, 50, 50, cv2.BORDER_CONSTANT, value=[255, 255, 255]
+            )
+            title_img = cv2.cvtColor(title_np_img, cv2.COLOR_RGB2BGR)
+            ocr_det_res = ocr_model.ocr(title_img, rec=False)[0]
+            if len(ocr_det_res) > 0:
+                # 计算所有res的平均高度
+                avg_height = np.mean([box[2][1] - box[0][1] for box in ocr_det_res])
+                title_block['line_avg_height'] = round(avg_height/scale)
+
+    text_blocks = magic_model.get_text_blocks()
+    interline_equation_blocks = magic_model.get_interline_equation_blocks()
+
+    all_spans = magic_model.get_all_spans()
+    # 对image/table/interline_equation的span截图
+    for span in all_spans:
+        if span["type"] in [ContentType.IMAGE, ContentType.TABLE, ContentType.INTERLINE_EQUATION]:
+            span = cut_image_and_table(span, page_pil_img, page_img_md5, page_index, image_writer, scale=scale)
+
+    page_blocks = []
+    page_blocks.extend([
+        *image_blocks,
+        *table_blocks,
+        *code_blocks,
+        *ref_text_blocks,
+        *phonetic_blocks,
+        *title_blocks,
+        *text_blocks,
+        *interline_equation_blocks,
+        *list_blocks,
+    ])
+    # 对page_blocks根据index的值进行排序
+    page_blocks.sort(key=lambda x: x["index"])
+
+    page_info = {"para_blocks": page_blocks, "discarded_blocks": discarded_blocks, "page_size": [width, height], "page_idx": page_index}
+    return page_info
+
+
+async def result_to_middle_json(model_output_blocks_list, images_list, pdf_doc, image_writer):
+    middle_json = {"pdf_info": [], "_backend":"vlm", "_version_name": __version__}
+    for index, page_blocks in enumerate(model_output_blocks_list):
+        page = pdf_doc[index]
+        image_dict = images_list[index]
+        page_info = blocks_to_page_info(page_blocks, image_dict, page, image_writer, index)
+        middle_json["pdf_info"].append(page_info)
+
+    """表格跨页合并"""
+    table_enable = get_table_enable(os.getenv('MINERU_VLM_TABLE_ENABLE', 'True').lower() == 'true')
+    if table_enable:
+        cross_page_table_merge(middle_json["pdf_info"])
+
+    # """llm优化标题分级"""
+    # if heading_level_import_success:
+    #     llm_aided_title_start_time = time.time()
+    #     llm_aided_title(middle_json["pdf_info"], title_aided_config)
+    #     logger.info(f'llm aided title time: {round(time.time() - llm_aided_title_start_time, 2)}')
+    
+    """llm优化标题分级"""
+    if heading_level_import_success:
+        llm_aided_title_start_time = time.time()
+        await llm_aided_title(middle_json["pdf_info"], title_aided_config)
+        logger.info(f'llm aided title time: {round(time.time() - llm_aided_title_start_time, 2)}')
+
+
+    # 关闭pdf文档
+    pdf_doc.close()
+    return middle_json

+ 103 - 0
mineru/backend/vlm/utils.py

@@ -0,0 +1,103 @@
+import os
+
+from loguru import logger
+from packaging import version
+
+from mineru.utils.check_sys_env import is_windows_environment, is_linux_environment
+from mineru.utils.config_reader import get_device
+from mineru.utils.model_utils import get_vram
+
+
+def enable_custom_logits_processors() -> bool:
+    import torch
+    from vllm import __version__ as vllm_version
+
+    if torch.cuda.is_available():
+        major, minor = torch.cuda.get_device_capability()
+        # 正确计算Compute Capability
+        compute_capability = f"{major}.{minor}"
+    elif hasattr(torch, 'npu') and torch.npu.is_available():
+        compute_capability = "8.0"
+    elif hasattr(torch, 'gcu') and torch.gcu.is_available():
+        compute_capability = "8.0"
+    elif hasattr(torch, 'musa') and torch.musa.is_available():
+        compute_capability = "8.0"
+    else:
+        logger.info("CUDA not available, disabling custom_logits_processors")
+        return False
+
+    # 安全地处理环境变量
+    vllm_use_v1_str = os.getenv('VLLM_USE_V1', "1")
+    if vllm_use_v1_str.isdigit():
+        vllm_use_v1 = int(vllm_use_v1_str)
+    else:
+        vllm_use_v1 = 1
+
+    if vllm_use_v1 == 0:
+        logger.info("VLLM_USE_V1 is set to 0, disabling custom_logits_processors")
+        return False
+    elif version.parse(vllm_version) < version.parse("0.10.1"):
+        logger.info(f"vllm version: {vllm_version} < 0.10.1, disable custom_logits_processors")
+        return False
+    elif version.parse(compute_capability) < version.parse("8.0"):
+        if version.parse(vllm_version) >= version.parse("0.10.2"):
+            logger.info(f"compute_capability: {compute_capability} < 8.0, but vllm version: {vllm_version} >= 0.10.2, enable custom_logits_processors")
+            return True
+        else:
+            logger.info(f"compute_capability: {compute_capability} < 8.0 and vllm version: {vllm_version} < 0.10.2, disable custom_logits_processors")
+            return False
+    else:
+        logger.info(f"compute_capability: {compute_capability} >= 8.0 and vllm version: {vllm_version} >= 0.10.1, enable custom_logits_processors")
+        return True
+
+
+def set_lmdeploy_backend(device_type: str) -> str:
+    if device_type.lower() in ["ascend", "maca", "camb"]:
+        lmdeploy_backend = "pytorch"
+    elif device_type.lower() in ["cuda"]:
+        import torch
+        if not torch.cuda.is_available():
+            raise ValueError("CUDA is not available.")
+        if is_windows_environment():
+            lmdeploy_backend = "turbomind"
+        elif is_linux_environment():
+            major, minor = torch.cuda.get_device_capability()
+            compute_capability = f"{major}.{minor}"
+            if version.parse(compute_capability) >= version.parse("8.0"):
+                lmdeploy_backend = "pytorch"
+            else:
+                lmdeploy_backend = "turbomind"
+        else:
+            raise ValueError("Unsupported operating system.")
+    else:
+        raise ValueError(f"Unsupported lmdeploy device type: {device_type}")
+    return lmdeploy_backend
+
+
+def set_default_gpu_memory_utilization() -> float:
+    from vllm import __version__ as vllm_version
+    device = get_device()
+    gpu_memory = get_vram(device)
+    if version.parse(vllm_version) >= version.parse("0.11.0") and gpu_memory <= 8:
+        return 0.7
+    else:
+        return 0.5
+
+
+def set_default_batch_size() -> int:
+    try:
+        device = get_device()
+        gpu_memory = get_vram(device)
+
+        if gpu_memory >= 16:
+            batch_size = 8
+        elif gpu_memory >= 8:
+            batch_size = 4
+        else:
+            batch_size = 1
+        logger.info(f'gpu_memory: {gpu_memory} GB, batch_size: {batch_size}')
+
+    except Exception as e:
+        logger.warning(f'Error determining VRAM: {e}, using default batch_ratio: 1')
+        batch_size = 1
+    return batch_size

+ 300 - 0
mineru/backend/vlm/vlm_analyze.py

@@ -0,0 +1,300 @@
+# Copyright (c) Opendatalab. All rights reserved.
+import os
+import time
+import json
+
+from loguru import logger
+
+from .utils import enable_custom_logits_processors, set_default_gpu_memory_utilization, set_default_batch_size, \
+    set_lmdeploy_backend
+from .model_output_to_middle_json import result_to_middle_json
+from ...data.data_reader_writer import DataWriter
+from mineru.utils.pdf_image_tools import load_images_from_pdf
+from ...utils.check_sys_env import is_mac_os_version_supported
+from ...utils.config_reader import get_device
+
+from ...utils.enum_class import ImageType
+from ...utils.models_download_utils import auto_download_and_get_model_root_path
+
+from mineru_vl_utils import MinerUClient
+from packaging import version
+
+
+class ModelSingleton:
+    _instance = None
+    _models = {}
+
+    def __new__(cls, *args, **kwargs):
+        if cls._instance is None:
+            cls._instance = super().__new__(cls)
+        return cls._instance
+
+    def get_model(
+        self,
+        backend: str,
+        model_path: str | None,
+        server_url: str | None,
+        **kwargs,
+    ) -> MinerUClient:
+        key = (backend, model_path, server_url)
+        if key not in self._models:
+            start_time = time.time()
+            model = None
+            processor = None
+            vllm_llm = None
+            lmdeploy_engine = None
+            vllm_async_llm = None
+            batch_size = kwargs.get("batch_size", 0)  # for transformers backend only
+            max_concurrency = kwargs.get("max_concurrency", 100)  # for http-client backend only
+            http_timeout = kwargs.get("http_timeout", 600)  # for http-client backend only
+            server_headers = kwargs.get("server_headers", None)  # for http-client backend only
+            max_retries = kwargs.get("max_retries", 3)  # for http-client backend only
+            retry_backoff_factor = kwargs.get("retry_backoff_factor", 0.5)  # for http-client backend only
+            # 从kwargs中移除这些参数,避免传递给不相关的初始化函数
+            for param in ["batch_size", "max_concurrency", "http_timeout", "server_headers", "max_retries", "retry_backoff_factor"]:
+                if param in kwargs:
+                    del kwargs[param]
+            if backend not in ["http-client"] and not model_path:
+                model_path = auto_download_and_get_model_root_path("/","vlm")
+            if backend == "transformers":
+                try:
+                    from transformers import (
+                        AutoProcessor,
+                        Qwen2VLForConditionalGeneration,
+                    )
+                    from transformers import __version__ as transformers_version
+                except ImportError:
+                    raise ImportError("Please install transformers to use the transformers backend.")
+
+                if version.parse(transformers_version) >= version.parse("4.56.0"):
+                    dtype_key = "dtype"
+                else:
+                    dtype_key = "torch_dtype"
+                device = get_device()
+                model = Qwen2VLForConditionalGeneration.from_pretrained(
+                    model_path,
+                    device_map={"": device},
+                    **{dtype_key: "auto"},  # type: ignore
+                )
+                processor = AutoProcessor.from_pretrained(
+                    model_path,
+                    use_fast=True,
+                )
+                if batch_size == 0:
+                    batch_size = set_default_batch_size()
+            elif backend == "mlx-engine":
+                mlx_supported = is_mac_os_version_supported()
+                if not mlx_supported:
+                    raise EnvironmentError("mlx-engine backend is only supported on macOS 13.5+ with Apple Silicon.")
+                try:
+                    from mlx_vlm import load as mlx_load
+                except ImportError:
+                    raise ImportError("Please install mlx-vlm to use the mlx-engine backend.")
+                model, processor = mlx_load(model_path)
+            else:
+                if os.getenv('OMP_NUM_THREADS') is None:
+                    os.environ["OMP_NUM_THREADS"] = "1"
+
+                if backend == "vllm-engine":
+                    try:
+                        import vllm
+                    except ImportError:
+                        raise ImportError("Please install vllm to use the vllm-engine backend.")
+
+                    """
+                    # musa vllm v1 引擎特殊配置
+                    device = get_device()
+                    if device.startswith("musa"):
+                        import torch
+                        if torch.musa.is_available():
+                            compilation_config = {
+                                "cudagraph_capture_sizes": [1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 14, 16, 18, 20, 24, 28, 30],
+                                "simple_cuda_graph": True
+                            }
+                            block_size = 32
+                            kwargs["compilation_config"] = compilation_config
+                            kwargs["block_size"] = block_size
+                    """
+
+                    if "compilation_config" in kwargs:
+                        if isinstance(kwargs["compilation_config"], str):
+                            try:
+                                kwargs["compilation_config"] = json.loads(kwargs["compilation_config"])
+                            except json.JSONDecodeError:
+                                logger.warning(
+                                    f"Failed to parse compilation_config as JSON: {kwargs['compilation_config']}")
+                                del kwargs["compilation_config"]
+                    if "gpu_memory_utilization" not in kwargs:
+                        kwargs["gpu_memory_utilization"] = set_default_gpu_memory_utilization()
+                    if "model" not in kwargs:
+                        kwargs["model"] = model_path
+                    if enable_custom_logits_processors() and ("logits_processors" not in kwargs):
+                        from mineru_vl_utils import MinerULogitsProcessor
+                        kwargs["logits_processors"] = [MinerULogitsProcessor]
+                    # 使用kwargs为 vllm初始化参数
+                    vllm_llm = vllm.LLM(**kwargs)
+                elif backend == "vllm-async-engine":
+                    try:
+                        from vllm.engine.arg_utils import AsyncEngineArgs
+                        from vllm.v1.engine.async_llm import AsyncLLM
+                        from vllm.config import CompilationConfig
+                    except ImportError:
+                        raise ImportError("Please install vllm to use the vllm-async-engine backend.")
+
+                    """
+                    # musa vllm v1 引擎特殊配置
+                    device = get_device()
+                    if device.startswith("musa"):
+                        import torch
+                        if torch.musa.is_available():
+                            compilation_config = CompilationConfig(
+                                cudagraph_capture_sizes=[1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 14, 16, 18, 20, 24, 28, 30],
+                                simple_cuda_graph=True
+                            )
+                            block_size = 32
+                            kwargs["compilation_config"] = compilation_config
+                            kwargs["block_size"] = block_size
+                    """
+
+                    if "compilation_config" in kwargs:
+                        if isinstance(kwargs["compilation_config"], dict):
+                            # 如果是字典,转换为 CompilationConfig 对象
+                            kwargs["compilation_config"] = CompilationConfig(**kwargs["compilation_config"])
+                        elif isinstance(kwargs["compilation_config"], str):
+                            # 如果是 JSON 字符串,先解析再转换
+                            try:
+                                config_dict = json.loads(kwargs["compilation_config"])
+                                kwargs["compilation_config"] = CompilationConfig(**config_dict)
+                            except (json.JSONDecodeError, TypeError) as e:
+                                logger.warning(
+                                    f"Failed to parse compilation_config: {kwargs['compilation_config']}, error: {e}")
+                                del kwargs["compilation_config"]
+                    if "gpu_memory_utilization" not in kwargs:
+                        kwargs["gpu_memory_utilization"] = set_default_gpu_memory_utilization()
+                    if "model" not in kwargs:
+                        kwargs["model"] = model_path
+                    if enable_custom_logits_processors() and ("logits_processors" not in kwargs):
+                        from mineru_vl_utils import MinerULogitsProcessor
+                        kwargs["logits_processors"] = [MinerULogitsProcessor]
+                    # 使用kwargs为 vllm初始化参数
+                    vllm_async_llm = AsyncLLM.from_engine_args(AsyncEngineArgs(**kwargs))
+                elif backend == "lmdeploy-engine":
+                    try:
+                        from lmdeploy import PytorchEngineConfig, TurbomindEngineConfig
+                        from lmdeploy.serve.vl_async_engine import VLAsyncEngine
+                    except ImportError:
+                        raise ImportError("Please install lmdeploy to use the lmdeploy-engine backend.")
+                    if "cache_max_entry_count" not in kwargs:
+                        kwargs["cache_max_entry_count"] = 0.5
+
+                    device_type = os.getenv("MINERU_LMDEPLOY_DEVICE", "")
+                    if device_type == "":
+                        if "lmdeploy_device" in kwargs:
+                            device_type = kwargs.pop("lmdeploy_device")
+                            if device_type not in ["cuda", "ascend", "maca", "camb"]:
+                                raise ValueError(f"Unsupported lmdeploy device type: {device_type}")
+                        else:
+                            device_type = "cuda"
+                    lm_backend = os.getenv("MINERU_LMDEPLOY_BACKEND", "")
+                    if lm_backend == "":
+                        if "lmdeploy_backend" in kwargs:
+                            lm_backend = kwargs.pop("lmdeploy_backend")
+                            if lm_backend not in ["pytorch", "turbomind"]:
+                                raise ValueError(f"Unsupported lmdeploy backend: {lm_backend}")
+                        else:
+                            lm_backend = set_lmdeploy_backend(device_type)
+                    logger.info(f"lmdeploy device is: {device_type}, lmdeploy backend is: {lm_backend}")
+
+                    if lm_backend == "pytorch":
+                        kwargs["device_type"] = device_type
+                        backend_config = PytorchEngineConfig(**kwargs)
+                    elif lm_backend == "turbomind":
+                        backend_config = TurbomindEngineConfig(**kwargs)
+                    else:
+                        raise ValueError(f"Unsupported lmdeploy backend: {lm_backend}")
+
+                    log_level = 'ERROR'
+                    from lmdeploy.utils import get_logger
+                    lm_logger = get_logger('lmdeploy')
+                    lm_logger.setLevel(log_level)
+                    if os.getenv('TM_LOG_LEVEL') is None:
+                        os.environ['TM_LOG_LEVEL'] = log_level
+
+                    lmdeploy_engine = VLAsyncEngine(
+                        model_path,
+                        backend=lm_backend,
+                        backend_config=backend_config,
+                    )
+            self._models[key] = MinerUClient(
+                backend=backend,
+                model=model,
+                processor=processor,
+                lmdeploy_engine=lmdeploy_engine,
+                vllm_llm=vllm_llm,
+                vllm_async_llm=vllm_async_llm,
+                server_url=server_url,
+                batch_size=batch_size,
+                max_concurrency=max_concurrency,
+                http_timeout=http_timeout,
+                server_headers=server_headers,
+                max_retries=max_retries,
+                retry_backoff_factor=retry_backoff_factor,
+            )
+            elapsed = round(time.time() - start_time, 2)
+            logger.info(f"get {backend} predictor cost: {elapsed}s")
+        return self._models[key]
+
+
+def doc_analyze(
+    pdf_bytes,
+    image_writer: DataWriter | None,
+    predictor: MinerUClient | None = None,
+    backend="transformers",
+    model_path: str | None = None,
+    server_url: str | None = None,
+    **kwargs,
+):
+    if predictor is None:
+        predictor = ModelSingleton().get_model(backend, model_path, server_url, **kwargs)
+
+    load_images_start = time.time()
+    images_list, pdf_doc = load_images_from_pdf(pdf_bytes, image_type=ImageType.PIL)
+    images_pil_list = [image_dict["img_pil"] for image_dict in images_list]
+    load_images_time = round(time.time() - load_images_start, 2)
+    logger.debug(f"load images cost: {load_images_time}, speed: {round(len(images_pil_list)/load_images_time, 3)} images/s")
+
+    infer_start = time.time()
+    results = predictor.batch_two_step_extract(images=images_pil_list)
+    infer_time = round(time.time() - infer_start, 2)
+    logger.debug(f"infer finished, cost: {infer_time}, speed: {round(len(results)/infer_time, 3)} page/s")
+
+    # middle_json = result_to_middle_json(results, images_list, pdf_doc, image_writer)
+    middle_json = asyncio.run(result_to_middle_json(results, images_list, pdf_doc, image_writer))
+
+    return middle_json, results
+
+
+async def aio_doc_analyze(
+    pdf_bytes,
+    image_writer: DataWriter | None,
+    predictor: MinerUClient | None = None,
+    backend="transformers",
+    model_path: str | None = None,
+    server_url: str | None = None,
+    **kwargs,
+):
+    if predictor is None:
+        predictor = ModelSingleton().get_model(backend, model_path, server_url, **kwargs)
+
+    load_images_start = time.time()
+    images_list, pdf_doc = load_images_from_pdf(pdf_bytes, image_type=ImageType.PIL)
+    images_pil_list = [image_dict["img_pil"] for image_dict in images_list]
+    load_images_time = round(time.time() - load_images_start, 2)
+    logger.debug(f"load images cost: {load_images_time}, speed: {round(len(images_pil_list)/load_images_time, 3)} images/s")
+
+    infer_start = time.time()
+    results = await predictor.aio_batch_two_step_extract(images=images_pil_list)
+    infer_time = round(time.time() - infer_start, 2)
+    logger.debug(f"infer finished, cost: {infer_time}, speed: {round(len(results)/infer_time, 3)} page/s")
+    middle_json = await result_to_middle_json(results, images_list, pdf_doc, image_writer)
+    return middle_json, results

+ 543 - 0
mineru/backend/vlm/vlm_magic_model.py

@@ -0,0 +1,543 @@
+import re
+from typing import Literal
+
+from loguru import logger
+
+from mineru.utils.boxbase import calculate_overlap_area_in_bbox1_area_ratio
+from mineru.utils.enum_class import ContentType, BlockType
+from mineru.utils.guess_suffix_or_lang import guess_language_by_text
+from mineru.utils.magic_model_utils import reduct_overlap, tie_up_category_by_index
+
+
+class MagicModel:
+    def __init__(self, page_blocks: list, width, height):
+        self.page_blocks = page_blocks
+
+        blocks = []
+        self.all_spans = []
+        # 解析每个块
+        for index, block_info in enumerate(page_blocks):
+            block_bbox = block_info["bbox"]
+            try:
+                x1, y1, x2, y2 = block_bbox
+                x_1, y_1, x_2, y_2 = (
+                    int(x1 * width),
+                    int(y1 * height),
+                    int(x2 * width),
+                    int(y2 * height),
+                )
+                if x_2 < x_1:
+                    x_1, x_2 = x_2, x_1
+                if y_2 < y_1:
+                    y_1, y_2 = y_2, y_1
+                block_bbox = (x_1, y_1, x_2, y_2)
+                block_type = block_info["type"]
+                block_content = block_info["content"]
+                block_angle = block_info["angle"]
+
+                # print(f"坐标: {block_bbox}")
+                # print(f"类型: {block_type}")
+                # print(f"内容: {block_content}")
+                # print("-" * 50)
+            except Exception as e:
+                # 如果解析失败,可能是因为格式不正确,跳过这个块
+                logger.warning(f"Invalid block format: {block_info}, error: {e}")
+                continue
+
+            span_type = "unknown"
+            code_block_sub_type = None
+            guess_lang = None
+
+            if block_type in [
+                "text",
+                "title",
+                "image_caption",
+                "image_footnote",
+                "table_caption",
+                "table_footnote",
+                "code_caption",
+                "ref_text",
+                "phonetic",
+                "header",
+                "footer",
+                "page_number",
+                "aside_text",
+                "page_footnote",
+                "list"
+            ]:
+                span_type = ContentType.TEXT
+            elif block_type in ["image"]:
+                block_type = BlockType.IMAGE_BODY
+                span_type = ContentType.IMAGE
+            elif block_type in ["table"]:
+                block_type = BlockType.TABLE_BODY
+                span_type = ContentType.TABLE
+            elif block_type in ["code", "algorithm"]:
+                block_content = code_content_clean(block_content)
+                code_block_sub_type = block_type
+                block_type = BlockType.CODE_BODY
+                span_type = ContentType.TEXT
+                guess_lang = guess_language_by_text(block_content)
+            elif block_type in ["equation"]:
+                block_type = BlockType.INTERLINE_EQUATION
+                span_type = ContentType.INTERLINE_EQUATION
+
+            #  code 和 algorithm 类型的块,如果内容中包含行内公式,则需要将块类型切换为algorithm
+            switch_code_to_algorithm = False
+
+            if span_type in ["image", "table"]:
+                span = {
+                    "bbox": block_bbox,
+                    "type": span_type,
+                }
+                if span_type == ContentType.TABLE:
+                    span["html"] = block_content
+            elif span_type in [ContentType.INTERLINE_EQUATION]:
+                span = {
+                    "bbox": block_bbox,
+                    "type": span_type,
+                    "content": isolated_formula_clean(block_content),
+                }
+            else:
+
+                if block_content:
+                    block_content = clean_content(block_content)
+
+                if block_content and block_content.count("\\(") == block_content.count("\\)") and block_content.count("\\(") > 0:
+
+                    switch_code_to_algorithm = True
+
+                    # 生成包含文本和公式的span列表
+                    spans = []
+                    last_end = 0
+
+                    # 查找所有公式
+                    for match in re.finditer(r'\\\((.+?)\\\)', block_content):
+                        start, end = match.span()
+
+                        # 添加公式前的文本
+                        if start > last_end:
+                            text_before = block_content[last_end:start]
+                            if text_before.strip():
+                                spans.append({
+                                    "bbox": block_bbox,
+                                    "type": ContentType.TEXT,
+                                    "content": text_before
+                                })
+
+                        # 添加公式(去除\(和\))
+                        formula = match.group(1)
+                        spans.append({
+                            "bbox": block_bbox,
+                            "type": ContentType.INLINE_EQUATION,
+                            "content": formula.strip()
+                        })
+
+                        last_end = end
+
+                    # 添加最后一个公式后的文本
+                    if last_end < len(block_content):
+                        text_after = block_content[last_end:]
+                        if text_after.strip():
+                            spans.append({
+                                "bbox": block_bbox,
+                                "type": ContentType.TEXT,
+                                "content": text_after
+                            })
+
+                    span = spans
+                else:
+                    span = {
+                        "bbox": block_bbox,
+                        "type": span_type,
+                        "content": block_content,
+                    }
+
+            # 处理span类型并添加到all_spans
+            if isinstance(span, dict) and "bbox" in span:
+                self.all_spans.append(span)
+                spans = [span]
+            elif isinstance(span, list):
+                self.all_spans.extend(span)
+                spans = span
+            else:
+                raise ValueError(f"Invalid span type: {span_type}, expected dict or list, got {type(span)}")
+
+            # 构造line对象
+            if block_type in [BlockType.CODE_BODY]:
+                if switch_code_to_algorithm and code_block_sub_type == "code":
+                    code_block_sub_type = "algorithm"
+                line = {"bbox": block_bbox, "spans": spans, "extra": {"type": code_block_sub_type, "guess_lang": guess_lang}}
+            else:
+                line = {"bbox": block_bbox, "spans": spans}
+
+            blocks.append(
+                {
+                    "bbox": block_bbox,
+                    "type": block_type,
+                    "angle": block_angle,
+                    "lines": [line],
+                    "index": index,
+                }
+            )
+
+        self.image_blocks = []
+        self.table_blocks = []
+        self.interline_equation_blocks = []
+        self.text_blocks = []
+        self.title_blocks = []
+        self.code_blocks = []
+        self.discarded_blocks = []
+        self.ref_text_blocks = []
+        self.phonetic_blocks = []
+        self.list_blocks = []
+        for block in blocks:
+            if block["type"] in [BlockType.IMAGE_BODY, BlockType.IMAGE_CAPTION, BlockType.IMAGE_FOOTNOTE]:
+                self.image_blocks.append(block)
+            elif block["type"] in [BlockType.TABLE_BODY, BlockType.TABLE_CAPTION, BlockType.TABLE_FOOTNOTE]:
+                self.table_blocks.append(block)
+            elif block["type"] in [BlockType.CODE_BODY, BlockType.CODE_CAPTION]:
+                self.code_blocks.append(block)
+            elif block["type"] == BlockType.INTERLINE_EQUATION:
+                self.interline_equation_blocks.append(block)
+            elif block["type"] == BlockType.TEXT:
+                self.text_blocks.append(block)
+            elif block["type"] == BlockType.TITLE:
+                self.title_blocks.append(block)
+            elif block["type"] in [BlockType.REF_TEXT]:
+                self.ref_text_blocks.append(block)
+            elif block["type"] in [BlockType.PHONETIC]:
+                self.phonetic_blocks.append(block)
+            elif block["type"] in [BlockType.HEADER, BlockType.FOOTER, BlockType.PAGE_NUMBER, BlockType.ASIDE_TEXT, BlockType.PAGE_FOOTNOTE]:
+                self.discarded_blocks.append(block)
+            elif block["type"] == BlockType.LIST:
+                self.list_blocks.append(block)
+            else:
+                continue
+
+        self.list_blocks, self.text_blocks, self.ref_text_blocks = fix_list_blocks(self.list_blocks, self.text_blocks, self.ref_text_blocks)
+        self.image_blocks, not_include_image_blocks = fix_two_layer_blocks(self.image_blocks, BlockType.IMAGE)
+        self.table_blocks, not_include_table_blocks = fix_two_layer_blocks(self.table_blocks, BlockType.TABLE)
+        self.code_blocks, not_include_code_blocks = fix_two_layer_blocks(self.code_blocks, BlockType.CODE)
+        for code_block in self.code_blocks:
+            for block in code_block['blocks']:
+                if block['type'] == BlockType.CODE_BODY:
+                    if len(block["lines"]) > 0:
+                        line = block["lines"][0]
+                        code_block["sub_type"] = line["extra"]["type"]
+                        if code_block["sub_type"] in ["code"]:
+                            code_block["guess_lang"] = line["extra"]["guess_lang"]
+                        del line["extra"]
+                    else:
+                        code_block["sub_type"] = "code"
+                        code_block["guess_lang"] = "txt"
+
+        for block in not_include_image_blocks + not_include_table_blocks + not_include_code_blocks:
+            block["type"] = BlockType.TEXT
+            self.text_blocks.append(block)
+
+
+    def get_list_blocks(self):
+        return self.list_blocks
+
+    def get_image_blocks(self):
+        return self.image_blocks
+
+    def get_table_blocks(self):
+        return self.table_blocks
+
+    def get_code_blocks(self):
+        return self.code_blocks
+
+    def get_ref_text_blocks(self):
+        return self.ref_text_blocks
+
+    def get_phonetic_blocks(self):
+        return self.phonetic_blocks
+
+    def get_title_blocks(self):
+        return self.title_blocks
+
+    def get_text_blocks(self):
+        return self.text_blocks
+
+    def get_interline_equation_blocks(self):
+        return self.interline_equation_blocks
+
+    def get_discarded_blocks(self):
+        return self.discarded_blocks
+
+    def get_all_spans(self):
+        return self.all_spans
+
+
+def isolated_formula_clean(txt):
+    latex = txt[:]
+    if latex.startswith("\\["): latex = latex[2:]
+    if latex.endswith("\\]"): latex = latex[:-2]
+    latex = latex.strip()
+    return latex
+
+
+def code_content_clean(content):
+    """清理代码内容,移除Markdown代码块的开始和结束标记"""
+    if not content:
+        return ""
+
+    lines = content.splitlines()
+    start_idx = 0
+    end_idx = len(lines)
+
+    # 处理开头的三个反引号
+    if lines and lines[0].startswith("```"):
+        start_idx = 1
+
+    # 处理结尾的三个反引号
+    if lines and end_idx > start_idx and lines[end_idx - 1].strip() == "```":
+        end_idx -= 1
+
+    # 只有在有内容时才进行join操作
+    if start_idx < end_idx:
+        return "\n".join(lines[start_idx:end_idx]).strip()
+    return ""
+
+
+def clean_content(content):
+    if content and content.count("\\[") == content.count("\\]") and content.count("\\[") > 0:
+        # Function to handle each match
+        def replace_pattern(match):
+            # Extract content between \[ and \]
+            inner_content = match.group(1)
+            return f"[{inner_content}]"
+
+        # Find all patterns of \[x\] and apply replacement
+        pattern = r'\\\[(.*?)\\\]'
+        content = re.sub(pattern, replace_pattern, content)
+
+    return content
+
+
+def __tie_up_category_by_index(blocks, subject_block_type, object_block_type):
+    """基于index的主客体关联包装函数"""
+    # 定义获取主体和客体对象的函数
+    def get_subjects():
+        return reduct_overlap(
+            list(
+                map(
+                    lambda x: {"bbox": x["bbox"], "lines": x["lines"], "index": x["index"], "angle": x["angle"]},
+                    filter(
+                        lambda x: x["type"] == subject_block_type,
+                        blocks,
+                    ),
+                )
+            )
+        )
+
+    def get_objects():
+        return reduct_overlap(
+            list(
+                map(
+                    lambda x: {"bbox": x["bbox"], "lines": x["lines"], "index": x["index"], "angle": x["angle"]},
+                    filter(
+                        lambda x: x["type"] == object_block_type,
+                        blocks,
+                    ),
+                )
+            )
+        )
+
+    # 调用通用方法
+    return tie_up_category_by_index(
+        get_subjects,
+        get_objects,
+        object_block_type=object_block_type
+    )
+
+
+def get_type_blocks(blocks, block_type: Literal["image", "table", "code"]):
+    with_captions = __tie_up_category_by_index(blocks, f"{block_type}_body", f"{block_type}_caption")
+    with_footnotes = __tie_up_category_by_index(blocks, f"{block_type}_body", f"{block_type}_footnote")
+    ret = []
+    for v in with_captions:
+        record = {
+            f"{block_type}_body": v["sub_bbox"],
+            f"{block_type}_caption_list": v["obj_bboxes"],
+        }
+        filter_idx = v["sub_idx"]
+        d = next(filter(lambda x: x["sub_idx"] == filter_idx, with_footnotes))
+        record[f"{block_type}_footnote_list"] = d["obj_bboxes"]
+        ret.append(record)
+    return ret
+
+
+def fix_two_layer_blocks(blocks, fix_type: Literal["image", "table", "code"]):
+    need_fix_blocks = get_type_blocks(blocks, fix_type)
+    fixed_blocks = []
+    not_include_blocks = []
+    processed_indices = set()
+
+    # 特殊处理表格类型,确保标题在表格前,注脚在表格后
+    if fix_type in ["table", "image"]:
+        # 收集所有不合适的caption和footnote
+        misplaced_captions = []  # 存储(caption, 原始block索引)
+        misplaced_footnotes = []  # 存储(footnote, 原始block索引)
+
+        # 第一步:移除不符合位置要求的footnote
+        for block_idx, block in enumerate(need_fix_blocks):
+            body = block[f"{fix_type}_body"]
+            body_index = body["index"]
+
+            # 检查footnote应在body后或同位置
+            valid_footnotes = []
+            for footnote in block[f"{fix_type}_footnote_list"]:
+                if footnote["index"] >= body_index:
+                    valid_footnotes.append(footnote)
+                else:
+                    misplaced_footnotes.append((footnote, block_idx))
+            block[f"{fix_type}_footnote_list"] = valid_footnotes
+
+        # 第三步:重新分配不合规的footnote到合适的body
+        for footnote, original_block_idx in misplaced_footnotes:
+            footnote_index = footnote["index"]
+            best_block_idx = None
+            min_distance = float('inf')
+
+            # 寻找索引小于等于footnote_index的最近body
+            for idx, block in enumerate(need_fix_blocks):
+                body_index = block[f"{fix_type}_body"]["index"]
+                if body_index <= footnote_index and idx != original_block_idx:
+                    distance = footnote_index - body_index
+                    if distance < min_distance:
+                        min_distance = distance
+                        best_block_idx = idx
+
+            if best_block_idx is not None:
+                # 找到合适的body,添加到对应block的footnote_list
+                need_fix_blocks[best_block_idx][f"{fix_type}_footnote_list"].append(footnote)
+            else:
+                # 没找到合适的body,作为普通block处理
+                not_include_blocks.append(footnote)
+
+        # 第四步:将每个block的caption_list和footnote_list中不连续index的元素提出来作为普通block处理
+        for block in need_fix_blocks:
+            caption_list = block[f"{fix_type}_caption_list"]
+            footnote_list = block[f"{fix_type}_footnote_list"]
+            body_index = block[f"{fix_type}_body"]["index"]
+
+            # 处理caption_list (从body往前看,caption在body之前)
+            if caption_list:
+                # 按index降序排列,从最接近body的开始检查
+                caption_list.sort(key=lambda x: x["index"], reverse=True)
+                filtered_captions = [caption_list[0]]
+                for i in range(1, len(caption_list)):
+                    prev_index = caption_list[i - 1]["index"]
+                    curr_index = caption_list[i]["index"]
+
+                    # 检查是否连续
+                    if curr_index == prev_index - 1:
+                        filtered_captions.append(caption_list[i])
+                    else:
+                        # 检查gap中是否只有body_index
+                        gap_indices = set(range(curr_index + 1, prev_index))
+                        if gap_indices == {body_index}:
+                            # gap中只有body_index,不算真正的gap
+                            filtered_captions.append(caption_list[i])
+                        else:
+                            # 出现真正的gap,后续所有caption都作为普通block
+                            not_include_blocks.extend(caption_list[i:])
+                            break
+                # 恢复升序
+                filtered_captions.reverse()
+                block[f"{fix_type}_caption_list"] = filtered_captions
+
+            # 处理footnote_list (从body往后看,footnote在body之后)
+            if footnote_list:
+                # 按index升序排列,从最接近body的开始检查
+                footnote_list.sort(key=lambda x: x["index"])
+                filtered_footnotes = [footnote_list[0]]
+                for i in range(1, len(footnote_list)):
+                    # 检查是否与前一个footnote连续
+                    if footnote_list[i]["index"] == footnote_list[i - 1]["index"] + 1:
+                        filtered_footnotes.append(footnote_list[i])
+                    else:
+                        # 出现gap,后续所有footnote都作为普通block
+                        not_include_blocks.extend(footnote_list[i:])
+                        break
+                block[f"{fix_type}_footnote_list"] = filtered_footnotes
+
+    # 构建两层结构blocks
+    for block in need_fix_blocks:
+        body = block[f"{fix_type}_body"]
+        caption_list = block[f"{fix_type}_caption_list"]
+        footnote_list = block[f"{fix_type}_footnote_list"]
+
+        body["type"] = f"{fix_type}_body"
+        for caption in caption_list:
+            caption["type"] = f"{fix_type}_caption"
+            processed_indices.add(caption["index"])
+        for footnote in footnote_list:
+            footnote["type"] = f"{fix_type}_footnote"
+            processed_indices.add(footnote["index"])
+
+        processed_indices.add(body["index"])
+
+        two_layer_block = {
+            "type": fix_type,
+            "bbox": body["bbox"],
+            "blocks": [body],
+            "index": body["index"],
+        }
+        two_layer_block["blocks"].extend([*caption_list, *footnote_list])
+        # 对blocks按index排序
+        two_layer_block["blocks"].sort(key=lambda x: x["index"])
+
+        fixed_blocks.append(two_layer_block)
+
+    # 添加未处理的blocks
+    for block in blocks:
+        block.pop("type", None)
+        if block["index"] not in processed_indices and block not in not_include_blocks:
+            not_include_blocks.append(block)
+
+    return fixed_blocks, not_include_blocks
+
+
+def fix_list_blocks(list_blocks, text_blocks, ref_text_blocks):
+    for list_block in list_blocks:
+        list_block["blocks"] = []
+        if "lines" in list_block:
+            del list_block["lines"]
+
+    temp_text_blocks = text_blocks + ref_text_blocks
+    need_remove_blocks = []
+    for block in temp_text_blocks:
+        for list_block in list_blocks:
+            if calculate_overlap_area_in_bbox1_area_ratio(block["bbox"], list_block["bbox"]) >= 0.8:
+                list_block["blocks"].append(block)
+                need_remove_blocks.append(block)
+                break
+
+    for block in need_remove_blocks:
+        if block in text_blocks:
+            text_blocks.remove(block)
+        elif block in ref_text_blocks:
+            ref_text_blocks.remove(block)
+
+    # 移除blocks为空的list_block
+    list_blocks = [lb for lb in list_blocks if lb["blocks"]]
+
+    for list_block in list_blocks:
+        # 统计list_block["blocks"]中所有block的type,用众数作为list_block的sub_type
+        type_count = {}
+        for sub_block in list_block["blocks"]:
+            sub_block_type = sub_block["type"]
+            if sub_block_type not in type_count:
+                type_count[sub_block_type] = 0
+            type_count[sub_block_type] += 1
+
+        if type_count:
+            list_block["sub_type"] = max(type_count, key=type_count.get)
+        else:
+            list_block["sub_type"] = "unknown"
+
+    return list_blocks, text_blocks, ref_text_blocks

+ 704 - 0
mineru/backend/vlm/vlm_middle_json_mkcontent.py

@@ -0,0 +1,704 @@
+import os
+
+from loguru import logger
+
+from mineru.utils.char_utils import full_to_half_exclude_marks, is_hyphen_at_line_end
+from mineru.utils.config_reader import get_latex_delimiter_config, get_formula_enable, get_table_enable
+from mineru.utils.enum_class import MakeMode, BlockType, ContentType, ContentTypeV2
+from mineru.utils.language import detect_lang
+
+latex_delimiters_config = get_latex_delimiter_config()
+
+default_delimiters = {
+    'display': {'left': '$$', 'right': '$$'},
+    'inline': {'left': '$', 'right': '$'}
+}
+
+delimiters = latex_delimiters_config if latex_delimiters_config else default_delimiters
+
+display_left_delimiter = delimiters['display']['left']
+display_right_delimiter = delimiters['display']['right']
+inline_left_delimiter = delimiters['inline']['left']
+inline_right_delimiter = delimiters['inline']['right']
+
+# +
+
+from utils.upload_file_to_oss import UploadMinio
+from config import minio_config
+
+
+# +
+def upload_image_to_minio(span, img_buket_path):
+    """
+    上传图片到MinIO并返回访问路径
+    Args:
+        span: 包含image_path的字典
+        img_buket_path: 本地图片目录路径
+    Returns:
+        success: 上传是否成功 (True/False)
+        content: Markdown格式的图片链接
+    """
+    content = ''
+    image_path = span['image_path']
+    local_file_path = f"{img_buket_path}/{image_path}"
+
+    # logger.info(f"local_file_path11111111111111111111111111111{local_file_path}")
+    
+    # 上传到MinIO,使用 MDImages/文件名 作为对象名称
+    minio_object_name = f"MDImages/{image_path}"
+    success = UploadMinio().upload_file(local_file_path, minio_object_name)
+    
+    if success:
+        print("**上传成功**" * 100)
+        # 构造完整的MinIO访问URL
+        minio_url = minio_config.get("minio_url")
+        minio_bucket = minio_config.get("minio_bucket")
+        content = f"![]({minio_url}/{minio_bucket}/{minio_object_name})"
+    
+    return success, content
+
+
+
+def merge_para_with_text(para_block, formula_enable=True, img_buket_path=''):
+    block_text = ''
+    for line in para_block['lines']:
+        for span in line['spans']:
+            if span['type'] in [ContentType.TEXT]:
+                span['content'] = full_to_half_exclude_marks(span['content'])
+                block_text += span['content']
+    block_lang = detect_lang(block_text)
+
+    para_text = ''
+    for i, line in enumerate(para_block['lines']):
+        for j, span in enumerate(line['spans']):
+            span_type = span['type']
+            content = ''
+            if span_type == ContentType.TEXT:
+                content = span['content']
+            elif span_type == ContentType.INLINE_EQUATION:
+                content = f"{inline_left_delimiter}{span['content']}{inline_right_delimiter}"
+            elif span_type == ContentType.INTERLINE_EQUATION:
+                if formula_enable:
+                    content = f"\n{display_left_delimiter}\n{span['content']}\n{display_right_delimiter}\n"
+                else:
+                    if span.get('image_path', ''):
+                        content = f"![]({img_buket_path}/{span['image_path']})"
+
+            content = content.strip()
+            if content:
+
+                if span_type == ContentType.INTERLINE_EQUATION:
+                    para_text += content
+                    continue
+
+                # 定义CJK语言集合(中日韩)
+                cjk_langs = {'zh', 'ja', 'ko'}
+                # logger.info(f'block_lang: {block_lang}, content: {content}')
+
+                # 判断是否为行末span
+                is_last_span = j == len(line['spans']) - 1
+
+                if block_lang in cjk_langs:  # 中文/日语/韩文语境下,换行不需要空格分隔,但是如果是行内公式结尾,还是要加空格
+                    if is_last_span and span_type != ContentType.INLINE_EQUATION:
+                        para_text += content
+                    else:
+                        para_text += f'{content} '
+                else:
+                    # 西方文本语境下 每行的最后一个span判断是否要去除连字符
+                    if span_type in [ContentType.TEXT, ContentType.INLINE_EQUATION]:
+                        # 如果span是line的最后一个且末尾带有-连字符,那么末尾不应该加空格,同时应该把-删除
+                        if (
+                                is_last_span
+                                and span_type == ContentType.TEXT
+                                and is_hyphen_at_line_end(content)
+                        ):
+                            # 如果下一行的第一个span是小写字母开头,删除连字符
+                            if (
+                                    i+1 < len(para_block['lines'])
+                                    and para_block['lines'][i + 1].get('spans')
+                                    and para_block['lines'][i + 1]['spans'][0].get('type') == ContentType.TEXT
+                                    and para_block['lines'][i + 1]['spans'][0].get('content', '')
+                                    and para_block['lines'][i + 1]['spans'][0]['content'][0].islower()
+                            ):
+                                para_text += content[:-1]
+                            else:  # 如果没有下一行,或者下一行的第一个span不是小写字母开头,则保留连字符但不加空格
+                                para_text += content
+                        else:  # 西方文本语境下 content间需要空格分隔
+                            para_text += f'{content} '
+    return para_text
+
+
+def mk_blocks_to_markdown(para_blocks, make_mode, formula_enable, table_enable, img_buket_path=''):
+    page_markdown = []
+    for para_block in para_blocks:
+        para_text = ''
+        para_type = para_block['type']
+        if para_type in [BlockType.TEXT, BlockType.INTERLINE_EQUATION, BlockType.PHONETIC, BlockType.REF_TEXT]:
+            para_text = merge_para_with_text(para_block, formula_enable=formula_enable, img_buket_path=img_buket_path)
+        elif para_type == BlockType.LIST:
+            for block in para_block['blocks']:
+                item_text = merge_para_with_text(block, formula_enable=formula_enable, img_buket_path=img_buket_path)
+                para_text += f"{item_text}  \n"
+        elif para_type == BlockType.TITLE:
+            title_level = get_title_level(para_block)
+            para_text = f'{"#" * title_level} {merge_para_with_text(para_block)}'
+        elif para_type == BlockType.IMAGE:
+            if make_mode == MakeMode.NLP_MD:
+                continue
+            elif make_mode == MakeMode.MM_MD:
+                # 检测是否存在图片脚注
+                has_image_footnote = any(block['type'] == BlockType.IMAGE_FOOTNOTE for block in para_block['blocks'])
+                # 如果存在图片脚注,则将图片脚注拼接到图片正文后面
+                if has_image_footnote:
+                    for block in para_block['blocks']:  # 1st.拼image_caption
+                        if block['type'] == BlockType.IMAGE_CAPTION:
+                            para_text += merge_para_with_text(block) + '  \n'
+                    for block in para_block['blocks']:  # 2nd.拼image_body
+                        if block['type'] == BlockType.IMAGE_BODY:
+                            for line in block['lines']:
+                                for span in line['spans']:
+                                    if span['type'] == ContentType.IMAGE:
+                                        if span.get('image_path', ''):
+                                            success, content = upload_image_to_minio(span, img_buket_path)
+                                            if success:
+                                                para_text += content
+                                            else:
+                                                para_text += f"![]({img_buket_path}/{span['image_path']})"
+                    for block in para_block['blocks']:  # 3rd.拼image_footnote
+                        if block['type'] == BlockType.IMAGE_FOOTNOTE:
+                            para_text += '  \n' + merge_para_with_text(block)
+                else:
+                    for block in para_block['blocks']:  # 1st.拼image_body
+                        if block['type'] == BlockType.IMAGE_BODY:
+                            for line in block['lines']:
+                                for span in line['spans']:
+                                    if span['type'] == ContentType.IMAGE:
+                                        if span.get('image_path', ''):
+                                            success, content = upload_image_to_minio(span, img_buket_path)
+                                            if success:
+                                                para_text += content
+                                            else:
+                                                para_text += f"![]({img_buket_path}/{span['image_path']})"
+                    for block in para_block['blocks']:  # 2nd.拼image_caption
+                        if block['type'] == BlockType.IMAGE_CAPTION:
+                            para_text += '  \n' + merge_para_with_text(block)
+
+        elif para_type == BlockType.TABLE:
+            if make_mode == MakeMode.NLP_MD:
+                continue
+            elif make_mode == MakeMode.MM_MD:
+                for block in para_block['blocks']:  # 1st.拼table_caption
+                    if block['type'] == BlockType.TABLE_CAPTION:
+                        para_text += merge_para_with_text(block) + '  \n'
+                for block in para_block['blocks']:  # 2nd.拼table_body
+                    if block['type'] == BlockType.TABLE_BODY:
+                        for line in block['lines']:
+                            for span in line['spans']:
+                                if span['type'] == ContentType.TABLE:
+                                    # if processed by table model
+                                    if table_enable:
+                                        if span.get('html', ''):
+                                            para_text += f"\n{span['html']}\n"
+                                        elif span.get('image_path', ''):
+                                            para_text += f"![]({img_buket_path}/{span['image_path']})"
+                                    else:
+                                        if span.get('image_path', ''):
+                                            para_text += f"![]({img_buket_path}/{span['image_path']})"
+                for block in para_block['blocks']:  # 3rd.拼table_footnote
+                    if block['type'] == BlockType.TABLE_FOOTNOTE:
+                        para_text += '\n' + merge_para_with_text(block) + '  '
+        elif para_type == BlockType.CODE:
+            sub_type = para_block["sub_type"]
+            for block in para_block['blocks']:  # 1st.拼code_caption
+                if block['type'] == BlockType.CODE_CAPTION:
+                    para_text += merge_para_with_text(block) + '  \n'
+            for block in para_block['blocks']:  # 2nd.拼code_body
+                if block['type'] == BlockType.CODE_BODY:
+                    if sub_type == BlockType.CODE:
+                        guess_lang = para_block["guess_lang"]
+                        para_text += f"```{guess_lang}\n{merge_para_with_text(block)}\n```"
+                    elif sub_type == BlockType.ALGORITHM:
+                        para_text += merge_para_with_text(block)
+
+        if para_text.strip() == '':
+            continue
+        else:
+            # page_markdown.append(para_text.strip() + '  ')
+            page_markdown.append(para_text.strip())
+
+    return page_markdown
+
+
+def make_blocks_to_content_list(para_block, img_buket_path, page_idx, page_size):
+    para_type = para_block['type']
+    para_content = {}
+    if para_type in [
+        BlockType.TEXT,
+        BlockType.REF_TEXT,
+        BlockType.PHONETIC,
+        BlockType.HEADER,
+        BlockType.FOOTER,
+        BlockType.PAGE_NUMBER,
+        BlockType.ASIDE_TEXT,
+        BlockType.PAGE_FOOTNOTE,
+    ]:
+        para_content = {
+            'type': para_type,
+            'text': merge_para_with_text(para_block),
+        }
+    elif para_type == BlockType.LIST:
+        para_content = {
+            'type': para_type,
+            'sub_type': para_block.get('sub_type', ''),
+            'list_items':[],
+        }
+        for block in para_block['blocks']:
+            item_text = merge_para_with_text(block)
+            if item_text.strip():
+                para_content['list_items'].append(item_text)
+    elif para_type == BlockType.TITLE:
+        title_level = get_title_level(para_block)
+        para_content = {
+            'type': ContentType.TEXT,
+            'text': merge_para_with_text(para_block),
+            'title_path': para_block.get('title_path', ''),
+        }
+        if title_level != 0:
+            para_content['text_level'] = title_level
+    elif para_type == BlockType.INTERLINE_EQUATION:
+        para_content = {
+            'type': ContentType.EQUATION,
+            'text': merge_para_with_text(para_block),
+            'text_format': 'latex',
+        }
+    elif para_type == BlockType.IMAGE:
+        para_content = {'type': ContentType.IMAGE, 'img_path': '', BlockType.IMAGE_CAPTION: [], BlockType.IMAGE_FOOTNOTE: []}
+        for block in para_block['blocks']:
+            if block['type'] == BlockType.IMAGE_BODY:
+                for line in block['lines']:
+                    for span in line['spans']:
+                        if span['type'] == ContentType.IMAGE:
+                            if span.get('image_path', ''):
+                                para_content['img_path'] = f"{img_buket_path}/{span['image_path']}"
+            if block['type'] == BlockType.IMAGE_CAPTION:
+                para_content[BlockType.IMAGE_CAPTION].append(merge_para_with_text(block))
+            if block['type'] == BlockType.IMAGE_FOOTNOTE:
+                para_content[BlockType.IMAGE_FOOTNOTE].append(merge_para_with_text(block))
+    elif para_type == BlockType.TABLE:
+        para_content = {'type': ContentType.TABLE, 'img_path': '', BlockType.TABLE_CAPTION: [], BlockType.TABLE_FOOTNOTE: []}
+        for block in para_block['blocks']:
+            if block['type'] == BlockType.TABLE_BODY:
+                for line in block['lines']:
+                    for span in line['spans']:
+                        if span['type'] == ContentType.TABLE:
+
+                            if span.get('html', ''):
+                                para_content[BlockType.TABLE_BODY] = f"{span['html']}"
+
+                            if span.get('image_path', ''):
+                                para_content['img_path'] = f"{img_buket_path}/{span['image_path']}"
+
+            if block['type'] == BlockType.TABLE_CAPTION:
+                para_content[BlockType.TABLE_CAPTION].append(merge_para_with_text(block))
+            if block['type'] == BlockType.TABLE_FOOTNOTE:
+                para_content[BlockType.TABLE_FOOTNOTE].append(merge_para_with_text(block))
+    elif para_type == BlockType.CODE:
+        para_content = {'type': BlockType.CODE, 'sub_type': para_block["sub_type"], BlockType.CODE_CAPTION: []}
+        for block in para_block['blocks']:
+            if block['type'] == BlockType.CODE_BODY:
+                para_content[BlockType.CODE_BODY] = merge_para_with_text(block)
+                if para_block["sub_type"] == BlockType.CODE:
+                    para_content["guess_lang"] = para_block["guess_lang"]
+            if block['type'] == BlockType.CODE_CAPTION:
+                para_content[BlockType.CODE_CAPTION].append(merge_para_with_text(block))
+
+    page_width, page_height = page_size
+    para_bbox = para_block.get('bbox')
+    if para_bbox:
+        x0, y0, x1, y1 = para_bbox
+        para_content['bbox'] = [
+            int(x0 * 1000 / page_width),
+            int(y0 * 1000 / page_height),
+            int(x1 * 1000 / page_width),
+            int(y1 * 1000 / page_height),
+        ]
+
+    para_content['page_idx'] = page_idx
+
+    return para_content
+
+
+def make_blocks_to_content_list_v2(para_block, img_buket_path, page_size):
+    para_type = para_block['type']
+    para_content = {}
+    if para_type in [
+        BlockType.HEADER,
+        BlockType.FOOTER,
+        BlockType.ASIDE_TEXT,
+        BlockType.PAGE_NUMBER,
+        BlockType.PAGE_FOOTNOTE,
+    ]:
+        if para_type == BlockType.HEADER:
+            content_type = ContentTypeV2.PAGE_HEADER
+        elif para_type == BlockType.FOOTER:
+            content_type = ContentTypeV2.PAGE_FOOTER
+        elif para_type == BlockType.ASIDE_TEXT:
+            content_type = ContentTypeV2.PAGE_ASIDE_TEXT
+        elif para_type == BlockType.PAGE_NUMBER:
+            content_type = ContentTypeV2.PAGE_NUMBER
+        elif para_type == BlockType.PAGE_FOOTNOTE:
+            content_type = ContentTypeV2.PAGE_FOOTNOTE
+        else:
+            raise ValueError(f"Unknown para_type: {para_type}")
+        para_content = {
+            'type': content_type,
+            'content': {
+                f"{content_type}_content": merge_para_with_text_v2(para_block),
+            }
+        }
+    elif para_type == BlockType.TITLE:
+        title_level = get_title_level(para_block)
+        if title_level != 0:
+            para_content = {
+                'type': ContentTypeV2.TITLE,
+                'content': {
+                    "title_content": merge_para_with_text_v2(para_block),
+                    "level": title_level
+                }
+            }
+        else:
+            para_content = {
+                'type': ContentTypeV2.PARAGRAPH,
+                'content': {
+                    "paragraph_content": merge_para_with_text_v2(para_block),
+                }
+            }
+    elif para_type in [
+        BlockType.TEXT,
+        BlockType.PHONETIC
+    ]:
+        para_content = {
+            'type': ContentTypeV2.PARAGRAPH,
+            'content': {
+                'paragraph_content': merge_para_with_text_v2(para_block),
+            }
+        }
+    elif para_type == BlockType.INTERLINE_EQUATION:
+        image_path, math_content = get_body_data(para_block)
+        para_content = {
+            'type': ContentTypeV2.EQUATION_INTERLINE,
+            'content': {
+                'math_content': math_content,
+                'math_type': 'latex',
+                'image_source': {'path': f"{img_buket_path}/{image_path}"},
+            }
+        }
+    elif para_type == BlockType.IMAGE:
+        image_caption = []
+        image_footnote = []
+        image_path, _ = get_body_data(para_block)
+        image_source = {
+            'path': f"{img_buket_path}/{image_path}",
+        }
+        for block in para_block['blocks']:
+            if block['type'] == BlockType.IMAGE_CAPTION:
+                image_caption.extend(merge_para_with_text_v2(block))
+            if block['type'] == BlockType.IMAGE_FOOTNOTE:
+                image_footnote.extend(merge_para_with_text_v2(block))
+        para_content = {
+            'type': ContentTypeV2.IMAGE,
+            'content': {
+                'image_source': image_source,
+                'image_caption': image_caption,
+                'image_footnote': image_footnote,
+            }
+        }
+    elif para_type == BlockType.TABLE:
+        table_caption = []
+        table_footnote = []
+        image_path, html = get_body_data(para_block)
+        image_source = {
+            'path': f"{img_buket_path}/{image_path}",
+        }
+        if html.count("<table") > 1:
+            table_nest_level = 2
+        else:
+            table_nest_level = 1
+        if (
+                "colspan" in html or
+                "rowspan" in html or
+                table_nest_level > 1
+        ):
+            table_type = ContentTypeV2.TABLE_COMPLEX
+        else:
+            table_type = ContentTypeV2.TABLE_SIMPLE
+
+        for block in para_block['blocks']:
+            if block['type'] == BlockType.TABLE_CAPTION:
+                table_caption.extend(merge_para_with_text_v2(block))
+            if block['type'] == BlockType.TABLE_FOOTNOTE:
+                table_footnote.extend(merge_para_with_text_v2(block))
+        para_content = {
+            'type': ContentTypeV2.TABLE,
+            'content': {
+                'image_source': image_source,
+                'table_caption': table_caption,
+                'table_footnote': table_footnote,
+                'html': html,
+                'table_type': table_type,
+                'table_nest_level': table_nest_level,
+            }
+        }
+    elif para_type == BlockType.CODE:
+        code_caption = []
+        code_content = []
+        for block in para_block['blocks']:
+            if block['type'] == BlockType.CODE_CAPTION:
+                code_caption.extend(merge_para_with_text_v2(block))
+            if block['type'] == BlockType.CODE_BODY:
+                code_content = merge_para_with_text_v2(block)
+        sub_type = para_block["sub_type"]
+        if sub_type == BlockType.CODE:
+            para_content = {
+                'type': ContentTypeV2.CODE,
+                'content': {
+                    'code_caption': code_caption,
+                    'code_content': code_content,
+                    'code_language': para_block.get('guess_lang', 'txt'),
+                }
+            }
+        elif sub_type == BlockType.ALGORITHM:
+            para_content = {
+                'type': ContentTypeV2.ALGORITHM,
+                'content': {
+                    'algorithm_caption': code_caption,
+                    'algorithm_content': code_content,
+                }
+            }
+        else:
+            raise ValueError(f"Unknown code sub_type: {sub_type}")
+    elif para_type == BlockType.REF_TEXT:
+        para_content = {
+            'type': ContentTypeV2.LIST,
+            'content': {
+                'list_type': ContentTypeV2.LIST_REF,
+                'list_items': [
+                    {
+                        'item_type': 'text',
+                        'item_content': merge_para_with_text_v2(para_block),
+                    }
+                ],
+            }
+        }
+    elif para_type == BlockType.LIST:
+        if 'sub_type' in para_block:
+            if para_block['sub_type'] == BlockType.REF_TEXT:
+                list_type = ContentTypeV2.LIST_REF
+            elif para_block['sub_type'] == BlockType.TEXT:
+                list_type = ContentTypeV2.LIST_TEXT
+            else:
+                raise ValueError(f"Unknown list sub_type: {para_block['sub_type']}")
+        else:
+            list_type = ContentTypeV2.LIST_TEXT
+        list_items = []
+        for block in para_block['blocks']:
+            item_content = merge_para_with_text_v2(block)
+            if item_content:
+                list_items.append({
+                    'item_type': 'text',
+                    'item_content': item_content,
+                })
+        para_content = {
+            'type': ContentTypeV2.LIST,
+            'content': {
+                'list_type': list_type,
+                'list_items': list_items,
+            }
+        }
+
+    page_width, page_height = page_size
+    para_bbox = para_block.get('bbox')
+    if para_bbox:
+        x0, y0, x1, y1 = para_bbox
+        para_content['bbox'] = [
+            int(x0 * 1000 / page_width),
+            int(y0 * 1000 / page_height),
+            int(x1 * 1000 / page_width),
+            int(y1 * 1000 / page_height),
+        ]
+
+    return para_content
+
+
+
+
+
+def get_body_data(para_block):
+    """
+    Extract image_path and html from para_block
+    Returns:
+        - For IMAGE/INTERLINE_EQUATION: (image_path, '')
+        - For TABLE: (image_path, html)
+        - Default: ('', '')
+    """
+
+    def get_data_from_spans(lines):
+        for line in lines:
+            for span in line.get('spans', []):
+                span_type = span.get('type')
+                if span_type == ContentType.TABLE:
+                    return span.get('image_path', ''), span.get('html', '')
+                elif span_type == ContentType.IMAGE:
+                    return span.get('image_path', ''), ''
+                elif span_type == ContentType.INTERLINE_EQUATION:
+                    return span.get('image_path', ''), span.get('content', '')
+                elif span_type == ContentType.TEXT:
+                    return '', span.get('content', '')
+        return '', ''
+
+    # 处理嵌套的 blocks 结构
+    if 'blocks' in para_block:
+        for block in para_block['blocks']:
+            block_type = block.get('type')
+            if block_type in [BlockType.IMAGE_BODY, BlockType.TABLE_BODY, BlockType.CODE_BODY]:
+                result = get_data_from_spans(block.get('lines', []))
+                if result != ('', ''):
+                    return result
+        return '', ''
+
+    # 处理直接包含 lines 的结构
+    return get_data_from_spans(para_block.get('lines', []))
+
+
+def merge_para_with_text_v2(para_block):
+    block_text = ''
+    for line in para_block['lines']:
+        for span in line['spans']:
+            if span['type'] in [ContentType.TEXT]:
+                span['content'] = full_to_half_exclude_marks(span['content'])
+                block_text += span['content']
+    block_lang = detect_lang(block_text)
+
+    para_content = []
+    para_type = para_block['type']
+    for i, line in enumerate(para_block['lines']):
+        for j, span in enumerate(line['spans']):
+            span_type = span['type']
+            if span.get("content", '').strip():
+                if span_type == ContentType.TEXT:
+                    if para_type == BlockType.PHONETIC:
+                        span_type = ContentTypeV2.SPAN_PHONETIC
+                    else:
+                        span_type = ContentTypeV2.SPAN_TEXT
+                if span_type == ContentType.INLINE_EQUATION:
+                    span_type = ContentTypeV2.SPAN_EQUATION_INLINE
+                if span_type in [
+                    ContentTypeV2.SPAN_TEXT,
+                ]:
+                    # 定义CJK语言集合(中日韩)
+                    cjk_langs = {'zh', 'ja', 'ko'}
+                    # logger.info(f'block_lang: {block_lang}, content: {content}')
+
+                    # 判断是否为行末span
+                    is_last_span = j == len(line['spans']) - 1
+
+                    if block_lang in cjk_langs:  # 中文/日语/韩文语境下,换行不需要空格分隔,但是如果是行内公式结尾,还是要加空格
+                        if is_last_span:
+                            span_content = span['content']
+                        else:
+                            span_content = f"{span['content']} "
+                    else:
+                        # 如果span是line的最后一个且末尾带有-连字符,那么末尾不应该加空格,同时应该把-删除
+                        if (
+                                is_last_span
+                                and is_hyphen_at_line_end(span['content'])
+                        ):
+                            # 如果下一行的第一个span是小写字母开头,删除连字符
+                            if (
+                                    i + 1 < len(para_block['lines'])
+                                    and para_block['lines'][i + 1].get('spans')
+                                    and para_block['lines'][i + 1]['spans'][0].get('type') == ContentType.TEXT
+                                    and para_block['lines'][i + 1]['spans'][0].get('content', '')
+                                    and para_block['lines'][i + 1]['spans'][0]['content'][0].islower()
+                            ):
+                                span_content = span['content'][:-1]
+                            else:  # 如果没有下一行,或者下一行的第一个span不是小写字母开头,则保留连字符但不加空格
+                                span_content = span['content']
+                        else:
+                            # 西方文本语境下content间需要空格分隔
+                            span_content = f"{span['content']} "
+
+                    if para_content and para_content[-1]['type'] == span_type:
+                        # 合并相同类型的span
+                        para_content[-1]['content'] += span_content
+                    else:
+                        span_content = {
+                            'type': span_type,
+                            'content': span_content,
+                        }
+                        para_content.append(span_content)
+
+                elif span_type in [
+                    ContentTypeV2.SPAN_PHONETIC,
+                    ContentTypeV2.SPAN_EQUATION_INLINE,
+                ]:
+                    span_content = {
+                        'type': span_type,
+                        'content': span['content'],
+                    }
+                    para_content.append(span_content)
+                else:
+                    logger.warning(f"Unknown span type in merge_para_with_text_v2: {span_type}")
+    return para_content
+
+
+def union_make(pdf_info_dict: list,
+               make_mode: str,
+               img_buket_path: str = '',
+               ):
+
+    formula_enable = get_formula_enable(os.getenv('MINERU_VLM_FORMULA_ENABLE', 'True').lower() == 'true')
+    table_enable = get_table_enable(os.getenv('MINERU_VLM_TABLE_ENABLE', 'True').lower() == 'true')
+    logger.info(f"img_buket_path:{img_buket_path}")
+    output_content = []
+    for page_info in pdf_info_dict:
+        paras_of_layout = page_info.get('para_blocks')
+        paras_of_discarded = page_info.get('discarded_blocks')
+        page_idx = page_info.get('page_idx')
+        page_size = page_info.get('page_size')
+        if make_mode in [MakeMode.MM_MD, MakeMode.NLP_MD]:
+            if not paras_of_layout:
+                continue
+            page_markdown = mk_blocks_to_markdown(paras_of_layout, make_mode, formula_enable, table_enable, img_buket_path)
+            output_content.extend(page_markdown)
+        elif make_mode == MakeMode.CONTENT_LIST:
+            para_blocks = (paras_of_layout or []) + (paras_of_discarded or [])
+            if not para_blocks:
+                continue
+            for para_block in para_blocks:
+                para_content = make_blocks_to_content_list(para_block, img_buket_path, page_idx, page_size)
+                output_content.append(para_content)
+        elif make_mode == MakeMode.CONTENT_LIST_V2:
+            # https://github.com/drunkpig/llm-webkit-mirror/blob/dev6/docs/specification/output_format/content_list_spec.md
+            para_blocks = (paras_of_layout or []) + (paras_of_discarded or [])
+            page_contents = []
+            if para_blocks:
+                for para_block in para_blocks:
+                    para_content = make_blocks_to_content_list_v2(para_block, img_buket_path, page_size)
+                    page_contents.append(para_content)
+            output_content.append(page_contents)
+
+    if make_mode in [MakeMode.MM_MD, MakeMode.NLP_MD]:
+        return '\n\n'.join(output_content)
+    elif make_mode in [MakeMode.CONTENT_LIST, MakeMode.CONTENT_LIST_V2]:
+        return output_content
+    return None
+
+
+def get_title_level(block):
+    title_level = block.get('level', 1)
+    if title_level > 5:
+        title_level = 5
+    elif title_level < 1:
+        title_level = 0
+    return title_level

+ 1 - 0
mineru/cli/__init__.py

@@ -0,0 +1 @@
+# Copyright (c) Opendatalab. All rights reserved.

+ 223 - 0
mineru/cli/client.py

@@ -0,0 +1,223 @@
+# Copyright (c) Opendatalab. All rights reserved.
+import os
+import sys
+
+import click
+from pathlib import Path
+from loguru import logger
+
+log_level = os.getenv("MINERU_LOG_LEVEL", "INFO").upper()
+logger.remove()  # 移除默认handler
+logger.add(sys.stderr, level=log_level)  # 添加新handler
+
+from mineru.utils.cli_parser import arg_parse
+from mineru.utils.config_reader import get_device
+from mineru.utils.guess_suffix_or_lang import guess_suffix_by_path
+from mineru.utils.model_utils import get_vram
+from ..version import __version__
+from .common import do_parse, read_fn, pdf_suffixes, image_suffixes
+
+
+@click.command(context_settings=dict(ignore_unknown_options=True, allow_extra_args=True))
+@click.pass_context
+@click.version_option(__version__,
+                      '--version',
+                      '-v',
+                      help='display the version and exit')
+@click.option(
+    '-p',
+    '--path',
+    'input_path',
+    type=click.Path(exists=True),
+    required=True,
+    help='local filepath or directory. support pdf, png, jpg, jpeg files',
+)
+@click.option(
+    '-o',
+    '--output',
+    'output_dir',
+    type=click.Path(),
+    required=True,
+    help='output local directory',
+)
+@click.option(
+    '-m',
+    '--method',
+    'method',
+    type=click.Choice(['auto', 'txt', 'ocr']),
+    help="""\b
+    the method for parsing pdf:
+      auto: Automatically determine the method based on the file type.
+      txt: Use text extraction method.
+      ocr: Use OCR method for image-based PDFs.
+    Without method specified, 'auto' will be used by default.
+    Adapted only for the case where the backend is set to 'pipeline' and 'hybrid-*'.""",
+    default='auto',
+)
+@click.option(
+    '-b',
+    '--backend',
+    'backend',
+    type=click.Choice(['pipeline', 'vlm-http-client', 'hybrid-http-client', 'vlm-auto-engine', 'hybrid-auto-engine',]),
+    help="""\b
+    the backend for parsing pdf:
+      pipeline: More general.
+      vlm-auto-engine: High accuracy via local computing power.
+      vlm-http-client: High accuracy via remote computing power(client suitable for openai-compatible servers).
+      hybrid-auto-engine: Next-generation high accuracy solution via local computing power.
+      hybrid-http-client: High accuracy but requires a little local computing power(client suitable for openai-compatible servers).
+    Without method specified, hybrid-auto-engine will be used by default.""",
+    default='hybrid-auto-engine',
+)
+@click.option(
+    '-l',
+    '--lang',
+    'lang',
+    type=click.Choice(['ch', 'ch_server', 'ch_lite', 'en', 'korean', 'japan', 'chinese_cht', 'ta', 'te', 'ka', 'th', 'el',
+                       'latin', 'arabic', 'east_slavic', 'cyrillic', 'devanagari']),
+    help="""
+    Input the languages in the pdf (if known) to improve OCR accuracy.
+    Without languages specified, 'ch' will be used by default.
+    Adapted only for the case where the backend is set to 'pipeline' and 'hybrid-*'.
+    """,
+    default='ch',
+)
+@click.option(
+    '-u',
+    '--url',
+    'server_url',
+    type=str,
+    help="""
+    When the backend is `<vlm/hybrid>-http-client`, you need to specify the server_url, for example:`http://127.0.0.1:30000`
+    """,
+    default=None,
+)
+@click.option(
+    '-s',
+    '--start',
+    'start_page_id',
+    type=int,
+    help='The starting page for PDF parsing, beginning from 0.',
+    default=0,
+)
+@click.option(
+    '-e',
+    '--end',
+    'end_page_id',
+    type=int,
+    help='The ending page for PDF parsing, beginning from 0.',
+    default=None,
+)
+@click.option(
+    '-f',
+    '--formula',
+    'formula_enable',
+    type=bool,
+    help='Enable formula parsing. Default is True. ',
+    default=True,
+)
+@click.option(
+    '-t',
+    '--table',
+    'table_enable',
+    type=bool,
+    help='Enable table parsing. Default is True. ',
+    default=True,
+)
+@click.option(
+    '-d',
+    '--device',
+    'device_mode',
+    type=str,
+    help="""Device mode for model inference, e.g., "cpu", "cuda", "cuda:0", "npu", "npu:0", "mps".
+         Adapted only for the case where the backend is set to "pipeline". """,
+    default=None,
+)
+@click.option(
+    '--vram',
+    'virtual_vram',
+    type=int,
+    help='Upper limit of GPU memory occupied by a single process. Adapted only for the case where the backend is set to "pipeline". ',
+    default=None,
+)
+@click.option(
+    '--source',
+    'model_source',
+    type=click.Choice(['huggingface', 'modelscope', 'local']),
+    help="""
+    The source of the model repository. Default is 'huggingface'.
+    """,
+    default='huggingface',
+)
+
+
+def main(
+        ctx,
+        input_path, output_dir, method, backend, lang, server_url,
+        start_page_id, end_page_id, formula_enable, table_enable,
+        device_mode, virtual_vram, model_source, **kwargs
+):
+
+    kwargs.update(arg_parse(ctx))
+
+    if not backend.endswith('-client'):
+        def get_device_mode() -> str:
+            if device_mode is not None:
+                return device_mode
+            else:
+                return get_device()
+        if os.getenv('MINERU_DEVICE_MODE', None) is None:
+            os.environ['MINERU_DEVICE_MODE'] = get_device_mode()
+
+        def get_virtual_vram_size() -> int:
+            if virtual_vram is not None:
+                return virtual_vram
+            else:
+                return get_vram(get_device_mode())
+        if os.getenv('MINERU_VIRTUAL_VRAM_SIZE', None) is None:
+            os.environ['MINERU_VIRTUAL_VRAM_SIZE']= str(get_virtual_vram_size())
+
+        if os.getenv('MINERU_MODEL_SOURCE', None) is None:
+            os.environ['MINERU_MODEL_SOURCE'] = model_source
+
+    os.makedirs(output_dir, exist_ok=True)
+
+    def parse_doc(path_list: list[Path]):
+        try:
+            file_name_list = []
+            pdf_bytes_list = []
+            lang_list = []
+            for path in path_list:
+                file_name = str(Path(path).stem)
+                pdf_bytes = read_fn(path)
+                file_name_list.append(file_name)
+                pdf_bytes_list.append(pdf_bytes)
+                lang_list.append(lang)
+            do_parse(
+                output_dir=output_dir,
+                pdf_file_names=file_name_list,
+                pdf_bytes_list=pdf_bytes_list,
+                p_lang_list=lang_list,
+                backend=backend,
+                parse_method=method,
+                formula_enable=formula_enable,
+                table_enable=table_enable,
+                server_url=server_url,
+                start_page_id=start_page_id,
+                end_page_id=end_page_id,
+                **kwargs,
+            )
+        except Exception as e:
+            logger.exception(e)
+
+    if os.path.isdir(input_path):
+        doc_path_list = []
+        for doc_path in Path(input_path).glob('*'):
+            if guess_suffix_by_path(doc_path) in pdf_suffixes + image_suffixes:
+                doc_path_list.append(doc_path)
+        parse_doc(doc_path_list)
+    else:
+        parse_doc([Path(input_path)])
+
+if __name__ == '__main__':
+    main()

+ 571 - 0
mineru/cli/common.py

@@ -0,0 +1,571 @@
+# Copyright (c) Opendatalab. All rights reserved.
+import io
+import json
+import os
+import copy
+from pathlib import Path
+
+from loguru import logger
+import pypdfium2 as pdfium
+
+from mineru.data.data_reader_writer import FileBasedDataWriter
+from mineru.utils.draw_bbox import draw_layout_bbox, draw_span_bbox, draw_line_sort_bbox
+from mineru.utils.engine_utils import get_vlm_engine
+from mineru.utils.enum_class import MakeMode
+from mineru.utils.guess_suffix_or_lang import guess_suffix_by_bytes
+from mineru.utils.pdf_image_tools import images_bytes_to_pdf_bytes
+from mineru.backend.vlm.vlm_middle_json_mkcontent import union_make as vlm_union_make
+from mineru.backend.vlm.vlm_analyze import doc_analyze as vlm_doc_analyze
+from mineru.backend.vlm.vlm_analyze import aio_doc_analyze as aio_vlm_doc_analyze
+from mineru.utils.pdf_page_id import get_end_page_id
+
+if os.getenv("MINERU_LMDEPLOY_DEVICE", "") == "maca":
+    import torch
+    torch.backends.cudnn.enabled = False
+
+
+pdf_suffixes = ["pdf"]
+image_suffixes = ["png", "jpeg", "jp2", "webp", "gif", "bmp", "jpg", "tiff"]
+
+os.environ["TOKENIZERS_PARALLELISM"] = "false"
+
+def read_fn(path):
+    if not isinstance(path, Path):
+        path = Path(path)
+    with open(str(path), "rb") as input_file:
+        file_bytes = input_file.read()
+        file_suffix = guess_suffix_by_bytes(file_bytes, path)
+        if file_suffix in image_suffixes:
+            return images_bytes_to_pdf_bytes(file_bytes)
+        elif file_suffix in pdf_suffixes:
+            return file_bytes
+        else:
+            raise Exception(f"Unknown file suffix: {file_suffix}")
+
+
+def prepare_env(output_dir, pdf_file_name, parse_method):
+    local_md_dir = str(os.path.join(output_dir, pdf_file_name, parse_method))
+    local_image_dir = os.path.join(str(local_md_dir), "images")
+    os.makedirs(local_image_dir, exist_ok=True)
+    os.makedirs(local_md_dir, exist_ok=True)
+    return local_image_dir, local_md_dir
+
+
+def convert_pdf_bytes_to_bytes_by_pypdfium2(pdf_bytes, start_page_id=0, end_page_id=None):
+    pdf = pdfium.PdfDocument(pdf_bytes)
+    output_pdf = pdfium.PdfDocument.new()
+    try:
+        end_page_id = get_end_page_id(end_page_id, len(pdf))
+
+        # 逐页导入,失败则跳过
+        output_index = 0
+        for page_index in range(start_page_id, end_page_id + 1):
+            try:
+                output_pdf.import_pages(pdf, pages=[page_index])
+                output_index += 1
+            except Exception as page_error:
+                output_pdf.del_page(output_index)
+                logger.warning(f"Failed to import page {page_index}: {page_error}, skipping this page.")
+                continue
+
+        # 将新PDF保存到内存缓冲区
+        output_buffer = io.BytesIO()
+        output_pdf.save(output_buffer)
+
+        # 获取字节数据
+        output_bytes = output_buffer.getvalue()
+    except Exception as e:
+        logger.warning(f"Error in converting PDF bytes: {e}, Using original PDF bytes.")
+        output_bytes = pdf_bytes
+    pdf.close()
+    output_pdf.close()
+    return output_bytes
+
+
+def _prepare_pdf_bytes(pdf_bytes_list, start_page_id, end_page_id):
+    """准备处理PDF字节数据"""
+    result = []
+    for pdf_bytes in pdf_bytes_list:
+        new_pdf_bytes = convert_pdf_bytes_to_bytes_by_pypdfium2(pdf_bytes, start_page_id, end_page_id)
+        result.append(new_pdf_bytes)
+    return result
+
+
+def _process_output(
+        pdf_info,
+        pdf_bytes,
+        pdf_file_name,
+        local_md_dir,
+        local_image_dir,
+        md_writer,
+        f_draw_layout_bbox,
+        f_draw_span_bbox,
+        f_dump_orig_pdf,
+        f_dump_md,
+        f_dump_content_list,
+        f_dump_middle_json,
+        f_dump_model_output,
+        f_make_md_mode,
+        middle_json,
+        model_output=None,
+        is_pipeline=True
+):
+    f_draw_line_sort_bbox = False
+    from mineru.backend.pipeline.pipeline_middle_json_mkcontent import union_make as pipeline_union_make
+    """处理输出文件"""
+    if f_draw_layout_bbox:
+        draw_layout_bbox(pdf_info, pdf_bytes, local_md_dir, f"{pdf_file_name}_layout.pdf")
+
+    if f_draw_span_bbox:
+        draw_span_bbox(pdf_info, pdf_bytes, local_md_dir, f"{pdf_file_name}_span.pdf")
+
+    if f_dump_orig_pdf:
+        md_writer.write(
+            f"{pdf_file_name}_origin.pdf",
+            pdf_bytes,
+        )
+
+    if f_draw_line_sort_bbox:
+        draw_line_sort_bbox(pdf_info, pdf_bytes, local_md_dir, f"{pdf_file_name}_line_sort.pdf")
+
+    # image_dir = str(os.path.basename(local_image_dir))
+    # +
+    image_dir = local_image_dir
+
+    if f_dump_md:
+        make_func = pipeline_union_make if is_pipeline else vlm_union_make
+        md_content_str = make_func(pdf_info, f_make_md_mode, image_dir)
+        md_writer.write_string(
+            f"{pdf_file_name}.md",
+            md_content_str,
+        )
+
+    if f_dump_content_list:
+        make_func = pipeline_union_make if is_pipeline else vlm_union_make
+        content_list = make_func(pdf_info, MakeMode.CONTENT_LIST, image_dir)
+        md_writer.write_string(
+            f"{pdf_file_name}_content_list.json",
+            json.dumps(content_list, ensure_ascii=False, indent=4),
+        )
+        if not is_pipeline:
+            content_list_v2 = make_func(pdf_info, MakeMode.CONTENT_LIST_V2, image_dir)
+            md_writer.write_string(
+                f"{pdf_file_name}_content_list_v2.json",
+                json.dumps(content_list_v2, ensure_ascii=False, indent=4),
+            )
+
+
+    if f_dump_middle_json:
+        md_writer.write_string(
+            f"{pdf_file_name}_middle.json",
+            json.dumps(middle_json, ensure_ascii=False, indent=4),
+        )
+
+    if f_dump_model_output:
+        md_writer.write_string(
+            f"{pdf_file_name}_model.json",
+            json.dumps(model_output, ensure_ascii=False, indent=4),
+        )
+
+    logger.info(f"local output dir is {local_md_dir}")
+
+
+def _process_pipeline(
+        output_dir,
+        pdf_file_names,
+        pdf_bytes_list,
+        p_lang_list,
+        parse_method,
+        p_formula_enable,
+        p_table_enable,
+        f_draw_layout_bbox,
+        f_draw_span_bbox,
+        f_dump_md,
+        f_dump_middle_json,
+        f_dump_model_output,
+        f_dump_orig_pdf,
+        f_dump_content_list,
+        f_make_md_mode,
+):
+    """处理pipeline后端逻辑"""
+    from mineru.backend.pipeline.model_json_to_middle_json import result_to_middle_json as pipeline_result_to_middle_json
+    from mineru.backend.pipeline.pipeline_analyze import doc_analyze as pipeline_doc_analyze
+
+    infer_results, all_image_lists, all_pdf_docs, lang_list, ocr_enabled_list = (
+        pipeline_doc_analyze(
+            pdf_bytes_list, p_lang_list, parse_method=parse_method,
+            formula_enable=p_formula_enable, table_enable=p_table_enable
+        )
+    )
+
+    for idx, model_list in enumerate(infer_results):
+        model_json = copy.deepcopy(model_list)
+        pdf_file_name = pdf_file_names[idx]
+        local_image_dir, local_md_dir = prepare_env(output_dir, pdf_file_name, parse_method)
+        image_writer, md_writer = FileBasedDataWriter(local_image_dir), FileBasedDataWriter(local_md_dir)
+
+        images_list = all_image_lists[idx]
+        pdf_doc = all_pdf_docs[idx]
+        _lang = lang_list[idx]
+        _ocr_enable = ocr_enabled_list[idx]
+
+        middle_json = pipeline_result_to_middle_json(
+            model_list, images_list, pdf_doc, image_writer,
+            _lang, _ocr_enable, p_formula_enable
+        )
+
+        pdf_info = middle_json["pdf_info"]
+        pdf_bytes = pdf_bytes_list[idx]
+
+        _process_output(
+            pdf_info, pdf_bytes, pdf_file_name, local_md_dir, local_image_dir,
+            md_writer, f_draw_layout_bbox, f_draw_span_bbox, f_dump_orig_pdf,
+            f_dump_md, f_dump_content_list, f_dump_middle_json, f_dump_model_output,
+            f_make_md_mode, middle_json, model_json, is_pipeline=True
+        )
+
+
+async def _async_process_vlm(
+        output_dir,
+        pdf_file_names,
+        pdf_bytes_list,
+        backend,
+        f_draw_layout_bbox,
+        f_draw_span_bbox,
+        f_dump_md,
+        f_dump_middle_json,
+        f_dump_model_output,
+        f_dump_orig_pdf,
+        f_dump_content_list,
+        f_make_md_mode,
+        server_url=None,
+        **kwargs,
+):
+    """异步处理VLM后端逻辑"""
+    parse_method = "vlm"
+    f_draw_span_bbox = False
+    if not backend.endswith("client"):
+        server_url = None
+
+    for idx, pdf_bytes in enumerate(pdf_bytes_list):
+        pdf_file_name = pdf_file_names[idx]
+        local_image_dir, local_md_dir = prepare_env(output_dir, pdf_file_name, parse_method)
+        image_writer, md_writer = FileBasedDataWriter(local_image_dir), FileBasedDataWriter(local_md_dir)
+
+        middle_json, infer_result = await aio_vlm_doc_analyze(
+            pdf_bytes, image_writer=image_writer, backend=backend, server_url=server_url, **kwargs,
+        )
+
+        pdf_info = middle_json["pdf_info"]
+
+        _process_output(
+            pdf_info, pdf_bytes, pdf_file_name, local_md_dir, local_image_dir,
+            md_writer, f_draw_layout_bbox, f_draw_span_bbox, f_dump_orig_pdf,
+            f_dump_md, f_dump_content_list, f_dump_middle_json, f_dump_model_output,
+            f_make_md_mode, middle_json, infer_result, is_pipeline=False
+        )
+
+
+def _process_vlm(
+        output_dir,
+        pdf_file_names,
+        pdf_bytes_list,
+        backend,
+        f_draw_layout_bbox,
+        f_draw_span_bbox,
+        f_dump_md,
+        f_dump_middle_json,
+        f_dump_model_output,
+        f_dump_orig_pdf,
+        f_dump_content_list,
+        f_make_md_mode,
+        server_url=None,
+        **kwargs,
+):
+    """同步处理VLM后端逻辑"""
+    parse_method = "vlm"
+    f_draw_span_bbox = False
+    if not backend.endswith("client"):
+        server_url = None
+
+    for idx, pdf_bytes in enumerate(pdf_bytes_list):
+        pdf_file_name = pdf_file_names[idx]
+        local_image_dir, local_md_dir = prepare_env(output_dir, pdf_file_name, parse_method)
+        image_writer, md_writer = FileBasedDataWriter(local_image_dir), FileBasedDataWriter(local_md_dir)
+
+        middle_json, infer_result = vlm_doc_analyze(
+            pdf_bytes, image_writer=image_writer, backend=backend, server_url=server_url, **kwargs,
+        )
+
+        pdf_info = middle_json["pdf_info"]
+
+        _process_output(
+            pdf_info, pdf_bytes, pdf_file_name, local_md_dir, local_image_dir,
+            md_writer, f_draw_layout_bbox, f_draw_span_bbox, f_dump_orig_pdf,
+            f_dump_md, f_dump_content_list, f_dump_middle_json, f_dump_model_output,
+            f_make_md_mode, middle_json, infer_result, is_pipeline=False
+        )
+
+
+def _process_hybrid(
+        output_dir,
+        pdf_file_names,
+        pdf_bytes_list,
+        h_lang_list,
+        parse_method,
+        inline_formula_enable,
+        backend,
+        f_draw_layout_bbox,
+        f_draw_span_bbox,
+        f_dump_md,
+        f_dump_middle_json,
+        f_dump_model_output,
+        f_dump_orig_pdf,
+        f_dump_content_list,
+        f_make_md_mode,
+        server_url=None,
+        **kwargs,
+):
+    from mineru.backend.hybrid.hybrid_analyze import doc_analyze as hybrid_doc_analyze
+    """同步处理hybrid后端逻辑"""
+    if not backend.endswith("client"):
+        server_url = None
+
+    for idx, (pdf_bytes, lang) in enumerate(zip(pdf_bytes_list, h_lang_list)):
+        pdf_file_name = pdf_file_names[idx]
+        local_image_dir, local_md_dir = prepare_env(output_dir, pdf_file_name, f"hybrid_{parse_method}")
+        image_writer, md_writer = FileBasedDataWriter(local_image_dir), FileBasedDataWriter(local_md_dir)
+
+        middle_json, infer_result, _vlm_ocr_enable = hybrid_doc_analyze(
+            pdf_bytes,
+            image_writer=image_writer,
+            backend=backend,
+            parse_method=parse_method,
+            language=lang,
+            inline_formula_enable=inline_formula_enable,
+            server_url=server_url,
+            **kwargs,
+        )
+
+        pdf_info = middle_json["pdf_info"]
+
+        # f_draw_span_bbox = not _vlm_ocr_enable
+        f_draw_span_bbox = False
+
+        _process_output(
+            pdf_info, pdf_bytes, pdf_file_name, local_md_dir, local_image_dir,
+            md_writer, f_draw_layout_bbox, f_draw_span_bbox, f_dump_orig_pdf,
+            f_dump_md, f_dump_content_list, f_dump_middle_json, f_dump_model_output,
+            f_make_md_mode, middle_json, infer_result, is_pipeline=False
+        )
+
+
+async def _async_process_hybrid(
+        output_dir,
+        pdf_file_names,
+        pdf_bytes_list,
+        h_lang_list,
+        parse_method,
+        inline_formula_enable,
+        backend,
+        f_draw_layout_bbox,
+        f_draw_span_bbox,
+        f_dump_md,
+        f_dump_middle_json,
+        f_dump_model_output,
+        f_dump_orig_pdf,
+        f_dump_content_list,
+        f_make_md_mode,
+        server_url=None,
+        **kwargs,
+):
+    from mineru.backend.hybrid.hybrid_analyze import aio_doc_analyze as aio_hybrid_doc_analyze
+    """异步处理hybrid后端逻辑"""
+    if not backend.endswith("client"):
+        server_url = None
+
+    for idx, (pdf_bytes, lang) in enumerate(zip(pdf_bytes_list, h_lang_list)):
+        pdf_file_name = pdf_file_names[idx]
+        local_image_dir, local_md_dir = prepare_env(output_dir, pdf_file_name, f"hybrid_{parse_method}")
+        image_writer, md_writer = FileBasedDataWriter(local_image_dir), FileBasedDataWriter(local_md_dir)
+
+        middle_json, infer_result, _vlm_ocr_enable = await aio_hybrid_doc_analyze(
+            pdf_bytes,
+            image_writer=image_writer,
+            backend=backend,
+            parse_method=parse_method,
+            language=lang,
+            inline_formula_enable=inline_formula_enable,
+            server_url=server_url,
+            **kwargs,
+        )
+
+        pdf_info = middle_json["pdf_info"]
+
+        # f_draw_span_bbox = not _vlm_ocr_enable
+        f_draw_span_bbox = False
+
+        _process_output(
+            pdf_info, pdf_bytes, pdf_file_name, local_md_dir, local_image_dir,
+            md_writer, f_draw_layout_bbox, f_draw_span_bbox, f_dump_orig_pdf,
+            f_dump_md, f_dump_content_list, f_dump_middle_json, f_dump_model_output,
+            f_make_md_mode, middle_json, infer_result, is_pipeline=False
+        )
+
+
+def do_parse(
+        output_dir,
+        pdf_file_names: list[str],
+        pdf_bytes_list: list[bytes],
+        p_lang_list: list[str],
+        backend="pipeline",
+        parse_method="auto",
+        formula_enable=True,
+        table_enable=True,
+        server_url=None,
+        f_draw_layout_bbox=True,
+        f_draw_span_bbox=True,
+        f_dump_md=True,
+        f_dump_middle_json=True,
+        f_dump_model_output=True,
+        f_dump_orig_pdf=True,
+        f_dump_content_list=True,
+        f_make_md_mode=MakeMode.MM_MD,
+        start_page_id=0,
+        end_page_id=None,
+        **kwargs,
+):
+    # 预处理PDF字节数据
+    pdf_bytes_list = _prepare_pdf_bytes(pdf_bytes_list, start_page_id, end_page_id)
+
+    if backend == "pipeline":
+        _process_pipeline(
+            output_dir, pdf_file_names, pdf_bytes_list, p_lang_list,
+            parse_method, formula_enable, table_enable,
+            f_draw_layout_bbox, f_draw_span_bbox, f_dump_md, f_dump_middle_json,
+            f_dump_model_output, f_dump_orig_pdf, f_dump_content_list, f_make_md_mode
+        )
+    else:
+        if backend.startswith("vlm-"):
+            backend = backend[4:]
+
+            if backend == "vllm-async-engine":
+                raise Exception("vlm-vllm-async-engine backend is not supported in sync mode, please use vlm-vllm-engine backend")
+
+            if backend == "auto-engine":
+                backend = get_vlm_engine(inference_engine='auto', is_async=False)
+
+            os.environ['MINERU_VLM_FORMULA_ENABLE'] = str(formula_enable)
+            os.environ['MINERU_VLM_TABLE_ENABLE'] = str(table_enable)
+
+            _process_vlm(
+                output_dir, pdf_file_names, pdf_bytes_list, backend,
+                f_draw_layout_bbox, f_draw_span_bbox, f_dump_md, f_dump_middle_json,
+                f_dump_model_output, f_dump_orig_pdf, f_dump_content_list, f_make_md_mode,
+                server_url, **kwargs,
+            )
+        elif backend.startswith("hybrid-"):
+            backend = backend[7:]
+
+            if backend == "vllm-async-engine":
+                raise Exception(
+                    "hybrid-vllm-async-engine backend is not supported in sync mode, please use hybrid-vllm-engine backend")
+
+            if backend == "auto-engine":
+                backend = get_vlm_engine(inference_engine='auto', is_async=False)
+
+            os.environ['MINERU_VLM_TABLE_ENABLE'] = str(table_enable)
+            os.environ['MINERU_VLM_FORMULA_ENABLE'] = "true"
+
+            _process_hybrid(
+                output_dir, pdf_file_names, pdf_bytes_list, p_lang_list, parse_method, formula_enable, backend,
+                f_draw_layout_bbox, f_draw_span_bbox, f_dump_md, f_dump_middle_json,
+                f_dump_model_output, f_dump_orig_pdf, f_dump_content_list, f_make_md_mode,
+                server_url, **kwargs,
+            )
+
+
+async def aio_do_parse(
+        output_dir,
+        pdf_file_names: list[str],
+        pdf_bytes_list: list[bytes],
+        p_lang_list: list[str],
+        backend="pipeline",
+        parse_method="auto",
+        formula_enable=True,
+        table_enable=True,
+        server_url=None,
+        f_draw_layout_bbox=True,
+        f_draw_span_bbox=True,
+        f_dump_md=True,
+        f_dump_middle_json=True,
+        f_dump_model_output=True,
+        f_dump_orig_pdf=True,
+        f_dump_content_list=True,
+        f_make_md_mode=MakeMode.MM_MD,
+        start_page_id=0,
+        end_page_id=None,
+        **kwargs,
+):
+    # 预处理PDF字节数据
+    pdf_bytes_list = _prepare_pdf_bytes(pdf_bytes_list, start_page_id, end_page_id)
+
+    if backend == "pipeline":
+        # pipeline模式暂不支持异步,使用同步处理方式
+        _process_pipeline(
+            output_dir, pdf_file_names, pdf_bytes_list, p_lang_list,
+            parse_method, formula_enable, table_enable,
+            f_draw_layout_bbox, f_draw_span_bbox, f_dump_md, f_dump_middle_json,
+            f_dump_model_output, f_dump_orig_pdf, f_dump_content_list, f_make_md_mode
+        )
+    else:
+        if backend.startswith("vlm-"):
+            backend = backend[4:]
+
+            if backend == "vllm-engine":
+                raise Exception("vlm-vllm-engine backend is not supported in async mode, please use vlm-vllm-async-engine backend")
+
+            if backend == "auto-engine":
+                backend = get_vlm_engine(inference_engine='auto', is_async=True)
+
+            os.environ['MINERU_VLM_FORMULA_ENABLE'] = str(formula_enable)
+            os.environ['MINERU_VLM_TABLE_ENABLE'] = str(table_enable)
+
+            await _async_process_vlm(
+                output_dir, pdf_file_names, pdf_bytes_list, backend,
+                f_draw_layout_bbox, f_draw_span_bbox, f_dump_md, f_dump_middle_json,
+                f_dump_model_output, f_dump_orig_pdf, f_dump_content_list, f_make_md_mode,
+                server_url, **kwargs,
+            )
+        elif backend.startswith("hybrid-"):
+            backend = backend[7:]
+
+            if backend == "vllm-engine":
+                raise Exception("hybrid-vllm-engine backend is not supported in async mode, please use hybrid-vllm-async-engine backend")
+
+            if backend == "auto-engine":
+                backend = get_vlm_engine(inference_engine='auto', is_async=True)
+
+            os.environ['MINERU_VLM_TABLE_ENABLE'] = str(table_enable)
+            os.environ['MINERU_VLM_FORMULA_ENABLE'] = "true"
+
+            await _async_process_hybrid(
+                output_dir, pdf_file_names, pdf_bytes_list, p_lang_list, parse_method, formula_enable, backend,
+                f_draw_layout_bbox, f_draw_span_bbox, f_dump_md, f_dump_middle_json,
+                f_dump_model_output, f_dump_orig_pdf, f_dump_content_list, f_make_md_mode,
+                server_url, **kwargs,
+            )
+
+
+if __name__ == "__main__":
+    # pdf_path = "../../demo/pdfs/demo3.pdf"
+    pdf_path = "C:/Users/zhaoxiaomeng/Downloads/4546d0e2-ba60-40a5-a17e-b68555cec741.pdf"
+
+    try:
+       do_parse("./output", [Path(pdf_path).stem], [read_fn(Path(pdf_path))],["ch"],
+                end_page_id=10,
+                backend='vlm-huggingface'
+                # backend = 'pipeline'
+                )
+    except Exception as e:
+        logger.exception(e)

+ 371 - 0
mineru/cli/fast_api.py

@@ -0,0 +1,371 @@
+import sys
+import uuid
+import os
+import re
+import tempfile
+import asyncio
+import uvicorn
+import click
+import zipfile
+from pathlib import Path
+import glob
+from fastapi import Depends, FastAPI, HTTPException, UploadFile, File, Form
+from fastapi.middleware.gzip import GZipMiddleware
+from fastapi.responses import JSONResponse, FileResponse
+from starlette.background import BackgroundTask
+from typing import List, Optional
+from loguru import logger
+
+log_level = os.getenv("MINERU_LOG_LEVEL", "INFO").upper()
+logger.remove()  # 移除默认handler
+logger.add(sys.stderr, level=log_level)  # 添加新handler
+
+from base64 import b64encode
+
+from mineru.cli.common import aio_do_parse, read_fn, pdf_suffixes, image_suffixes
+from mineru.utils.cli_parser import arg_parse
+from mineru.utils.guess_suffix_or_lang import guess_suffix_by_path
+from mineru.version import __version__
+
+# 并发控制器
+_request_semaphore: Optional[asyncio.Semaphore] = None
+
+# 并发控制依赖函数
+async def limit_concurrency():
+    if _request_semaphore is not None:
+        if _request_semaphore.locked():
+            raise HTTPException(
+                status_code=503,
+                detail=f"Server is at maximum capacity: {os.getenv('MINERU_API_MAX_CONCURRENT_REQUESTS', 'unset')}. Please try again later."
+            )
+        async with _request_semaphore:
+            yield
+    else:
+        yield
+
+def create_app():
+    # By default, the OpenAPI documentation endpoints (openapi_url, docs_url, redoc_url) are enabled.
+    # To disable the FastAPI docs and schema endpoints, set the environment variable MINERU_API_ENABLE_FASTAPI_DOCS=0.
+    enable_docs = str(os.getenv("MINERU_API_ENABLE_FASTAPI_DOCS", "1")).lower() in ("1", "true", "yes")
+    app = FastAPI(
+        openapi_url="/openapi.json" if enable_docs else None,
+        docs_url="/docs" if enable_docs else None,
+        redoc_url="/redoc" if enable_docs else None,
+    )
+
+    # 初始化并发控制器:从环境变量MINERU_API_MAX_CONCURRENT_REQUESTS读取
+    global _request_semaphore
+    try:
+        max_concurrent_requests = int(os.getenv("MINERU_API_MAX_CONCURRENT_REQUESTS", "0"))
+    except ValueError:
+        max_concurrent_requests = 0
+
+    if max_concurrent_requests > 0:
+        _request_semaphore = asyncio.Semaphore(max_concurrent_requests)
+        logger.info(f"Request concurrency limited to {max_concurrent_requests}")
+
+    app.add_middleware(GZipMiddleware, minimum_size=1000)
+    return app
+
+app = create_app()
+
+
+def sanitize_filename(filename: str) -> str:
+    """
+    格式化压缩文件的文件名
+    移除路径遍历字符, 保留 Unicode 字母、数字、._-
+    禁止隐藏文件
+    """
+    sanitized = re.sub(r'[/\\\.]{2,}|[/\\]', '', filename)
+    sanitized = re.sub(r'[^\w.-]', '_', sanitized, flags=re.UNICODE)
+    if sanitized.startswith('.'):
+        sanitized = '_' + sanitized[1:]
+    return sanitized or 'unnamed'
+
+def cleanup_file(file_path: str) -> None:
+    """清理临时 zip 文件"""
+    try:
+        if os.path.exists(file_path):
+            os.remove(file_path)
+    except Exception as e:
+        logger.warning(f"fail clean file {file_path}: {e}")
+
+def encode_image(image_path: str) -> str:
+    """Encode image using base64"""
+    with open(image_path, "rb") as f:
+        return b64encode(f.read()).decode()
+
+
+def get_infer_result(file_suffix_identifier: str, pdf_name: str, parse_dir: str) -> Optional[str]:
+    """从结果文件中读取推理结果"""
+    result_file_path = os.path.join(parse_dir, f"{pdf_name}{file_suffix_identifier}")
+    if os.path.exists(result_file_path):
+        with open(result_file_path, "r", encoding="utf-8") as fp:
+            return fp.read()
+    return None
+
+
+@app.post(path="/file_parse", dependencies=[Depends(limit_concurrency)])
+async def parse_pdf(
+        files: List[UploadFile] = File(..., description="Upload pdf or image files for parsing"),
+        output_dir: str = Form("./output", description="Output local directory"),
+        lang_list: List[str] = Form(
+            ["ch"],
+            description="""(Adapted only for pipeline and hybrid backend)Input the languages in the pdf to improve OCR accuracy.Options:
+- ch: Chinese, English, Chinese Traditional.
+- ch_lite: Chinese, English, Chinese Traditional, Japanese.
+- ch_server: Chinese, English, Chinese Traditional, Japanese.
+- en: English.
+- korean: Korean, English.
+- japan: Chinese, English, Chinese Traditional, Japanese.
+- chinese_cht: Chinese, English, Chinese Traditional, Japanese.
+- ta: Tamil, English.
+- te: Telugu, English.
+- ka: Kannada.
+- th: Thai, English.
+- el: Greek, English.
+- latin: French, German, Afrikaans, Italian, Spanish, Bosnian, Portuguese, Czech, Welsh, Danish, Estonian, Irish, Croatian, Uzbek, Hungarian, Serbian (Latin), Indonesian, Occitan, Icelandic, Lithuanian, Maori, Malay, Dutch, Norwegian, Polish, Slovak, Slovenian, Albanian, Swedish, Swahili, Tagalog, Turkish, Latin, Azerbaijani, Kurdish, Latvian, Maltese, Pali, Romanian, Vietnamese, Finnish, Basque, Galician, Luxembourgish, Romansh, Catalan, Quechua.
+- arabic: Arabic, Persian, Uyghur, Urdu, Pashto, Kurdish, Sindhi, Balochi, English.
+- east_slavic: Russian, Belarusian, Ukrainian, English.
+- cyrillic: Russian, Belarusian, Ukrainian, Serbian (Cyrillic), Bulgarian, Mongolian, Abkhazian, Adyghe, Kabardian, Avar, Dargin, Ingush, Chechen, Lak, Lezgin, Tabasaran, Kazakh, Kyrgyz, Tajik, Macedonian, Tatar, Chuvash, Bashkir, Malian, Moldovan, Udmurt, Komi, Ossetian, Buryat, Kalmyk, Tuvan, Sakha, Karakalpak, English.
+- devanagari: Hindi, Marathi, Nepali, Bihari, Maithili, Angika, Bhojpuri, Magahi, Santali, Newari, Konkani, Sanskrit, Haryanvi, English.
+"""
+        ),
+        backend: str = Form(
+            "hybrid-auto-engine",
+            description="""The backend for parsing:
+- pipeline: More general, supports multiple languages, hallucination-free.
+- vlm-auto-engine: High accuracy via local computing power, supports Chinese and English documents only.
+- vlm-http-client: High accuracy via remote computing power(client suitable for openai-compatible servers), supports Chinese and English documents only.
+- hybrid-auto-engine: Next-generation high accuracy solution via local computing power, supports multiple languages.
+- hybrid-http-client: High accuracy via remote computing power but requires a little local computing power(client suitable for openai-compatible servers), supports multiple languages."""
+        ),
+        parse_method: str = Form(
+            "auto",
+            description="""(Adapted only for pipeline and hybrid backend)The method for parsing PDF:
+- auto: Automatically determine the method based on the file type
+- txt: Use text extraction method
+- ocr: Use OCR method for image-based PDFs
+"""
+        ),
+        formula_enable: bool = Form(True, description="Enable formula parsing."),
+        table_enable: bool = Form(True, description="Enable table parsing."),
+        server_url: Optional[str] = Form(
+            None,
+            description="(Adapted only for <vlm/hybrid>-http-client backend)openai compatible server url, e.g., http://127.0.0.1:30000"
+        ),
+        return_md: bool = Form(True, description="Return markdown content in response"),
+        return_middle_json: bool = Form(False, description="Return middle JSON in response"),
+        return_model_output: bool = Form(False, description="Return model output JSON in response"),
+        return_content_list: bool = Form(False, description="Return content list JSON in response"),
+        return_images: bool = Form(False, description="Return extracted images in response"),
+        response_format_zip: bool = Form(False, description="Return results as a ZIP file instead of JSON"),
+        start_page_id: int = Form(0, description="The starting page for PDF parsing, beginning from 0"),
+        end_page_id: int = Form(99999, description="The ending page for PDF parsing, beginning from 0"),
+):
+
+    # 获取命令行配置参数
+    config = getattr(app.state, "config", {})
+
+    try:
+        # 创建唯一的输出目录
+        unique_dir = os.path.join(output_dir, str(uuid.uuid4()))
+        os.makedirs(unique_dir, exist_ok=True)
+
+        # 处理上传的PDF文件
+        pdf_file_names = []
+        pdf_bytes_list = []
+
+        for file in files:
+            content = await file.read()
+            file_path = Path(file.filename)
+
+            # 创建临时文件
+            temp_path = Path(unique_dir) / file_path.name
+            with open(temp_path, "wb") as f:
+                f.write(content)
+
+            # 如果是图像文件或PDF,使用read_fn处理
+            file_suffix = guess_suffix_by_path(temp_path)
+            if file_suffix in pdf_suffixes + image_suffixes:
+                try:
+                    pdf_bytes = read_fn(temp_path)
+                    pdf_bytes_list.append(pdf_bytes)
+                    pdf_file_names.append(file_path.stem)
+                    os.remove(temp_path)  # 删除临时文件
+                except Exception as e:
+                    return JSONResponse(
+                        status_code=400,
+                        content={"error": f"Failed to load file: {str(e)}"}
+                    )
+            else:
+                return JSONResponse(
+                    status_code=400,
+                    content={"error": f"Unsupported file type: {file_suffix}"}
+                )
+
+
+        # 设置语言列表,确保与文件数量一致
+        actual_lang_list = lang_list
+        if len(actual_lang_list) != len(pdf_file_names):
+            # 如果语言列表长度不匹配,使用第一个语言或默认"ch"
+            actual_lang_list = [actual_lang_list[0] if actual_lang_list else "ch"] * len(pdf_file_names)
+
+        # 调用异步处理函数
+        await aio_do_parse(
+            output_dir=unique_dir,
+            pdf_file_names=pdf_file_names,
+            pdf_bytes_list=pdf_bytes_list,
+            p_lang_list=actual_lang_list,
+            backend=backend,
+            parse_method=parse_method,
+            formula_enable=formula_enable,
+            table_enable=table_enable,
+            server_url=server_url,
+            f_draw_layout_bbox=False,
+            f_draw_span_bbox=False,
+            f_dump_md=return_md,
+            f_dump_middle_json=return_middle_json,
+            f_dump_model_output=return_model_output,
+            f_dump_orig_pdf=False,
+            f_dump_content_list=return_content_list,
+            start_page_id=start_page_id,
+            end_page_id=end_page_id,
+            **config
+        )
+
+        # 根据 response_format_zip 决定返回类型
+        if response_format_zip:
+            zip_fd, zip_path = tempfile.mkstemp(suffix=".zip", prefix="mineru_results_")
+            os.close(zip_fd)
+            with zipfile.ZipFile(zip_path, "w", compression=zipfile.ZIP_DEFLATED) as zf:
+                for pdf_name in pdf_file_names:
+                    safe_pdf_name = sanitize_filename(pdf_name)
+
+                    if backend.startswith("pipeline"):
+                        parse_dir = os.path.join(unique_dir, pdf_name, parse_method)
+                    elif backend.startswith("vlm"):
+                        parse_dir = os.path.join(unique_dir, pdf_name, "vlm")
+                    elif backend.startswith("hybrid"):
+                        parse_dir = os.path.join(unique_dir, pdf_name, f"hybrid_{parse_method}")
+
+                    if not os.path.exists(parse_dir):
+                        continue
+
+                    # 写入文本类结果
+                    if return_md:
+                        path = os.path.join(parse_dir, f"{pdf_name}.md")
+                        if os.path.exists(path):
+                            zf.write(path, arcname=os.path.join(safe_pdf_name, f"{safe_pdf_name}.md"))
+
+                    if return_middle_json:
+                        path = os.path.join(parse_dir, f"{pdf_name}_middle.json")
+                        if os.path.exists(path):
+                            zf.write(path, arcname=os.path.join(safe_pdf_name, f"{safe_pdf_name}_middle.json"))
+
+                    if return_model_output:
+                        path = os.path.join(parse_dir, f"{pdf_name}_model.json")
+                        if os.path.exists(path):
+                            zf.write(path, arcname=os.path.join(safe_pdf_name, os.path.basename(path)))
+
+                    if return_content_list:
+                        path = os.path.join(parse_dir, f"{pdf_name}_content_list.json")
+                        if os.path.exists(path):
+                            zf.write(path, arcname=os.path.join(safe_pdf_name, f"{safe_pdf_name}_content_list.json"))
+
+                    # 写入图片
+                    if return_images:
+                        images_dir = os.path.join(parse_dir, "images")
+                        image_paths = glob.glob(os.path.join(glob.escape(images_dir), "*.jpg"))
+                        for image_path in image_paths:
+                            zf.write(image_path, arcname=os.path.join(safe_pdf_name, "images", os.path.basename(image_path)))
+
+            return FileResponse(
+                path=zip_path,
+                media_type="application/zip",
+                filename="results.zip",
+                background=BackgroundTask(cleanup_file, zip_path)
+            )
+        else:
+            # 构建 JSON 结果
+            result_dict = {}
+            for pdf_name in pdf_file_names:
+                result_dict[pdf_name] = {}
+                data = result_dict[pdf_name]
+
+                if backend.startswith("pipeline"):
+                    parse_dir = os.path.join(unique_dir, pdf_name, parse_method)
+                elif backend.startswith("vlm"):
+                    parse_dir = os.path.join(unique_dir, pdf_name, "vlm")
+                elif backend.startswith("hybrid"):
+                    parse_dir = os.path.join(unique_dir, pdf_name, f"hybrid_{parse_method}")
+
+                if os.path.exists(parse_dir):
+                    if return_md:
+                        data["md_content"] = get_infer_result(".md", pdf_name, parse_dir)
+                    if return_middle_json:
+                        data["middle_json"] = get_infer_result("_middle.json", pdf_name, parse_dir)
+                    if return_model_output:
+                        data["model_output"] = get_infer_result("_model.json", pdf_name, parse_dir)
+                    if return_content_list:
+                        data["content_list"] = get_infer_result("_content_list.json", pdf_name, parse_dir)
+                    if return_images:
+                        images_dir = os.path.join(parse_dir, "images")
+                        safe_pattern = os.path.join(glob.escape(images_dir), "*.jpg")
+                        image_paths = glob.glob(safe_pattern)
+                        data["images"] = {
+                            os.path.basename(
+                                image_path
+                            ): f"data:image/jpeg;base64,{encode_image(image_path)}"
+                            for image_path in image_paths
+                        }
+
+            return JSONResponse(
+                status_code=200,
+                content={
+                    "backend": backend,
+                    "version": __version__,
+                    "results": result_dict
+                }
+            )
+    except Exception as e:
+        logger.exception(e)
+        return JSONResponse(
+            status_code=500,
+            content={"error": f"Failed to process file: {str(e)}"}
+        )
+
+
+@click.command(context_settings=dict(ignore_unknown_options=True, allow_extra_args=True))
+@click.pass_context
+@click.option('--host', default='127.0.0.1', help='Server host (default: 127.0.0.1)')
+@click.option('--port', default=8000, type=int, help='Server port (default: 8000)')
+@click.option('--reload', is_flag=True, help='Enable auto-reload (development mode)')
+def main(ctx, host, port, reload, **kwargs):
+
+    kwargs.update(arg_parse(ctx))
+
+    # 将配置参数存储到应用状态中
+    app.state.config = kwargs
+
+    # 将 CLI 的并发参数同步到环境变量,确保 uvicorn 重载子进程可见
+    try:
+        mcr = int(kwargs.get("mineru_api_max_concurrent_requests", 0) or 0)
+    except ValueError:
+        mcr = 0
+    os.environ["MINERU_API_MAX_CONCURRENT_REQUESTS"] = str(mcr)
+
+    """启动MinerU FastAPI服务器的命令行入口"""
+    print(f"Start MinerU FastAPI Service: http://{host}:{port}")
+    print(f"API documentation: http://{host}:{port}/docs")
+
+    uvicorn.run(
+        "mineru.cli.fast_api:app",
+        host=host,
+        port=port,
+        reload=reload
+    )
+
+
+if __name__ == "__main__":
+    main()

+ 506 - 0
mineru/cli/gradio_app.py

@@ -0,0 +1,506 @@
+# Copyright (c) Opendatalab. All rights reserved.
+
+import base64
+import os
+import re
+import sys
+import time
+import zipfile
+from pathlib import Path
+
+import click
+import gradio as gr
+from gradio_pdf import PDF
+from loguru import logger
+
+log_level = os.getenv("MINERU_LOG_LEVEL", "INFO").upper()
+logger.remove()  # 移除默认handler
+logger.add(sys.stderr, level=log_level)  # 添加新handler
+
+from mineru.cli.common import prepare_env, read_fn, aio_do_parse, pdf_suffixes, image_suffixes
+from mineru.utils.cli_parser import arg_parse
+from mineru.utils.engine_utils import get_vlm_engine
+from mineru.utils.hash_utils import str_sha256
+
+
+async def parse_pdf(doc_path, output_dir, end_page_id, is_ocr, formula_enable, table_enable, language, backend, url):
+    os.makedirs(output_dir, exist_ok=True)
+
+    try:
+        file_name = f'{safe_stem(Path(doc_path).stem)}_{time.strftime("%y%m%d_%H%M%S")}'
+        pdf_data = read_fn(doc_path)
+        # 根据 backend 确定 parse_method
+        if backend.startswith("vlm"):
+            parse_method = "vlm"
+        else:
+            parse_method = 'ocr' if is_ocr else 'auto'
+
+        # 根据 backend 类型准备环境目录
+        if backend.startswith("hybrid"):
+            env_name = f"hybrid_{parse_method}"
+        else:
+            env_name = parse_method
+
+        local_image_dir, local_md_dir = prepare_env(output_dir, file_name, env_name)
+
+        await aio_do_parse(
+            output_dir=output_dir,
+            pdf_file_names=[file_name],
+            pdf_bytes_list=[pdf_data],
+            p_lang_list=[language],
+            parse_method=parse_method,
+            end_page_id=end_page_id,
+            formula_enable=formula_enable,
+            table_enable=table_enable,
+            backend=backend,
+            server_url=url,
+        )
+        return local_md_dir, file_name
+    except Exception as e:
+        logger.exception(e)
+        return None
+
+
+def compress_directory_to_zip(directory_path, output_zip_path):
+    """压缩指定目录到一个 ZIP 文件。
+
+    :param directory_path: 要压缩的目录路径
+    :param output_zip_path: 输出的 ZIP 文件路径
+    """
+    try:
+        with zipfile.ZipFile(output_zip_path, 'w', zipfile.ZIP_DEFLATED) as zipf:
+
+            # 遍历目录中的所有文件和子目录
+            for root, dirs, files in os.walk(directory_path):
+                for file in files:
+                    # 构建完整的文件路径
+                    file_path = os.path.join(root, file)
+                    # 计算相对路径
+                    arcname = os.path.relpath(file_path, directory_path)
+                    # 添加文件到 ZIP 文件
+                    zipf.write(file_path, arcname)
+        return 0
+    except Exception as e:
+        logger.exception(e)
+        return -1
+
+
+def image_to_base64(image_path):
+    with open(image_path, 'rb') as image_file:
+        return base64.b64encode(image_file.read()).decode('utf-8')
+
+
+def replace_image_with_base64(markdown_text, image_dir_path):
+    # 匹配Markdown中的图片标签
+    pattern = r'\!\[(?:[^\]]*)\]\(([^)]+)\)'
+
+    # 替换图片链接
+    def replace(match):
+        relative_path = match.group(1)
+        # 只处理以.jpg结尾的图片
+        if relative_path.endswith('.jpg'):
+            full_path = os.path.join(image_dir_path, relative_path)
+            base64_image = image_to_base64(full_path)
+            return f'![{relative_path}](data:image/jpeg;base64,{base64_image})'
+        else:
+            # 其他格式的图片保持原样
+            return match.group(0)
+    # 应用替换
+    return re.sub(pattern, replace, markdown_text)
+
+
+async def to_markdown(file_path, end_pages=10, is_ocr=False, formula_enable=True, table_enable=True, language="ch", backend="pipeline", url=None):
+    # 如果language包含(),则提取括号前的内容作为实际语言
+    if '(' in language and ')' in language:
+        language = language.split('(')[0].strip()
+    file_path = to_pdf(file_path)
+    # 获取识别的md文件以及压缩包文件路径
+    local_md_dir, file_name = await parse_pdf(file_path, './output', end_pages - 1, is_ocr, formula_enable, table_enable, language, backend, url)
+    archive_zip_path = os.path.join('./output', str_sha256(local_md_dir) + '.zip')
+    zip_archive_success = compress_directory_to_zip(local_md_dir, archive_zip_path)
+    if zip_archive_success == 0:
+        logger.info('Compression successful')
+    else:
+        logger.error('Compression failed')
+    md_path = os.path.join(local_md_dir, file_name + '.md')
+    with open(md_path, 'r', encoding='utf-8') as f:
+        txt_content = f.read()
+    md_content = replace_image_with_base64(txt_content, local_md_dir)
+    # 返回转换后的PDF路径
+    new_pdf_path = os.path.join(local_md_dir, file_name + '_layout.pdf')
+
+    return md_content, txt_content, archive_zip_path, new_pdf_path
+
+
+latex_delimiters_type_a = [
+    {'left': '$$', 'right': '$$', 'display': True},
+    {'left': '$', 'right': '$', 'display': False},
+]
+latex_delimiters_type_b = [
+    {'left': '\\(', 'right': '\\)', 'display': False},
+    {'left': '\\[', 'right': '\\]', 'display': True},
+]
+latex_delimiters_type_all = latex_delimiters_type_a + latex_delimiters_type_b
+
+header_path = os.path.join(os.path.dirname(os.path.dirname(__file__)), 'resources', 'header.html')
+with open(header_path, mode='r', encoding='utf-8') as header_file:
+    header = header_file.read()
+
+other_lang = [
+    'ch (Chinese, English, Chinese Traditional)',
+    'ch_lite (Chinese, English, Chinese Traditional, Japanese)',
+    'ch_server (Chinese, English, Chinese Traditional, Japanese)',
+    'en (English)',
+    'korean (Korean, English)',
+    'japan (Chinese, English, Chinese Traditional, Japanese)',
+    'chinese_cht (Chinese, English, Chinese Traditional, Japanese)',
+    'ta (Tamil, English)',
+    'te (Telugu, English)',
+    'ka (Kannada)',
+    'el (Greek, English)',
+    'th (Thai, English)'
+]
+add_lang = [
+    'latin (French, German, Afrikaans, Italian, Spanish, Bosnian, Portuguese, Czech, Welsh, Danish, Estonian, Irish, Croatian, Uzbek, Hungarian, Serbian (Latin), Indonesian, Occitan, Icelandic, Lithuanian, Maori, Malay, Dutch, Norwegian, Polish, Slovak, Slovenian, Albanian, Swedish, Swahili, Tagalog, Turkish, Latin, Azerbaijani, Kurdish, Latvian, Maltese, Pali, Romanian, Vietnamese, Finnish, Basque, Galician, Luxembourgish, Romansh, Catalan, Quechua)',
+    'arabic (Arabic, Persian, Uyghur, Urdu, Pashto, Kurdish, Sindhi, Balochi, English)',
+    'east_slavic (Russian, Belarusian, Ukrainian, English)',
+    'cyrillic (Russian, Belarusian, Ukrainian, Serbian (Cyrillic), Bulgarian, Mongolian, Abkhazian, Adyghe, Kabardian, Avar, Dargin, Ingush, Chechen, Lak, Lezgin, Tabasaran, Kazakh, Kyrgyz, Tajik, Macedonian, Tatar, Chuvash, Bashkir, Malian, Moldovan, Udmurt, Komi, Ossetian, Buryat, Kalmyk, Tuvan, Sakha, Karakalpak, English)',
+    'devanagari (Hindi, Marathi, Nepali, Bihari, Maithili, Angika, Bhojpuri, Magahi, Santali, Newari, Konkani, Sanskrit, Haryanvi, English)'
+]
+all_lang = [*other_lang, *add_lang]
+
+
+def safe_stem(file_path):
+    stem = Path(file_path).stem
+    # 只保留字母、数字、下划线和点,其他字符替换为下划线
+    return re.sub(r'[^\w.]', '_', stem)
+
+
+def to_pdf(file_path):
+
+    if file_path is None:
+        return None
+
+    pdf_bytes = read_fn(file_path)
+
+    # unique_filename = f'{uuid.uuid4()}.pdf'
+    unique_filename = f'{safe_stem(file_path)}.pdf'
+
+    # 构建完整的文件路径
+    tmp_file_path = os.path.join(os.path.dirname(file_path), unique_filename)
+
+    # 将字节数据写入文件
+    with open(tmp_file_path, 'wb') as tmp_pdf_file:
+        tmp_pdf_file.write(pdf_bytes)
+
+    return tmp_file_path
+
+
+@click.command(context_settings=dict(ignore_unknown_options=True, allow_extra_args=True))
+@click.pass_context
+@click.option(
+    '--enable-example',
+    'example_enable',
+    type=bool,
+    help="Enable example files for input."
+         "The example files to be input need to be placed in the `example` folder within the directory where the command is currently executed.",
+    default=True,
+)
+@click.option(
+    '--enable-http-client',
+    'http_client_enable',
+    type=bool,
+    help="Enable http-client backend to link openai-compatible servers.",
+    default=False,
+)
+@click.option(
+    '--enable-api',
+    'api_enable',
+    type=bool,
+    help="Enable gradio API for serving the application.",
+    default=True,
+)
+@click.option(
+    '--max-convert-pages',
+    'max_convert_pages',
+    type=int,
+    help="Set the maximum number of pages to convert from PDF to Markdown.",
+    default=1000,
+)
+@click.option(
+    '--server-name',
+    'server_name',
+    type=str,
+    help="Set the server name for the Gradio app.",
+    default=None,
+)
+@click.option(
+    '--server-port',
+    'server_port',
+    type=int,
+    help="Set the server port for the Gradio app.",
+    default=None,
+)
+@click.option(
+    '--latex-delimiters-type',
+    'latex_delimiters_type',
+    type=click.Choice(['a', 'b', 'all']),
+    help="Set the type of LaTeX delimiters to use in Markdown rendering:"
+         "'a' for type '$', 'b' for type '()[]', 'all' for both types.",
+    default='all',
+)
+def main(ctx,
+        example_enable,
+        http_client_enable,
+        api_enable, max_convert_pages,
+        server_name, server_port, latex_delimiters_type, **kwargs
+):
+
+    # 创建 i18n 实例,支持中英文
+    i18n = gr.I18n(
+        en={
+            "upload_file": "Please upload a PDF or image",
+            "max_pages": "Max convert pages",
+            "backend": "Backend",
+            "server_url": "Server URL",
+            "server_url_info": "OpenAI-compatible server URL for http-client backend.",
+            "recognition_options": "**Recognition Options:**",
+            "table_enable": "Enable table recognition",
+            "table_info": "If disabled, tables will be shown as images.",
+            "formula_label_vlm": "Enable display formula recognition",
+            "formula_label_pipeline": "Enable formula recognition",
+            "formula_label_hybrid": "Enable inline formula recognition",
+            "formula_info_vlm": "If disabled, display formulas will be shown as images.",
+            "formula_info_pipeline": "If disabled, display formulas will be shown as images, and inline formulas will not be detected or parsed.",
+            "formula_info_hybrid": "If disabled, inline formulas will not be detected or parsed.",
+            "ocr_language": "OCR Language",
+            "ocr_language_info": "Select the OCR language for image-based PDFs and images.",
+            "force_ocr": "Force enable OCR",
+            "force_ocr_info": "Enable only if the result is extremely poor. Requires correct OCR language.",
+            "convert": "Convert",
+            "clear": "Clear",
+            "pdf_preview": "PDF preview",
+            "examples": "Examples:",
+            "convert_result": "Convert result",
+            "md_rendering": "Markdown rendering",
+            "md_text": "Markdown text",
+            "backend_info_vlm": "High-precision parsing via VLM, supports Chinese and English documents only.",
+            "backend_info_pipeline": "Traditional Multi-model pipeline parsing, supports multiple languages, hallucination-free.",
+            "backend_info_hybrid": "High-precision hybrid parsing, supports multiple languages.",
+            "backend_info_default": "Select the backend engine for document parsing.",
+        },
+        zh={
+            "upload_file": "请上传 PDF 或图片",
+            "max_pages": "最大转换页数",
+            "backend": "解析后端",
+            "server_url": "服务器地址",
+            "server_url_info": "http-client 后端的 OpenAI 兼容服务器地址。",
+            "recognition_options": "**识别选项:**",
+            "table_enable": "启用表格识别",
+            "table_info": "禁用后,表格将显示为图片。",
+            "formula_label_vlm": "启用行间公式识别",
+            "formula_label_pipeline": "启用公式识别",
+            "formula_label_hybrid": "启用行内公式识别",
+            "formula_info_vlm": "禁用后,行间公式将显示为图片。",
+            "formula_info_pipeline": "禁用后,行间公式将显示为图片,行内公式将不会被检测或解析。",
+            "formula_info_hybrid": "禁用后,行内公式将不会被检测或解析。",
+            "ocr_language": "OCR 语言",
+            "ocr_language_info": "为扫描版 PDF 和图片选择 OCR 语言。",
+            "force_ocr": "强制启用 OCR",
+            "force_ocr_info": "仅在识别效果极差时启用,需选择正确的 OCR 语言。",
+            "convert": "转换",
+            "clear": "清除",
+            "pdf_preview": "PDF 预览",
+            "examples": "示例:",
+            "convert_result": "转换结果",
+            "md_rendering": "Markdown 渲染",
+            "md_text": "Markdown 文本",
+            "backend_info_vlm": "多模态大模型高精度解析,仅支持中英文文档。",
+            "backend_info_pipeline": "传统多模型管道解析,支持多语言,无幻觉。",
+            "backend_info_hybrid": "高精度混合解析,支持多语言。",
+            "backend_info_default": "选择文档解析的后端引擎。",
+        },
+    )
+
+    # 根据后端类型获取公式识别标签(闭包函数以支持 i18n)
+    def get_formula_label(backend_choice):
+        if backend_choice.startswith("vlm"):
+            return i18n("formula_label_vlm")
+        elif backend_choice == "pipeline":
+            return i18n("formula_label_pipeline")
+        elif backend_choice.startswith("hybrid"):
+            return i18n("formula_label_hybrid")
+        else:
+            return i18n("formula_label_pipeline")
+
+    def get_formula_info(backend_choice):
+        if backend_choice.startswith("vlm"):
+            return i18n("formula_info_vlm")
+        elif backend_choice == "pipeline":
+            return i18n("formula_info_pipeline")
+        elif backend_choice.startswith("hybrid"):
+            return i18n("formula_info_hybrid")
+        else:
+            return ""
+
+    def get_backend_info(backend_choice):
+        if backend_choice.startswith("vlm"):
+            return i18n("backend_info_vlm")
+        elif backend_choice == "pipeline":
+            return i18n("backend_info_pipeline")
+        elif backend_choice.startswith("hybrid"):
+            return i18n("backend_info_hybrid")
+        else:
+            return i18n("backend_info_default")
+
+    # 更新界面函数
+    def update_interface(backend_choice):
+        formula_label_update = gr.update(label=get_formula_label(backend_choice), info=get_formula_info(backend_choice))
+        backend_info_update = gr.update(info=get_backend_info(backend_choice))
+        if "http-client" in backend_choice:
+            client_options_update = gr.update(visible=True)
+        else:
+            client_options_update = gr.update(visible=False)
+        if "vlm" in backend_choice:
+            ocr_options_update = gr.update(visible=False)
+        else:
+            ocr_options_update = gr.update(visible=True)
+
+        return client_options_update, ocr_options_update, formula_label_update, backend_info_update
+
+
+    kwargs.update(arg_parse(ctx))
+
+    if latex_delimiters_type == 'a':
+        latex_delimiters = latex_delimiters_type_a
+    elif latex_delimiters_type == 'b':
+        latex_delimiters = latex_delimiters_type_b
+    elif latex_delimiters_type == 'all':
+        latex_delimiters = latex_delimiters_type_all
+    else:
+        raise ValueError(f"Invalid latex delimiters type: {latex_delimiters_type}.")
+
+    vlm_engine = get_vlm_engine("auto", is_async=True)
+    if vlm_engine in ["transformers", "mlx-engine"]:
+        http_client_enable = True
+    else:
+        try:
+            logger.info(f"Start init {vlm_engine}...")
+            from mineru.backend.vlm.vlm_analyze import ModelSingleton
+            model_singleton = ModelSingleton()
+            predictor = model_singleton.get_model(
+                vlm_engine,
+                None,
+                None,
+                **kwargs
+            )
+            logger.info(f"{vlm_engine} init successfully.")
+        except Exception as e:
+            logger.exception(e)
+
+    suffixes = [f".{suffix}" for suffix in pdf_suffixes + image_suffixes]
+    with gr.Blocks() as demo:
+        gr.HTML(header)
+        with gr.Row():
+            with gr.Column(variant='panel', scale=5):
+                with gr.Row():
+                    input_file = gr.File(label=i18n("upload_file"), file_types=suffixes)
+                with gr.Row():
+                    max_pages = gr.Slider(1, max_convert_pages, max_convert_pages, step=1, label=i18n("max_pages"))
+                with gr.Row():
+                    drop_list = ["pipeline", "vlm-auto-engine", "hybrid-auto-engine"]
+                    preferred_option = "hybrid-auto-engine"
+                    if http_client_enable:
+                        drop_list.extend(["vlm-http-client", "hybrid-http-client"])
+                    backend = gr.Dropdown(drop_list, label=i18n("backend"), value=preferred_option, info=get_backend_info(preferred_option))
+                with gr.Row(visible=False) as client_options:
+                    url = gr.Textbox(label=i18n("server_url"), value='http://localhost:30000', placeholder='http://localhost:30000', info=i18n("server_url_info"))
+                with gr.Row(equal_height=True):
+                    with gr.Column():
+                        gr.Markdown(i18n("recognition_options"))
+                        table_enable = gr.Checkbox(label=i18n("table_enable"), value=True, info=i18n("table_info"))
+                        formula_enable = gr.Checkbox(label=get_formula_label(preferred_option), value=True, info=get_formula_info(preferred_option))
+                    with gr.Column(visible=False) as ocr_options:
+                        language = gr.Dropdown(all_lang, label=i18n("ocr_language"), value='ch (Chinese, English, Chinese Traditional)', info=i18n("ocr_language_info"))
+                        is_ocr = gr.Checkbox(label=i18n("force_ocr"), value=False, info=i18n("force_ocr_info"))
+                with gr.Row():
+                    change_bu = gr.Button(i18n("convert"))
+                    clear_bu = gr.ClearButton(value=i18n("clear"))
+                pdf_show = PDF(label=i18n("pdf_preview"), interactive=False, visible=True, height=800)
+                if example_enable:
+                    example_root = os.path.join(os.getcwd(), 'examples')
+                    if os.path.exists(example_root):
+                        gr.Examples(
+                            label=i18n("examples"),
+                            examples=[os.path.join(example_root, _) for _ in os.listdir(example_root) if
+                                      _.endswith(tuple(suffixes))],
+                            inputs=input_file
+                        )
+
+            with gr.Column(variant='panel', scale=5):
+                output_file = gr.File(label=i18n("convert_result"), interactive=False)
+                with gr.Tabs():
+                    with gr.Tab(i18n("md_rendering")):
+                        md = gr.Markdown(
+                            label=i18n("md_rendering"),
+                            height=1200,
+                            # buttons=["copy"],  # gradio 6 以上版本使用
+                            show_copy_button=True,  # gradio 6 以下版本使用
+                            latex_delimiters=latex_delimiters,
+                            line_breaks=True
+                        )
+                    with gr.Tab(i18n("md_text")):
+                        md_text = gr.TextArea(
+                            lines=45,
+                            # buttons=["copy"],  # gradio 6 以上版本使用
+                            show_copy_button=True,  # gradio 6 以下版本使用
+                            label=i18n("md_text")
+                        )
+
+        # 添加事件处理
+        backend.change(
+            fn=update_interface,
+            inputs=[backend],
+            outputs=[client_options, ocr_options, formula_enable, backend],
+            # api_visibility="private"  # gradio 6 以上版本使用
+            api_name=False  # gradio 6 以下版本使用
+        )
+        # 添加demo.load事件,在页面加载时触发一次界面更新
+        demo.load(
+            fn=update_interface,
+            inputs=[backend],
+            outputs=[client_options, ocr_options, formula_enable, backend],
+            # api_visibility="private"  # gradio 6 以上版本使用
+            api_name=False  # gradio 6 以下版本使用
+        )
+        clear_bu.add([input_file, md, pdf_show, md_text, output_file, is_ocr])
+
+        input_file.change(
+            fn=to_pdf,
+            inputs=input_file,
+            outputs=pdf_show,
+            api_name="to_pdf" if api_enable else False,  # gradio 6 以下版本使用
+            # api_visibility="public" if api_enable else "private"  # gradio 6 以上版本使用
+        )
+        change_bu.click(
+            fn=to_markdown,
+            inputs=[input_file, max_pages, is_ocr, formula_enable, table_enable, language, backend, url],
+            outputs=[md, md_text, output_file, pdf_show],
+            api_name="to_markdown" if api_enable else False,  # gradio 6 以下版本使用
+            # api_visibility="public" if api_enable else "private"  # gradio 6 以上版本使用
+        )
+
+    footer_links = ["gradio", "settings"]
+    if api_enable:
+        footer_links.append("api")
+    demo.launch(
+        server_name=server_name,
+        server_port=server_port,
+        # footer_links=footer_links,  # gradio 6 以上版本使用
+        show_api=api_enable,  # gradio 6 以下版本使用
+        i18n=i18n
+    )
+
+
+if __name__ == '__main__':
+    main()

+ 154 - 0
mineru/cli/models_download.py

@@ -0,0 +1,154 @@
+import json
+import os
+import sys
+import click
+import requests
+from loguru import logger
+
+from mineru.utils.enum_class import ModelPath
+from mineru.utils.models_download_utils import auto_download_and_get_model_root_path
+
+
+def download_json(url):
+    """下载JSON文件"""
+    response = requests.get(url)
+    response.raise_for_status()
+    return response.json()
+
+
+def download_and_modify_json(url, local_filename, modifications):
+    """下载JSON并修改内容"""
+    if os.path.exists(local_filename):
+        data = json.load(open(local_filename))
+        config_version = data.get('config_version', '0.0.0')
+        if config_version < '1.3.1':
+            data = download_json(url)
+    else:
+        data = download_json(url)
+
+    # 修改内容
+    for key, value in modifications.items():
+        if key in data:
+            if isinstance(data[key], dict):
+                # 如果是字典,合并新值
+                data[key].update(value)
+            else:
+                # 否则直接替换
+                data[key] = value
+
+    # 保存修改后的内容
+    with open(local_filename, 'w', encoding='utf-8') as f:
+        json.dump(data, f, ensure_ascii=False, indent=4)
+
+
+def configure_model(model_dir, model_type):
+    """配置模型"""
+    json_url = 'https://gcore.jsdelivr.net/gh/opendatalab/MinerU@master/mineru.template.json'
+    config_file_name = os.getenv('MINERU_TOOLS_CONFIG_JSON', 'mineru.json')
+    home_dir = os.path.expanduser('~')
+    config_file = os.path.join(home_dir, config_file_name)
+
+    json_mods = {
+        'models-dir': {
+            f'{model_type}': model_dir
+        }
+    }
+
+    download_and_modify_json(json_url, config_file, json_mods)
+    logger.info(f'The configuration file has been successfully configured, the path is: {config_file}')
+
+
+def download_pipeline_models():
+    """下载Pipeline模型"""
+    model_paths = [
+        ModelPath.doclayout_yolo,
+        ModelPath.yolo_v8_mfd,
+        ModelPath.unimernet_small,
+        ModelPath.pytorch_paddle,
+        ModelPath.layout_reader,
+        ModelPath.slanet_plus,
+        ModelPath.unet_structure,
+        ModelPath.paddle_table_cls,
+        ModelPath.paddle_orientation_classification,
+        ModelPath.pp_formulanet_plus_m,
+    ]
+    download_finish_path = ""
+    for model_path in model_paths:
+        logger.info(f"Downloading model: {model_path}")
+        download_finish_path = auto_download_and_get_model_root_path(model_path, repo_mode='pipeline')
+    logger.info(f"Pipeline models downloaded successfully to: {download_finish_path}")
+    configure_model(download_finish_path, "pipeline")
+
+
+def download_vlm_models():
+    """下载VLM模型"""
+    download_finish_path = auto_download_and_get_model_root_path("/", repo_mode='vlm')
+    logger.info(f"VLM models downloaded successfully to: {download_finish_path}")
+    configure_model(download_finish_path, "vlm")
+
+
+@click.command()
+@click.option(
+    '-s',
+    '--source',
+    'model_source',
+    type=click.Choice(['huggingface', 'modelscope']),
+    help="""
+        The source of the model repository. 
+        """,
+    default=None,
+)
+@click.option(
+    '-m',
+    '--model_type',
+    'model_type',
+    type=click.Choice(['pipeline', 'vlm', 'all']),
+    help="""
+        The type of the model to download.
+        """,
+    default=None,
+)
+def download_models(model_source, model_type):
+    """Download MinerU model files.
+
+    Supports downloading pipeline or VLM models from ModelScope or HuggingFace.
+    """
+    # 如果未显式指定则交互式输入下载来源
+    if model_source is None:
+        model_source = click.prompt(
+            "Please select the model download source: ",
+            type=click.Choice(['huggingface', 'modelscope']),
+            default='huggingface'
+        )
+
+    if os.getenv('MINERU_MODEL_SOURCE', None) is None:
+        os.environ['MINERU_MODEL_SOURCE'] = model_source
+
+    # 如果未显式指定则交互式输入模型类型
+    if model_type is None:
+        model_type = click.prompt(
+            "Please select the model type to download: ",
+            type=click.Choice(['pipeline', 'vlm', 'all']),
+            default='all'
+        )
+
+    logger.info(f"Downloading {model_type} model from {os.getenv('MINERU_MODEL_SOURCE', None)}...")
+
+    try:
+        if model_type == 'pipeline':
+            download_pipeline_models()
+        elif model_type == 'vlm':
+            download_vlm_models()
+        elif model_type == 'all':
+            download_pipeline_models()
+            download_vlm_models()
+        else:
+            click.echo(f"Unsupported model type: {model_type}", err=True)
+            sys.exit(1)
+
+    except Exception as e:
+        logger.exception(f"An error occurred while downloading models: {str(e)}")
+        sys.exit(1)
+
+if __name__ == '__main__':
+    download_models()

+ 61 - 0
mineru/cli/vlm_server.py

@@ -0,0 +1,61 @@
+import click
+import sys
+
+from loguru import logger
+
+
+def vllm_server():
+    from mineru.model.vlm.vllm_server import main
+    main()
+
+
+def lmdeploy_server():
+    from mineru.model.vlm.lmdeploy_server import main
+    main()
+
+
+@click.command(context_settings=dict(ignore_unknown_options=True, allow_extra_args=True))
+@click.option(
+    '-e',
+    '--engine',
+    'inference_engine',
+    type=click.Choice(['auto', 'vllm', 'lmdeploy']),
+    default='auto',
+    help='Select the inference engine used to accelerate VLM inference, default is "auto".',
+)
+@click.pass_context
+def openai_server(ctx, inference_engine):
+    sys.argv = [sys.argv[0]] + ctx.args
+    if inference_engine == 'auto':
+        try:
+            import vllm
+            inference_engine = 'vllm'
+            logger.info("Using vLLM as the inference engine for VLM server.")
+        except ImportError:
+            logger.info("vLLM not found, attempting to use LMDeploy as the inference engine for VLM server.")
+            try:
+                import lmdeploy
+                inference_engine = 'lmdeploy'
+            # Success message moved after successful import
+                logger.info("Using LMDeploy as the inference engine for VLM server.")
+            except ImportError:
+                logger.error("Neither vLLM nor LMDeploy is installed. Please install at least one of them.")
+                sys.exit(1)
+
+    if inference_engine == 'vllm':
+        try:
+            import vllm
+        except ImportError:
+            logger.error("vLLM is not installed. Please install vLLM or choose LMDeploy as the inference engine.")
+            sys.exit(1)
+        vllm_server()
+    elif inference_engine == 'lmdeploy':
+        try:
+            import lmdeploy
+        except ImportError:
+            logger.error("LMDeploy is not installed. Please install LMDeploy or choose vLLM as the inference engine.")
+            sys.exit(1)
+        lmdeploy_server()
+
+if __name__ == "__main__":
+    openai_server()

+ 1 - 0
mineru/data/__init__.py

@@ -0,0 +1 @@
+# Copyright (c) Opendatalab. All rights reserved.

+ 17 - 0
mineru/data/data_reader_writer/__init__.py

@@ -0,0 +1,17 @@
+from .base import DataReader, DataWriter
+from .dummy import DummyDataWriter
+from .filebase import FileBasedDataReader, FileBasedDataWriter
+from .multi_bucket_s3 import MultiBucketS3DataReader, MultiBucketS3DataWriter
+from .s3 import S3DataReader, S3DataWriter
+
+__all__ = [
+    "DataReader",
+    "DataWriter",
+    "FileBasedDataReader",
+    "FileBasedDataWriter",
+    "S3DataReader",
+    "S3DataWriter",
+    "MultiBucketS3DataReader",
+    "MultiBucketS3DataWriter",
+    "DummyDataWriter",
+]

+ 63 - 0
mineru/data/data_reader_writer/base.py

@@ -0,0 +1,63 @@
+
+from abc import ABC, abstractmethod
+
+
+class DataReader(ABC):
+
+    def read(self, path: str) -> bytes:
+        """Read the file.
+
+        Args:
+            path (str): file path to read
+
+        Returns:
+            bytes: the content of the file
+        """
+        return self.read_at(path)
+
+    @abstractmethod
+    def read_at(self, path: str, offset: int = 0, limit: int = -1) -> bytes:
+        """Read the file at offset and limit.
+
+        Args:
+            path (str): the file path
+            offset (int, optional): the number of bytes skipped. Defaults to 0.
+            limit (int, optional): the length of bytes want to read. Defaults to -1.
+
+        Returns:
+            bytes: the content of the file
+        """
+        pass
+
+
+class DataWriter(ABC):
+    @abstractmethod
+    def write(self, path: str, data: bytes) -> None:
+        """Write the data to the file.
+
+        Args:
+            path (str): the target file where to write
+            data (bytes): the data want to write
+        """
+        pass
+
+    def write_string(self, path: str, data: str) -> None:
+        """Write the data to file, the data will be encoded to bytes.
+
+        Args:
+            path (str): the target file where to write
+            data (str): the data want to write
+        """
+
+        def safe_encode(data: str, method: str):
+            try:
+                bit_data = data.encode(encoding=method, errors='replace')
+                return bit_data, True
+            except:  # noqa
+                return None, False
+
+        for method in ['utf-8', 'ascii']:
+            bit_data, flag = safe_encode(data, method)
+            if flag:
+                self.write(path, bit_data)
+                break

+ 11 - 0
mineru/data/data_reader_writer/dummy.py

@@ -0,0 +1,11 @@
+from .base import DataWriter
+
+
+class DummyDataWriter(DataWriter):
+    def write(self, path: str, data: bytes) -> None:
+        """Dummy write method that does nothing."""
+        pass
+
+    def write_string(self, path: str, data: str) -> None:
+        """Dummy write_string method that does nothing."""
+        pass

+ 62 - 0
mineru/data/data_reader_writer/filebase.py

@@ -0,0 +1,62 @@
+import os
+
+from .base import DataReader, DataWriter
+
+
+class FileBasedDataReader(DataReader):
+    def __init__(self, parent_dir: str = ''):
+        """Initialized with parent_dir.
+
+        Args:
+            parent_dir (str, optional): the parent directory that may be used within methods. Defaults to ''.
+        """
+        self._parent_dir = parent_dir
+
+    def read_at(self, path: str, offset: int = 0, limit: int = -1) -> bytes:
+        """Read at offset and limit.
+
+        Args:
+            path (str): the path of file, if the path is relative path, it will be joined with parent_dir.
+            offset (int, optional): the number of bytes skipped. Defaults to 0.
+            limit (int, optional): the length of bytes want to read. Defaults to -1.
+
+        Returns:
+            bytes: the content of file
+        """
+        fn_path = path
+        if not os.path.isabs(fn_path) and len(self._parent_dir) > 0:
+            fn_path = os.path.join(self._parent_dir, path)
+
+        with open(fn_path, 'rb') as f:
+            f.seek(offset)
+            if limit == -1:
+                return f.read()
+            else:
+                return f.read(limit)
+
+
+class FileBasedDataWriter(DataWriter):
+    def __init__(self, parent_dir: str = '') -> None:
+        """Initialized with parent_dir.
+
+        Args:
+            parent_dir (str, optional): the parent directory that may be used within methods. Defaults to ''.
+        """
+        self._parent_dir = parent_dir
+
+    def write(self, path: str, data: bytes) -> None:
+        """Write file with data.
+
+        Args:
+            path (str): the path of file, if the path is relative path, it will be joined with parent_dir.
+            data (bytes): the data want to write
+        """
+        fn_path = path
+        if not os.path.isabs(fn_path) and len(self._parent_dir) > 0:
+            fn_path = os.path.join(self._parent_dir, path)
+
+        if not os.path.exists(os.path.dirname(fn_path)) and os.path.dirname(fn_path) != "":
+            os.makedirs(os.path.dirname(fn_path), exist_ok=True)
+
+        with open(fn_path, 'wb') as f:
+            f.write(data)

+ 144 - 0
mineru/data/data_reader_writer/multi_bucket_s3.py

@@ -0,0 +1,144 @@
+
+from ..utils.exceptions import InvalidConfig, InvalidParams
+from .base import DataReader, DataWriter
+from ..io.s3 import S3Reader, S3Writer
+from ..utils.schemas import S3Config
+from ..utils.path_utils import parse_s3_range_params, parse_s3path, remove_non_official_s3_args
+
+
+class MultiS3Mixin:
+    def __init__(self, default_prefix: str, s3_configs: list[S3Config]):
+        """Initialized with multiple s3 configs.
+
+        Args:
+            default_prefix (str): the default prefix of the relative path. for example, {some_bucket}/{some_prefix} or {some_bucket}
+            s3_configs (list[S3Config]): list of s3 configs, the bucket_name must be unique in the list.
+
+        Raises:
+            InvalidConfig: default bucket config not in s3_configs.
+            InvalidConfig: bucket name not unique in s3_configs.
+            InvalidConfig: default bucket must be provided.
+        """
+        if len(default_prefix) == 0:
+            raise InvalidConfig('default_prefix must be provided')
+
+        arr = default_prefix.strip('/').split('/')
+        self.default_bucket = arr[0]
+        self.default_prefix = '/'.join(arr[1:])
+
+        found_default_bucket_config = False
+        for conf in s3_configs:
+            if conf.bucket_name == self.default_bucket:
+                found_default_bucket_config = True
+                break
+
+        if not found_default_bucket_config:
+            raise InvalidConfig(
+                f'default_bucket: {self.default_bucket} config must be provided in s3_configs: {s3_configs}'
+            )
+
+        uniq_bucket = set([conf.bucket_name for conf in s3_configs])
+        if len(uniq_bucket) != len(s3_configs):
+            raise InvalidConfig(
+                f'the bucket_name in s3_configs: {s3_configs} must be unique'
+            )
+
+        self.s3_configs = s3_configs
+        self._s3_clients_h: dict = {}
+
+
+class MultiBucketS3DataReader(DataReader, MultiS3Mixin):
+    def read(self, path: str) -> bytes:
+        """Read the path from s3, select diffect bucket client for each request
+        based on the bucket, also support range read.
+
+        Args:
+            path (str): the s3 path of file, the path must be in the format of s3://bucket_name/path?offset,limit.
+            for example: s3://bucket_name/path?0,100.
+
+        Returns:
+            bytes: the content of s3 file.
+        """
+        may_range_params = parse_s3_range_params(path)
+        if may_range_params is None or 2 != len(may_range_params):
+            byte_start, byte_len = 0, -1
+        else:
+            byte_start, byte_len = int(may_range_params[0]), int(may_range_params[1])
+        path = remove_non_official_s3_args(path)
+        return self.read_at(path, byte_start, byte_len)
+
+    def __get_s3_client(self, bucket_name: str):
+        if bucket_name not in set([conf.bucket_name for conf in self.s3_configs]):
+            raise InvalidParams(
+                f'bucket name: {bucket_name} not found in s3_configs: {self.s3_configs}'
+            )
+        if bucket_name not in self._s3_clients_h:
+            conf = next(
+                filter(lambda conf: conf.bucket_name == bucket_name, self.s3_configs)
+            )
+            self._s3_clients_h[bucket_name] = S3Reader(
+                bucket_name,
+                conf.access_key,
+                conf.secret_key,
+                conf.endpoint_url,
+                conf.addressing_style,
+            )
+        return self._s3_clients_h[bucket_name]
+
+    def read_at(self, path: str, offset: int = 0, limit: int = -1) -> bytes:
+        """Read the file with offset and limit, select diffect bucket client
+        for each request based on the bucket.
+
+        Args:
+            path (str): the file path.
+            offset (int, optional): the number of bytes skipped. Defaults to 0.
+            limit (int, optional): the number of bytes want to read. Defaults to -1 which means infinite.
+
+        Returns:
+            bytes: the file content.
+        """
+        if path.startswith('s3://'):
+            bucket_name, path = parse_s3path(path)
+            s3_reader = self.__get_s3_client(bucket_name)
+        else:
+            s3_reader = self.__get_s3_client(self.default_bucket)
+            if self.default_prefix:
+                path = self.default_prefix + '/' + path
+        return s3_reader.read_at(path, offset, limit)
+
+
+class MultiBucketS3DataWriter(DataWriter, MultiS3Mixin):
+    def __get_s3_client(self, bucket_name: str):
+        if bucket_name not in set([conf.bucket_name for conf in self.s3_configs]):
+            raise InvalidParams(
+                f'bucket name: {bucket_name} not found in s3_configs: {self.s3_configs}'
+            )
+        if bucket_name not in self._s3_clients_h:
+            conf = next(
+                filter(lambda conf: conf.bucket_name == bucket_name, self.s3_configs)
+            )
+            self._s3_clients_h[bucket_name] = S3Writer(
+                bucket_name,
+                conf.access_key,
+                conf.secret_key,
+                conf.endpoint_url,
+                conf.addressing_style,
+            )
+        return self._s3_clients_h[bucket_name]
+
+    def write(self, path: str, data: bytes) -> None:
+        """Write file with data, also select diffect bucket client for each
+        request based on the bucket.
+
+        Args:
+            path (str): the path of file, if the path is relative path, it will be joined with parent_dir.
+            data (bytes): the data want to write.
+        """
+        if path.startswith('s3://'):
+            bucket_name, path = parse_s3path(path)
+            s3_writer = self.__get_s3_client(bucket_name)
+        else:
+            s3_writer = self.__get_s3_client(self.default_bucket)
+            if self.default_prefix:
+                path = self.default_prefix + '/' + path
+        return s3_writer.write(path, data)

+ 72 - 0
mineru/data/data_reader_writer/s3.py

@@ -0,0 +1,72 @@
+from .multi_bucket_s3 import MultiBucketS3DataReader, MultiBucketS3DataWriter
+from ..utils.schemas import S3Config
+
+
+class S3DataReader(MultiBucketS3DataReader):
+    def __init__(
+        self,
+        default_prefix_without_bucket: str,
+        bucket: str,
+        ak: str,
+        sk: str,
+        endpoint_url: str,
+        addressing_style: str = 'auto',
+    ):
+        """s3 reader client.
+
+        Args:
+            default_prefix_without_bucket: prefix that not contains bucket
+            bucket (str): bucket name
+            ak (str): access key
+            sk (str): secret key
+            endpoint_url (str): endpoint url of s3
+            addressing_style (str, optional): Defaults to 'auto'. Other valid options here are 'path' and 'virtual'
+            refer to https://boto3.amazonaws.com/v1/documentation/api/1.9.42/guide/s3.html
+        """
+        super().__init__(
+            f'{bucket}/{default_prefix_without_bucket}',
+            [
+                S3Config(
+                    bucket_name=bucket,
+                    access_key=ak,
+                    secret_key=sk,
+                    endpoint_url=endpoint_url,
+                    addressing_style=addressing_style,
+                )
+            ],
+        )
+
+
+class S3DataWriter(MultiBucketS3DataWriter):
+    def __init__(
+        self,
+        default_prefix_without_bucket: str,
+        bucket: str,
+        ak: str,
+        sk: str,
+        endpoint_url: str,
+        addressing_style: str = 'auto',
+    ):
+        """s3 writer client.
+
+        Args:
+            default_prefix_without_bucket: prefix that not contains bucket
+            bucket (str): bucket name
+            ak (str): access key
+            sk (str): secret key
+            endpoint_url (str): endpoint url of s3
+            addressing_style (str, optional): Defaults to 'auto'. Other valid options here are 'path' and 'virtual'
+            refer to https://boto3.amazonaws.com/v1/documentation/api/1.9.42/guide/s3.html
+        """
+        super().__init__(
+            f'{bucket}/{default_prefix_without_bucket}',
+            [
+                S3Config(
+                    bucket_name=bucket,
+                    access_key=ak,
+                    secret_key=sk,
+                    endpoint_url=endpoint_url,
+                    addressing_style=addressing_style,
+                )
+            ],
+        )

+ 6 - 0
mineru/data/io/__init__.py

@@ -0,0 +1,6 @@
+
+from .base import IOReader, IOWriter
+from .http import HttpReader, HttpWriter
+from .s3 import S3Reader, S3Writer
+
+__all__ = ['IOReader', 'IOWriter', 'HttpReader', 'HttpWriter', 'S3Reader', 'S3Writer']

+ 42 - 0
mineru/data/io/base.py

@@ -0,0 +1,42 @@
+from abc import ABC, abstractmethod
+
+
+class IOReader(ABC):
+    @abstractmethod
+    def read(self, path: str) -> bytes:
+        """Read the file.
+
+        Args:
+            path (str): file path to read
+
+        Returns:
+            bytes: the content of the file
+        """
+        pass
+
+    @abstractmethod
+    def read_at(self, path: str, offset: int = 0, limit: int = -1) -> bytes:
+        """Read at offset and limit.
+
+        Args:
+            path (str): the path of file, if the path is relative path, it will be joined with parent_dir.
+            offset (int, optional): the number of bytes skipped. Defaults to 0.
+            limit (int, optional): the length of bytes want to read. Defaults to -1.
+
+        Returns:
+            bytes: the content of file
+        """
+        pass
+
+
+class IOWriter(ABC):
+
+    @abstractmethod
+    def write(self, path: str, data: bytes) -> None:
+        """Write file with data.
+
+        Args:
+            path (str): the path of file, if the path is relative path, it will be joined with parent_dir.
+            data (bytes): the data want to write
+        """
+        pass

+ 37 - 0
mineru/data/io/http.py

@@ -0,0 +1,37 @@
+
+import io
+
+import requests
+
+from .base import IOReader, IOWriter
+
+
+class HttpReader(IOReader):
+
+    def read(self, url: str) -> bytes:
+        """Read the file.
+
+        Args:
+            path (str): file path to read
+
+        Returns:
+            bytes: the content of the file
+        """
+        return requests.get(url).content
+
+    def read_at(self, path: str, offset: int = 0, limit: int = -1) -> bytes:
+        """Not Implemented."""
+        raise NotImplementedError
+
+
+class HttpWriter(IOWriter):
+    def write(self, url: str, data: bytes) -> None:
+        """Write file with data.
+
+        Args:
+            path (str): the path of file, if the path is relative path, it will be joined with parent_dir.
+            data (bytes): the data want to write
+        """
+        files = {'file': io.BytesIO(data)}
+        response = requests.post(url, files=files)
+        assert 300 > response.status_code and response.status_code > 199

+ 114 - 0
mineru/data/io/s3.py

@@ -0,0 +1,114 @@
+import boto3
+from botocore.config import Config
+
+from ..io.base import IOReader, IOWriter
+
+
+class S3Reader(IOReader):
+    def __init__(
+        self,
+        bucket: str,
+        ak: str,
+        sk: str,
+        endpoint_url: str,
+        addressing_style: str = 'auto',
+    ):
+        """s3 reader client.
+
+        Args:
+            bucket (str): bucket name
+            ak (str): access key
+            sk (str): secret key
+            endpoint_url (str): endpoint url of s3
+            addressing_style (str, optional): Defaults to 'auto'. Other valid options here are 'path' and 'virtual'
+            refer to https://boto3.amazonaws.com/v1/documentation/api/1.9.42/guide/s3.html
+        """
+        self._bucket = bucket
+        self._ak = ak
+        self._sk = sk
+        self._s3_client = boto3.client(
+            service_name='s3',
+            aws_access_key_id=ak,
+            aws_secret_access_key=sk,
+            endpoint_url=endpoint_url,
+            config=Config(
+                s3={'addressing_style': addressing_style},
+                retries={'max_attempts': 5, 'mode': 'standard'},
+            ),
+        )
+
+    def read(self, key: str) -> bytes:
+        """Read the file.
+
+        Args:
+            path (str): file path to read
+
+        Returns:
+            bytes: the content of the file
+        """
+        return self.read_at(key)
+
+    def read_at(self, key: str, offset: int = 0, limit: int = -1) -> bytes:
+        """Read at offset and limit.
+
+        Args:
+            path (str): the path of file, if the path is relative path, it will be joined with parent_dir.
+            offset (int, optional): the number of bytes skipped. Defaults to 0.
+            limit (int, optional): the length of bytes want to read. Defaults to -1.
+
+        Returns:
+            bytes: the content of file
+        """
+        if limit > -1:
+            range_header = f'bytes={offset}-{offset+limit-1}'
+            res = self._s3_client.get_object(
+                Bucket=self._bucket, Key=key, Range=range_header
+            )
+        else:
+            res = self._s3_client.get_object(
+                Bucket=self._bucket, Key=key, Range=f'bytes={offset}-'
+            )
+        return res['Body'].read()
+
+
+class S3Writer(IOWriter):
+    def __init__(
+        self,
+        bucket: str,
+        ak: str,
+        sk: str,
+        endpoint_url: str,
+        addressing_style: str = 'auto',
+    ):
+        """s3 reader client.
+
+        Args:
+            bucket (str): bucket name
+            ak (str): access key
+            sk (str): secret key
+            endpoint_url (str): endpoint url of s3
+            addressing_style (str, optional): Defaults to 'auto'. Other valid options here are 'path' and 'virtual'
+            refer to https://boto3.amazonaws.com/v1/documentation/api/1.9.42/guide/s3.html
+        """
+        self._bucket = bucket
+        self._ak = ak
+        self._sk = sk
+        self._s3_client = boto3.client(
+            service_name='s3',
+            aws_access_key_id=ak,
+            aws_secret_access_key=sk,
+            endpoint_url=endpoint_url,
+            config=Config(
+                s3={'addressing_style': addressing_style},
+                retries={'max_attempts': 5, 'mode': 'standard'},
+            ),
+        )
+
+    def write(self, key: str, data: bytes):
+        """Write file with data.
+
+        Args:
+            path (str): the path of file, if the path is relative path, it will be joined with parent_dir.
+            data (bytes): the data want to write
+        """
+        self._s3_client.put_object(Bucket=self._bucket, Key=key, Body=data)

+ 1 - 0
mineru/data/utils/__init__.py

@@ -0,0 +1 @@
+# Copyright (c) Opendatalab. All rights reserved.

+ 40 - 0
mineru/data/utils/exceptions.py

@@ -0,0 +1,40 @@
+# Copyright (c) Opendatalab. All rights reserved.
+
+class FileNotExisted(Exception):
+
+    def __init__(self, path):
+        self.path = path
+
+    def __str__(self):
+        return f'File {self.path} does not exist.'
+
+
+class InvalidConfig(Exception):
+    def __init__(self, msg):
+        self.msg = msg
+
+    def __str__(self):
+        return f'Invalid config: {self.msg}'
+
+
+class InvalidParams(Exception):
+    def __init__(self, msg):
+        self.msg = msg
+
+    def __str__(self):
+        return f'Invalid params: {self.msg}'
+
+
+class EmptyData(Exception):
+    def __init__(self, msg):
+        self.msg = msg
+
+    def __str__(self):
+        return f'Empty data: {self.msg}'
+
+class CUDA_NOT_AVAILABLE(Exception):
+    def __init__(self, msg):
+        self.msg = msg
+
+    def __str__(self):
+        return f'CUDA not available: {self.msg}'

+ 33 - 0
mineru/data/utils/path_utils.py

@@ -0,0 +1,33 @@
+# Copyright (c) Opendatalab. All rights reserved.
+
+
+def remove_non_official_s3_args(s3path):
+    """
+    example: s3://abc/xxxx.json?bytes=0,81350 ==> s3://abc/xxxx.json
+    """
+    arr = s3path.split("?")
+    return arr[0]
+
+def parse_s3path(s3path: str):
+    # from s3pathlib import S3Path
+    # p = S3Path(remove_non_official_s3_args(s3path))
+    # return p.bucket, p.key
+    s3path = remove_non_official_s3_args(s3path).strip()
+    if s3path.startswith(('s3://', 's3a://')):
+        prefix, path = s3path.split('://', 1)
+        bucket_name, key = path.split('/', 1)
+        return bucket_name, key
+    elif s3path.startswith('/'):
+        raise ValueError("The provided path starts with '/'. This does not conform to a valid S3 path format.")
+    else:
+        raise ValueError("Invalid S3 path format. Expected 's3://bucket-name/key' or 's3a://bucket-name/key'.")
+
+
+def parse_s3_range_params(s3path: str):
+    """
+    example: s3://abc/xxxx.json?bytes=0,81350 ==> [0, 81350]
+    """
+    arr = s3path.split("?bytes=")
+    if len(arr) == 1:
+        return None
+    return arr[1].split(",")

+ 20 - 0
mineru/data/utils/schemas.py

@@ -0,0 +1,20 @@
+# Copyright (c) Opendatalab. All rights reserved.
+
+from pydantic import BaseModel, Field
+
+
+class S3Config(BaseModel):
+    """S3 config
+    """
+    bucket_name: str = Field(description='s3 bucket name', min_length=1)
+    access_key: str = Field(description='s3 access key', min_length=1)
+    secret_key: str = Field(description='s3 secret key', min_length=1)
+    endpoint_url: str = Field(description='s3 endpoint url', min_length=1)
+    addressing_style: str = Field(description='s3 addressing style', default='auto', min_length=1)
+
+
+class PageInfo(BaseModel):
+    """The width and height of page
+    """
+    w: float = Field(description='the width of page')
+    h: float = Field(description='the height of page')

+ 1 - 0
mineru/model/__init__.py

@@ -0,0 +1 @@
+# Copyright (c) Opendatalab. All rights reserved.

+ 1 - 0
mineru/model/layout/__init__.py

@@ -0,0 +1 @@
+# Copyright (c) Opendatalab. All rights reserved.

+ 119 - 0
mineru/model/layout/doclayoutyolo.py

@@ -0,0 +1,119 @@
+import os
+from typing import List, Dict, Union
+
+from doclayout_yolo import YOLOv10
+from tqdm import tqdm
+import numpy as np
+from PIL import Image, ImageDraw
+
+from mineru.utils.enum_class import ModelPath
+from mineru.utils.models_download_utils import auto_download_and_get_model_root_path
+
+
+class DocLayoutYOLOModel:
+    def __init__(
+        self,
+        weight: str,
+        device: str = "cuda",
+        imgsz: int = 1280,
+        conf: float = 0.1,
+        iou: float = 0.45,
+    ):
+        self.model = YOLOv10(weight).to(device)
+        self.device = device
+        self.imgsz = imgsz
+        self.conf = conf
+        self.iou = iou
+
+    def _parse_prediction(self, prediction) -> List[Dict]:
+        layout_res = []
+
+        # 容错处理
+        if not hasattr(prediction, "boxes") or prediction.boxes is None:
+            return layout_res
+
+        for xyxy, conf, cls in zip(
+            prediction.boxes.xyxy.cpu(),
+            prediction.boxes.conf.cpu(),
+            prediction.boxes.cls.cpu(),
+        ):
+            coords = list(map(int, xyxy.tolist()))
+            xmin, ymin, xmax, ymax = coords
+            layout_res.append({
+                "category_id": int(cls.item()),
+                "poly": [xmin, ymin, xmax, ymin, xmax, ymax, xmin, ymax],
+                "score": round(float(conf.item()), 3),
+            })
+        return layout_res
+
+    def predict(self, image: Union[np.ndarray, Image.Image]) -> List[Dict]:
+        prediction = self.model.predict(
+            image,
+            imgsz=self.imgsz,
+            conf=self.conf,
+            iou=self.iou,
+            verbose=False
+        )[0]
+        return self._parse_prediction(prediction)
+
+    def batch_predict(
+        self,
+        images: List[Union[np.ndarray, Image.Image]],
+        batch_size: int = 4
+    ) -> List[List[Dict]]:
+        results = []
+        with tqdm(total=len(images), desc="Layout Predict") as pbar:
+            for idx in range(0, len(images), batch_size):
+                batch = images[idx: idx + batch_size]
+                if batch_size == 1:
+                    conf = 0.9 * self.conf
+                else:
+                    conf = self.conf
+                predictions = self.model.predict(
+                    batch,
+                    imgsz=self.imgsz,
+                    conf=conf,
+                    iou=self.iou,
+                    verbose=False,
+                )
+                for pred in predictions:
+                    results.append(self._parse_prediction(pred))
+                pbar.update(len(batch))
+        return results
+
+    def visualize(
+            self,
+            image: Union[np.ndarray, Image.Image],
+            results: List
+    ) -> Image.Image:
+
+        if isinstance(image, np.ndarray):
+            image = Image.fromarray(image)
+
+        draw = ImageDraw.Draw(image)
+        for res in results:
+            poly = res['poly']
+            xmin, ymin, xmax, ymax = poly[0], poly[1], poly[4], poly[5]
+            print(
+                f"Detected box: {xmin}, {ymin}, {xmax}, {ymax}, Category ID: {res['category_id']}, Score: {res['score']}")
+            # 使用PIL在图像上画框
+            draw.rectangle([xmin, ymin, xmax, ymax], outline="red", width=2)
+            # 在框旁边画置信度
+            draw.text((xmax + 10, ymin + 10), f"{res['score']:.2f}", fill="red", font_size=22)
+        return image
+
+
+if __name__ == '__main__':
+    image_path = r"C:\Users\zhaoxiaomeng\Downloads\下载1.jpg"
+    doclayout_yolo_weights = os.path.join(auto_download_and_get_model_root_path(ModelPath.doclayout_yolo), ModelPath.doclayout_yolo)
+    device = 'cuda'
+    model = DocLayoutYOLOModel(
+        weight=doclayout_yolo_weights,
+        device=device,
+    )
+    image = Image.open(image_path)
+    results = model.predict(image)
+
+    image = model.visualize(image, results)
+
+    image.show()  # 显示图像

+ 1 - 0
mineru/model/mfd/__init__.py

@@ -0,0 +1 @@
+# Copyright (c) Opendatalab. All rights reserved.

+ 114 - 0
mineru/model/mfd/yolo_v8.py

@@ -0,0 +1,114 @@
+import os
+from typing import List, Union
+
+import torch
+from tqdm import tqdm
+from ultralytics import YOLO
+import numpy as np
+from PIL import Image, ImageDraw
+
+from mineru.utils.enum_class import ModelPath
+from mineru.utils.models_download_utils import auto_download_and_get_model_root_path
+
+
+class YOLOv8MFDModel:
+    def __init__(
+        self,
+        weight: str,
+        device: str = "cpu",
+        imgsz: int = 1888,
+        conf: float = 0.25,
+        iou: float = 0.45,
+    ):
+        self.device = torch.device(device)
+        self.model = YOLO(weight).to(self.device)
+        self.imgsz = imgsz
+        self.conf = conf
+        self.iou = iou
+
+    def _run_predict(
+        self,
+        inputs: Union[np.ndarray, Image.Image, List],
+        is_batch: bool = False,
+        conf: float = None,
+    ) -> List:
+        preds = self.model.predict(
+            inputs,
+            imgsz=self.imgsz,
+            conf=conf if conf is not None else self.conf,
+            iou=self.iou,
+            verbose=False,
+            device=self.device
+        )
+        return [pred.cpu() for pred in preds] if is_batch else preds[0].cpu()
+
+    def predict(
+            self,
+            image: Union[np.ndarray, Image.Image],
+            conf: float = None,
+    ):
+        return self._run_predict(image, is_batch=False, conf=conf)
+
+    def batch_predict(
+        self,
+        images: List[Union[np.ndarray, Image.Image]],
+        batch_size: int = 4,
+        conf: float = None,
+    ) -> List:
+        results = []
+        with tqdm(total=len(images), desc="MFD Predict") as pbar:
+            for idx in range(0, len(images), batch_size):
+                batch = images[idx: idx + batch_size]
+                batch_preds = self._run_predict(batch, is_batch=True, conf=conf)
+                results.extend(batch_preds)
+                pbar.update(len(batch))
+        return results
+
+    def visualize(
+        self,
+        image: Union[np.ndarray, Image.Image],
+        results: List
+    ) -> Image.Image:
+
+        if isinstance(image, np.ndarray):
+            image = Image.fromarray(image)
+
+        formula_list = []
+        for xyxy, conf, cla in zip(
+                results.boxes.xyxy.cpu(), results.boxes.conf.cpu(), results.boxes.cls.cpu()
+        ):
+            xmin, ymin, xmax, ymax = [int(p.item()) for p in xyxy]
+            new_item = {
+                "category_id": 13 + int(cla.item()),
+                "poly": [xmin, ymin, xmax, ymin, xmax, ymax, xmin, ymax],
+                "score": round(float(conf.item()), 2),
+            }
+            formula_list.append(new_item)
+
+        draw = ImageDraw.Draw(image)
+        for res in formula_list:
+            poly = res['poly']
+            xmin, ymin, xmax, ymax = poly[0], poly[1], poly[4], poly[5]
+            print(
+                f"Detected box: {xmin}, {ymin}, {xmax}, {ymax}, Category ID: {res['category_id']}, Score: {res['score']}")
+            # 使用PIL在图像上画框
+            draw.rectangle([xmin, ymin, xmax, ymax], outline="red", width=2)
+            # 在框旁边画置信度
+            draw.text((xmax + 10, ymin + 10), f"{res['score']:.2f}", fill="red", font_size=22)
+        return image
+
+if __name__ == '__main__':
+    image_path = r"C:\Users\zhaoxiaomeng\Downloads\screenshot-20250821-192948.png"
+    yolo_v8_mfd_weights = os.path.join(auto_download_and_get_model_root_path(ModelPath.yolo_v8_mfd),
+                                          ModelPath.yolo_v8_mfd)
+    device = 'cuda'
+    model = YOLOv8MFDModel(
+        weight=yolo_v8_mfd_weights,
+        device=device,
+    )
+    image = Image.open(image_path)
+    results = model.predict(image)
+
+    image = model.visualize(image, results)
+
+    image.show()  # 显示图像

+ 1 - 0
mineru/model/mfr/__init__.py

@@ -0,0 +1 @@
+# Copyright (c) Opendatalab. All rights reserved.

+ 0 - 0
mineru/model/mfr/pp_formulanet_plus_m/__init__.py


+ 152 - 0
mineru/model/mfr/pp_formulanet_plus_m/predict_formula.py

@@ -0,0 +1,152 @@
+import os
+import torch
+import yaml
+from pathlib import Path
+
+from loguru import logger
+from tqdm import tqdm
+from mineru.model.utils.tools.infer import pytorchocr_utility
+from mineru.model.utils.pytorchocr.base_ocr_v20 import BaseOCRV20
+from .processors import (
+    UniMERNetImgDecode,
+    UniMERNetTestTransform,
+    LatexImageFormat,
+    ToBatch,
+    UniMERNetDecode,
+)
+
+
+class FormulaRecognizer(BaseOCRV20):
+    def __init__(
+        self,
+        weight_dir,
+        device="cpu",
+    ):
+        self.weights_path = os.path.join(
+            weight_dir,
+            "PP-FormulaNet_plus-M.pth",
+        )
+        self.yaml_path = os.path.join(
+            Path(__file__).parent.parent.parent,
+            "utils",
+            "pytorchocr",
+            "utils",
+            "resources",
+            "pp_formulanet_arch_config.yaml"
+        )
+        self.infer_yaml_path = os.path.join(
+            weight_dir,
+            "PP-FormulaNet_plus-M_inference.yml",
+        )
+
+        network_config = pytorchocr_utility.AnalysisConfig(
+            self.weights_path, self.yaml_path
+        )
+        weights = self.read_pytorch_weights(self.weights_path)
+
+        super(FormulaRecognizer, self).__init__(network_config)
+
+        self.load_state_dict(weights)
+        self.device = torch.device(device) if isinstance(device, str) else device
+        self.net.to(self.device)
+        self.net.eval()
+
+        with open(self.infer_yaml_path, "r", encoding="utf-8") as yaml_file:
+            data = yaml.load(yaml_file, Loader=yaml.FullLoader)
+
+        self.pre_tfs = {
+            "UniMERNetImgDecode": UniMERNetImgDecode(input_size=(384, 384)),
+            "UniMERNetTestTransform": UniMERNetTestTransform(),
+            "LatexImageFormat": LatexImageFormat(),
+            "ToBatch": ToBatch(),
+        }
+
+        self.post_op = UniMERNetDecode(
+            character_list=data["PostProcess"]["character_dict"]
+        )
+
+    def predict(self, img_list, batch_size: int = 64):
+        # Reduce batch size by 50% to avoid potential memory issues during inference.
+        batch_size = int(0.5 * batch_size)
+        batch_imgs = self.pre_tfs["UniMERNetImgDecode"](imgs=img_list)
+        batch_imgs = self.pre_tfs["UniMERNetTestTransform"](imgs=batch_imgs)
+        batch_imgs = self.pre_tfs["LatexImageFormat"](imgs=batch_imgs)
+        inp = self.pre_tfs["ToBatch"](imgs=batch_imgs)
+        inp = torch.from_numpy(inp[0])
+        inp = inp.to(self.device)
+        rec_formula = []
+        with torch.no_grad():
+            with tqdm(total=len(inp), desc="MFR Predict") as pbar:
+                for index in range(0, len(inp), batch_size):
+                    batch_data = inp[index: index + batch_size]
+                    # with torch.amp.autocast(device_type=self.device.type):
+                    #     batch_preds = [self.net(batch_data)]
+                    batch_preds = [self.net(batch_data)]
+                    batch_preds = [p.reshape([-1]) for p in batch_preds[0]]
+                    batch_preds = [bp.cpu().numpy() for bp in batch_preds]
+                    rec_formula += self.post_op(batch_preds)
+                    pbar.update(len(batch_preds))
+        return rec_formula
+
+    def batch_predict(
+        self, images_mfd_res: list, images: list, batch_size: int = 64
+    ) -> list:
+        images_formula_list = []
+        mf_image_list = []
+        backfill_list = []
+        image_info = []  # Store (area, original_index, image) tuples
+
+        # Collect images with their original indices
+        for image_index in range(len(images_mfd_res)):
+            mfd_res = images_mfd_res[image_index]
+            image = images[image_index]
+            formula_list = []
+
+            for idx, (xyxy, conf, cla) in enumerate(
+                zip(mfd_res.boxes.xyxy, mfd_res.boxes.conf, mfd_res.boxes.cls)
+            ):
+                xmin, ymin, xmax, ymax = [int(p.item()) for p in xyxy]
+                new_item = {
+                    "category_id": 13 + int(cla.item()),
+                    "poly": [xmin, ymin, xmax, ymin, xmax, ymax, xmin, ymax],
+                    "score": round(float(conf.item()), 2),
+                    "latex": "",
+                }
+                formula_list.append(new_item)
+                bbox_img = image[ymin:ymax, xmin:xmax]
+                area = (xmax - xmin) * (ymax - ymin)
+
+                curr_idx = len(mf_image_list)
+                image_info.append((area, curr_idx, bbox_img))
+                mf_image_list.append(bbox_img)
+
+            images_formula_list.append(formula_list)
+            backfill_list += formula_list
+
+        # Stable sort by area
+        image_info.sort(key=lambda x: x[0])  # sort by area
+        sorted_indices = [x[1] for x in image_info]
+        sorted_images = [x[2] for x in image_info]
+
+        # Create mapping for results
+        index_mapping = {
+            new_idx: old_idx for new_idx, old_idx in enumerate(sorted_indices)
+        }
+
+        if len(sorted_images) > 0:
+            # 进行预测
+            batch_size = min(batch_size, max(1, 2 ** (len(sorted_images).bit_length() - 1))) if sorted_images else 1
+            rec_formula = self.predict(sorted_images, batch_size)
+        else:
+            rec_formula = []
+
+        # Restore original order
+        unsorted_results = [""] * len(rec_formula)
+        for new_idx, latex in enumerate(rec_formula):
+            original_idx = index_mapping[new_idx]
+            unsorted_results[original_idx] = latex
+
+        for res, latex in zip(backfill_list, unsorted_results):
+            res["latex"] = latex
+
+        return images_formula_list

+ 657 - 0
mineru/model/mfr/pp_formulanet_plus_m/processors.py

@@ -0,0 +1,657 @@
+import json
+import numpy as np
+import cv2
+import math
+import re
+
+from PIL import Image, ImageOps
+from typing import List, Optional, Tuple, Union, Dict, Any
+
+from loguru import logger
+from tokenizers import AddedToken
+from tokenizers import Tokenizer as TokenizerFast
+
+from mineru.model.mfr.utils import fix_latex_left_right, fix_latex_environments, remove_up_commands, \
+    remove_unsupported_commands
+
+
+class UniMERNetImgDecode(object):
+    """Class for decoding images for UniMERNet, including cropping margins, resizing, and padding."""
+
+    def __init__(
+            self, input_size: Tuple[int, int], random_padding: bool = False, **kwargs
+    ) -> None:
+        """Initializes the UniMERNetImgDecode class with input size and random padding options.
+
+        Args:
+            input_size (tuple): The desired input size for the images (height, width).
+            random_padding (bool): Whether to use random padding for resizing.
+            **kwargs: Additional keyword arguments."""
+        self.input_size = input_size
+        self.random_padding = random_padding
+
+    def crop_margin(self, img: Image.Image) -> Image.Image:
+        """Crops the margin of the image based on grayscale thresholding.
+
+        Args:
+            img (PIL.Image.Image): The input image.
+
+        Returns:
+            PIL.Image.Image: The cropped image."""
+        data = np.array(img.convert("L"))
+        data = data.astype(np.uint8)
+        max_val = data.max()
+        min_val = data.min()
+        if max_val == min_val:
+            return img
+        data = (data - min_val) / (max_val - min_val) * 255
+        gray = 255 * (data < 200).astype(np.uint8)
+        coords = cv2.findNonZero(gray)  # Find all non-zero points (text)
+        a, b, w, h = cv2.boundingRect(coords)  # Find minimum spanning bounding box
+        return img.crop((a, b, w + a, h + b))
+
+    def get_dimensions(self, img: Union[Image.Image, np.ndarray]) -> List[int]:
+        """Gets the dimensions of the image.
+
+        Args:
+            img (PIL.Image.Image or numpy.ndarray): The input image.
+
+        Returns:
+            list: A list containing the number of channels, height, and width."""
+        if hasattr(img, "getbands"):
+            channels = len(img.getbands())
+        else:
+            channels = img.channels
+        width, height = img.size
+        return [channels, height, width]
+
+    def _compute_resized_output_size(
+            self,
+            image_size: Tuple[int, int],
+            size: Union[int, Tuple[int, int]],
+            max_size: Optional[int] = None,
+    ) -> List[int]:
+        """Computes the resized output size of the image.
+
+        Args:
+            image_size (tuple): The original size of the image (height, width).
+            size (int or tuple): The desired size for the smallest edge or both height and width.
+            max_size (int, optional): The maximum allowed size for the longer edge.
+
+        Returns:
+            list: A list containing the new height and width."""
+        if len(size) == 1:  # specified size only for the smallest edge
+            h, w = image_size
+            short, long = (w, h) if w <= h else (h, w)
+            requested_new_short = size if isinstance(size, int) else size[0]
+
+            new_short, new_long = requested_new_short, int(
+                requested_new_short * long / short
+            )
+
+            if max_size is not None:
+                if max_size <= requested_new_short:
+                    raise ValueError(
+                        f"max_size = {max_size} must be strictly greater than the requested "
+                        f"size for the smaller edge size = {size}"
+                    )
+                if new_long > max_size:
+                    new_short, new_long = int(max_size * new_short / new_long), max_size
+
+            new_w, new_h = (new_short, new_long) if w <= h else (new_long, new_short)
+        else:  # specified both h and w
+            new_w, new_h = size[1], size[0]
+        return [new_h, new_w]
+
+    def resize(
+            self, img: Image.Image, size: Union[int, Tuple[int, int]]
+    ) -> Image.Image:
+        """Resizes the image to the specified size.
+
+        Args:
+            img (PIL.Image.Image): The input image.
+            size (int or tuple): The desired size for the smallest edge or both height and width.
+
+        Returns:
+            PIL.Image.Image: The resized image."""
+        _, image_height, image_width = self.get_dimensions(img)
+        if isinstance(size, int):
+            size = [size]
+        max_size = None
+        output_size = self._compute_resized_output_size(
+            (image_height, image_width), size, max_size
+        )
+        img = img.resize(tuple(output_size[::-1]), resample=2)
+        return img
+
+    def img_decode(self, img: np.ndarray) -> Optional[np.ndarray]:
+        """Decodes the image by cropping margins, resizing, and adding padding.
+
+        Args:
+            img (numpy.ndarray): The input image array.
+
+        Returns:
+            numpy.ndarray: The decoded image array."""
+        try:
+            img = self.crop_margin(Image.fromarray(img).convert("RGB"))
+        except OSError:
+            return
+        if img.height == 0 or img.width == 0:
+            return
+        img = self.resize(img, min(self.input_size))
+        img.thumbnail((self.input_size[1], self.input_size[0]))
+        delta_width = self.input_size[1] - img.width
+        delta_height = self.input_size[0] - img.height
+        if self.random_padding:
+            pad_width = np.random.randint(low=0, high=delta_width + 1)
+            pad_height = np.random.randint(low=0, high=delta_height + 1)
+        else:
+            pad_width = delta_width // 2
+            pad_height = delta_height // 2
+        padding = (
+            pad_width,
+            pad_height,
+            delta_width - pad_width,
+            delta_height - pad_height,
+        )
+        return np.array(ImageOps.expand(img, padding))
+
+    def __call__(self, imgs: List[np.ndarray]) -> List[Optional[np.ndarray]]:
+        """Calls the img_decode method on a list of images.
+
+        Args:
+            imgs (list of numpy.ndarray): The list of input image arrays.
+
+        Returns:
+            list of numpy.ndarray: The list of decoded image arrays."""
+        return [self.img_decode(img) for img in imgs]
+
+
+class UniMERNetTestTransform:
+    """
+    A class for transforming images according to UniMERNet test specifications.
+    """
+
+    def __init__(self, **kwargs) -> None:
+        """
+        Initializes the UniMERNetTestTransform class.
+        """
+        super().__init__()
+        self.num_output_channels = 3
+
+    def transform(self, img: np.ndarray) -> np.ndarray:
+        """
+        Transforms a single image for UniMERNet testing.
+
+        Args:
+            img (numpy.ndarray): The input image.
+
+        Returns:
+            numpy.ndarray: The transformed image.
+        """
+        mean = [0.7931, 0.7931, 0.7931]
+        std = [0.1738, 0.1738, 0.1738]
+        scale = float(1 / 255.0)
+        shape = (1, 1, 3)
+        mean = np.array(mean).reshape(shape).astype("float32")
+        std = np.array(std).reshape(shape).astype("float32")
+        img = (img.astype("float32") * scale - mean) / std
+        grayscale_image = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
+        squeezed = np.squeeze(grayscale_image)
+        img = cv2.merge([squeezed] * self.num_output_channels)
+        return img
+
+    def __call__(self, imgs: List[np.ndarray]) -> List[np.ndarray]:
+        """
+        Applies the transform to a list of images.
+
+        Args:
+            imgs (list of numpy.ndarray): The list of input images.
+
+        Returns:
+            list of numpy.ndarray: The list of transformed images.
+        """
+        return [self.transform(img) for img in imgs]
+
+
+class LatexImageFormat:
+    """Class for formatting images to a specific format suitable for LaTeX."""
+
+    def __init__(self, **kwargs) -> None:
+        """Initializes the LatexImageFormat class with optional keyword arguments."""
+        super().__init__()
+
+    def format(self, img: np.ndarray) -> np.ndarray:
+        """Formats a single image to the LaTeX-compatible format.
+
+        Args:
+            img (numpy.ndarray): The input image as a numpy array.
+
+        Returns:
+            numpy.ndarray: The formatted image as a numpy array with an added dimension for color.
+        """
+        im_h, im_w = img.shape[:2]
+        divide_h = math.ceil(im_h / 16) * 16
+        divide_w = math.ceil(im_w / 16) * 16
+        img = img[:, :, 0]
+        img = np.pad(
+            img, ((0, divide_h - im_h), (0, divide_w - im_w)), constant_values=(1, 1)
+        )
+        img_expanded = img[:, :, np.newaxis].transpose(2, 0, 1)
+        return img_expanded[np.newaxis, :]
+
+    def __call__(self, imgs: List[np.ndarray]) -> List[np.ndarray]:
+        """Applies the format method to a list of images.
+
+        Args:
+            imgs (list of numpy.ndarray): A list of input images as numpy arrays.
+
+        Returns:
+            list of numpy.ndarray: A list of formatted images as numpy arrays.
+        """
+        return [self.format(img) for img in imgs]
+
+
+class ToBatch(object):
+    """A class for batching images."""
+
+    def __init__(self, **kwargs) -> None:
+        """Initializes the ToBatch object."""
+        super(ToBatch, self).__init__()
+
+    def __call__(self, imgs: List[np.ndarray]) -> List[np.ndarray]:
+        """Concatenates a list of images into a single batch.
+
+        Args:
+            imgs (list): A list of image arrays to be concatenated.
+
+        Returns:
+            list: A list containing the concatenated batch of images wrapped in another list (to comply with common batch processing formats).
+        """
+        batch_imgs = np.concatenate(imgs)
+        batch_imgs = batch_imgs.copy()
+        x = [batch_imgs]
+        return x
+
+
+class UniMERNetDecode(object):
+    """Class for decoding tokenized inputs using UniMERNet tokenizer.
+
+    Attributes:
+        SPECIAL_TOKENS_ATTRIBUTES (List[str]): List of special token attributes.
+        model_input_names (List[str]): List of model input names.
+        max_seq_len (int): Maximum sequence length.
+        pad_token_id (int): ID for the padding token.
+        bos_token_id (int): ID for the beginning-of-sequence token.
+        eos_token_id (int): ID for the end-of-sequence token.
+        padding_side (str): Padding side, either 'left' or 'right'.
+        pad_token (str): Padding token.
+        pad_token_type_id (int): Type ID for the padding token.
+        pad_to_multiple_of (Optional[int]): If set, pad to a multiple of this value.
+        tokenizer (TokenizerFast): Fast tokenizer instance.
+
+    Args:
+        character_list (Dict[str, Any]): Dictionary containing tokenizer configuration.
+        **kwargs: Additional keyword arguments.
+    """
+
+    SPECIAL_TOKENS_ATTRIBUTES = [
+        "bos_token",
+        "eos_token",
+        "unk_token",
+        "sep_token",
+        "pad_token",
+        "cls_token",
+        "mask_token",
+        "additional_special_tokens",
+    ]
+
+    def __init__(
+            self,
+            character_list: Dict[str, Any],
+            **kwargs,
+    ) -> None:
+        """Initializes the UniMERNetDecode class.
+
+        Args:
+            character_list (Dict[str, Any]): Dictionary containing tokenizer configuration.
+            **kwargs: Additional keyword arguments.
+        """
+
+        self._unk_token = "<unk>"
+        self._bos_token = "<s>"
+        self._eos_token = "</s>"
+        self._pad_token = "<pad>"
+        self._sep_token = None
+        self._cls_token = None
+        self._mask_token = None
+        self._additional_special_tokens = []
+        self.model_input_names = ["input_ids", "token_type_ids", "attention_mask"]
+        self.max_seq_len = 2048
+        self.pad_token_id = 1
+        self.bos_token_id = 0
+        self.eos_token_id = 2
+        self.padding_side = "right"
+        self.pad_token_id = 1
+        self.pad_token = "<pad>"
+        self.pad_token_type_id = 0
+        self.pad_to_multiple_of = None
+
+        fast_tokenizer_str = json.dumps(character_list["fast_tokenizer_file"])
+        fast_tokenizer_buffer = fast_tokenizer_str.encode("utf-8")
+        self.tokenizer = TokenizerFast.from_buffer(fast_tokenizer_buffer)
+        tokenizer_config = (
+            character_list["tokenizer_config_file"]
+            if "tokenizer_config_file" in character_list
+            else None
+        )
+        added_tokens_decoder = {}
+        added_tokens_map = {}
+        if tokenizer_config is not None:
+            init_kwargs = tokenizer_config
+            if "added_tokens_decoder" in init_kwargs:
+                for idx, token in init_kwargs["added_tokens_decoder"].items():
+                    if isinstance(token, dict):
+                        token = AddedToken(**token)
+                    if isinstance(token, AddedToken):
+                        added_tokens_decoder[int(idx)] = token
+                        added_tokens_map[str(token)] = token
+                    else:
+                        raise ValueError(
+                            f"Found a {token.__class__} in the saved `added_tokens_decoder`, should be a dictionary or an AddedToken instance"
+                        )
+            init_kwargs["added_tokens_decoder"] = added_tokens_decoder
+            added_tokens_decoder = init_kwargs.pop("added_tokens_decoder", {})
+            tokens_to_add = [
+                token
+                for index, token in sorted(
+                    added_tokens_decoder.items(), key=lambda x: x[0]
+                )
+                if token not in added_tokens_decoder
+            ]
+            added_tokens_encoder = self.added_tokens_encoder(added_tokens_decoder)
+            encoder = list(added_tokens_encoder.keys()) + [
+                str(token) for token in tokens_to_add
+            ]
+            tokens_to_add += [
+                token
+                for token in self.all_special_tokens_extended
+                if token not in encoder and token not in tokens_to_add
+            ]
+            if len(tokens_to_add) > 0:
+                is_last_special = None
+                tokens = []
+                special_tokens = self.all_special_tokens
+                for token in tokens_to_add:
+                    is_special = (
+                        (token.special or str(token) in special_tokens)
+                        if isinstance(token, AddedToken)
+                        else str(token) in special_tokens
+                    )
+                    if is_last_special is None or is_last_special == is_special:
+                        tokens.append(token)
+                    else:
+                        self._add_tokens(tokens, special_tokens=is_last_special)
+                        tokens = [token]
+                    is_last_special = is_special
+                if tokens:
+                    self._add_tokens(tokens, special_tokens=is_last_special)
+
+    def _add_tokens(
+            self, new_tokens: "List[Union[AddedToken, str]]", special_tokens: bool = False
+    ) -> "List[Union[AddedToken, str]]":
+        """Adds new tokens to the tokenizer.
+
+        Args:
+            new_tokens (List[Union[AddedToken, str]]): Tokens to be added.
+            special_tokens (bool): Indicates whether the tokens are special tokens.
+
+        Returns:
+            List[Union[AddedToken, str]]: added tokens.
+        """
+        if special_tokens:
+            return self.tokenizer.add_special_tokens(new_tokens)
+
+        return self.tokenizer.add_tokens(new_tokens)
+
+    def added_tokens_encoder(
+            self, added_tokens_decoder: "Dict[int, AddedToken]"
+    ) -> Dict[str, int]:
+        """Creates an encoder dictionary from added tokens.
+
+        Args:
+            added_tokens_decoder (Dict[int, AddedToken]): Dictionary mapping token IDs to tokens.
+
+        Returns:
+            Dict[str, int]: Dictionary mapping token strings to IDs.
+        """
+        return {
+            k.content: v
+            for v, k in sorted(added_tokens_decoder.items(), key=lambda item: item[0])
+        }
+
+    @property
+    def all_special_tokens(self) -> List[str]:
+        """Retrieves all special tokens.
+
+        Returns:
+            List[str]: List of all special tokens as strings.
+        """
+        all_toks = [str(s) for s in self.all_special_tokens_extended]
+        return all_toks
+
+    @property
+    def all_special_tokens_extended(self) -> "List[Union[str, AddedToken]]":
+        """Retrieves all special tokens, including extended ones.
+
+        Returns:
+            List[Union[str, AddedToken]]: List of all special tokens.
+        """
+        all_tokens = []
+        seen = set()
+        for value in self.special_tokens_map_extended.values():
+            if isinstance(value, (list, tuple)):
+                tokens_to_add = [token for token in value if str(token) not in seen]
+            else:
+                tokens_to_add = [value] if str(value) not in seen else []
+            seen.update(map(str, tokens_to_add))
+            all_tokens.extend(tokens_to_add)
+        return all_tokens
+
+    @property
+    def special_tokens_map_extended(self) -> Dict[str, Union[str, List[str]]]:
+        """Retrieves the extended map of special tokens.
+
+        Returns:
+            Dict[str, Union[str, List[str]]]: Dictionary mapping special token attributes to their values.
+        """
+        set_attr = {}
+        for attr in self.SPECIAL_TOKENS_ATTRIBUTES:
+            attr_value = getattr(self, "_" + attr)
+            if attr_value:
+                set_attr[attr] = attr_value
+        return set_attr
+
+    def convert_ids_to_tokens(
+            self, ids: Union[int, List[int]], skip_special_tokens: bool = False
+    ) -> Union[str, List[str]]:
+        """Converts token IDs to token strings.
+
+        Args:
+            ids (Union[int, List[int]]): Token ID(s) to convert.
+            skip_special_tokens (bool): Whether to skip special tokens during conversion.
+
+        Returns:
+            Union[str, List[str]]: Converted token string(s).
+        """
+        if isinstance(ids, int):
+            return self.tokenizer.id_to_token(ids)
+        tokens = []
+        for index in ids:
+            index = int(index)
+            if skip_special_tokens and index in self.all_special_ids:
+                continue
+            tokens.append(self.tokenizer.id_to_token(index))
+        return tokens
+
+    def detokenize(self, tokens: List[List[int]]) -> List[List[str]]:
+        """Detokenizes a list of token IDs back into strings.
+
+        Args:
+            tokens (List[List[int]]): List of token ID lists.
+
+        Returns:
+            List[List[str]]: List of detokenized strings.
+        """
+        self.tokenizer.bos_token = "<s>"
+        self.tokenizer.eos_token = "</s>"
+        self.tokenizer.pad_token = "<pad>"
+        toks = [self.convert_ids_to_tokens(tok) for tok in tokens]
+        for b in range(len(toks)):
+            for i in reversed(range(len(toks[b]))):
+                if toks[b][i] is None:
+                    toks[b][i] = ""
+                toks[b][i] = toks[b][i].replace("Ġ", " ").strip()
+                if toks[b][i] in (
+                        [
+                            self.tokenizer.bos_token,
+                            self.tokenizer.eos_token,
+                            self.tokenizer.pad_token,
+                        ]
+                ):
+                    del toks[b][i]
+        return toks
+
+    def token2str(self, token_ids: List[List[int]]) -> List[str]:
+        """Converts a list of token IDs to strings.
+
+        Args:
+            token_ids (List[List[int]]): List of token ID lists.
+
+        Returns:
+            List[str]: List of converted strings.
+        """
+        generated_text = []
+        for tok_id in token_ids:
+            end_idx = np.argwhere(tok_id == 2)
+            if len(end_idx) > 0:
+                end_idx = int(end_idx[0][0])
+                tok_id = tok_id[: end_idx + 1]
+            generated_text.append(
+                self.tokenizer.decode(tok_id, skip_special_tokens=True)
+            )
+        generated_text = [self.post_process(text) for text in generated_text]
+        return generated_text
+
+    def normalize(self, s: str) -> str:
+        """Normalizes a string by removing unnecessary spaces.
+
+        Args:
+            s (str): String to normalize.
+
+        Returns:
+            str: Normalized string.
+        """
+        text_reg = r"(\\(operatorname|mathrm|text|mathbf)\s?\*? {.*?})"
+        letter = "[a-zA-Z]"
+        noletter = r"[\W_^\d]"
+        names = []
+        for x in re.findall(text_reg, s):
+            pattern = r"(\\[a-zA-Z]+)\s(?=\w)|\\[a-zA-Z]+\s(?=})"
+            matches = re.findall(pattern, x[0])
+            for m in matches:
+                if (
+                        m
+                        not in [
+                    "\\operatorname",
+                    "\\mathrm",
+                    "\\text",
+                    "\\mathbf",
+                ]
+                        and m.strip() != ""
+                ):
+                    s = s.replace(m, m + "XXXXXXX")
+                    s = s.replace(" ", "")
+                    names.append(s)
+        if len(names) > 0:
+            s = re.sub(text_reg, lambda match: str(names.pop(0)), s)
+        news = s
+        while True:
+            s = news
+            news = re.sub(r"(?!\\ )(%s)\s+?(%s)" % (noletter, noletter), r"\1\2", s)
+            news = re.sub(r"(?!\\ )(%s)\s+?(%s)" % (noletter, letter), r"\1\2", news)
+            news = re.sub(r"(%s)\s+?(%s)" % (letter, noletter), r"\1\2", news)
+            if news == s:
+                break
+        return s.replace("XXXXXXX", " ")
+
+    def remove_chinese_text_wrapping(self, formula):
+        pattern = re.compile(r"\\text\s*{\s*([^}]*?[\u4e00-\u9fff]+[^}]*?)\s*}")
+
+        def replacer(match):
+            return match.group(1)
+
+        replaced_formula = pattern.sub(replacer, formula)
+        return replaced_formula.replace('"', "")
+
+    def post_process(self, text: str) -> str:
+        """Post-processes a string by fixing text and normalizing it.
+
+        Args:
+            text (str): String to post-process.
+
+        Returns:
+            str: Post-processed string.
+        """
+        from ftfy import fix_text
+
+        text = self.remove_chinese_text_wrapping(text)
+        text = fix_text(text)
+        # logger.debug(f"Text after ftfy fix: {text}")
+        text = self.fix_latex(text)
+        # logger.debug(f"Text after LaTeX fix: {text}")
+        return text
+
+    def fix_latex(self, text: str) -> str:
+        """Fixes LaTeX formatting in a string.
+
+        Args:
+            text (str): String to fix.
+
+        Returns:
+            str: Fixed string.
+        """
+        text = fix_latex_left_right(text, fix_delimiter=False)
+        text = fix_latex_environments(text)
+        text = remove_up_commands(text)
+        text = remove_unsupported_commands(text)
+        # text = self.normalize(text)
+        return text
+
+    def __call__(
+            self,
+            preds: np.ndarray,
+            label: Optional[np.ndarray] = None,
+            mode: str = "eval",
+            *args,
+            **kwargs,
+    ) -> Union[List[str], tuple]:
+        """Processes predictions and optionally labels, returning the decoded text.
+
+        Args:
+            preds (np.ndarray): Model predictions.
+            label (Optional[np.ndarray]): True labels, if available.
+            mode (str): Mode of operation, either 'train' or 'eval'.
+
+        Returns:
+            Union[List[str], tuple]: Decoded text, optionally with labels.
+        """
+        if mode == "train":
+            preds_idx = np.array(preds.argmax(axis=2))
+            text = self.token2str(preds_idx)
+        else:
+            text = self.token2str(np.array(preds))
+        if label is None:
+            return text
+        label = self.token2str(np.array(label))
+        return text, label

+ 207 - 0
mineru/model/mfr/unimernet/Unimernet.py

@@ -0,0 +1,207 @@
+import torch
+from torch.utils.data import DataLoader, Dataset
+from tqdm import tqdm
+
+from mineru.utils.boxbase import calculate_iou
+
+
+class MathDataset(Dataset):
+    def __init__(self, image_paths, transform=None):
+        self.image_paths = image_paths
+        self.transform = transform
+
+    def __len__(self):
+        return len(self.image_paths)
+
+    def __getitem__(self, idx):
+        raw_image = self.image_paths[idx]
+        if self.transform:
+            image = self.transform(raw_image)
+            return image
+
+
+class UnimernetModel(object):
+    def __init__(self, weight_dir, _device_="cpu"):
+        from .unimernet_hf import UnimernetModel
+        if _device_.startswith("mps") or _device_.startswith("npu") or _device_.startswith("musa"):
+            self.model = UnimernetModel.from_pretrained(weight_dir, attn_implementation="eager")
+        else:
+            self.model = UnimernetModel.from_pretrained(weight_dir)
+        self.device = torch.device(_device_)
+        self.model.to(self.device)
+        if not _device_.startswith("cpu"):
+            self.model = self.model.to(dtype=torch.float16)
+        self.model.eval()
+
+    @staticmethod
+    def _filter_boxes_by_iou(xyxy, conf, cla, iou_threshold=0.8):
+        """过滤IOU超过阈值的重叠框,保留置信度较高的框。
+
+        Args:
+            xyxy: 框坐标张量,shape为(N, 4)
+            conf: 置信度张量,shape为(N,)
+            cla: 类别张量,shape为(N,)
+            iou_threshold: IOU阈值,默认0.9
+
+        Returns:
+            过滤后的xyxy, conf, cla张量
+        """
+        if len(xyxy) == 0:
+            return xyxy, conf, cla
+
+        # 转换为CPU进行处理
+        xyxy_cpu = xyxy.cpu()
+        conf_cpu = conf.cpu()
+
+        n = len(xyxy_cpu)
+        keep = [True] * n
+
+        for i in range(n):
+            if not keep[i]:
+                continue
+            bbox1 = xyxy_cpu[i].tolist()
+            for j in range(i + 1, n):
+                if not keep[j]:
+                    continue
+                bbox2 = xyxy_cpu[j].tolist()
+                iou = calculate_iou(bbox1, bbox2)
+                if iou > iou_threshold:
+                    # 保留置信度较高的框
+                    if conf_cpu[i] >= conf_cpu[j]:
+                        keep[j] = False
+                    else:
+                        keep[i] = False
+                        break  # i被删除,跳出内循环
+
+        keep_indices = [i for i in range(n) if keep[i]]
+        if len(keep_indices) == n:
+            return xyxy, conf, cla
+
+        keep_indices = torch.tensor(keep_indices, dtype=torch.long)
+        return xyxy[keep_indices], conf[keep_indices], cla[keep_indices]
+
+    def predict(self, mfd_res, image):
+        formula_list = []
+        mf_image_list = []
+
+        # 对检测框进行IOU去重,保留置信度较高的框
+        xyxy_filtered, conf_filtered, cla_filtered = self._filter_boxes_by_iou(
+            mfd_res.boxes.xyxy, mfd_res.boxes.conf, mfd_res.boxes.cls
+        )
+
+        for xyxy, conf, cla in zip(
+            xyxy_filtered.cpu(), conf_filtered.cpu(), cla_filtered.cpu()
+        ):
+            xmin, ymin, xmax, ymax = [int(p.item()) for p in xyxy]
+            new_item = {
+                "category_id": 13 + int(cla.item()),
+                "poly": [xmin, ymin, xmax, ymin, xmax, ymax, xmin, ymax],
+                "score": round(float(conf.item()), 2),
+                "latex": "",
+            }
+            formula_list.append(new_item)
+            bbox_img = image[ymin:ymax, xmin:xmax]
+            mf_image_list.append(bbox_img)
+
+        dataset = MathDataset(mf_image_list, transform=self.model.transform)
+        dataloader = DataLoader(dataset, batch_size=32, num_workers=0)
+        mfr_res = []
+        for mf_img in dataloader:
+            mf_img = mf_img.to(dtype=self.model.dtype)
+            mf_img = mf_img.to(self.device)
+            with torch.no_grad():
+                output = self.model.generate({"image": mf_img})
+            mfr_res.extend(output["fixed_str"])
+        for res, latex in zip(formula_list, mfr_res):
+            res["latex"] = latex
+        return formula_list
+
+    def batch_predict(
+            self,
+            images_mfd_res: list,
+            images: list,
+            batch_size: int = 64,
+            interline_enable: bool = True,
+    ) -> list:
+        images_formula_list = []
+        mf_image_list = []
+        backfill_list = []
+        image_info = []  # Store (area, original_index, image) tuples
+
+        # Collect images with their original indices
+        for image_index in range(len(images_mfd_res)):
+            mfd_res = images_mfd_res[image_index]
+            image = images[image_index]
+            formula_list = []
+
+            # 对检测框进行IOU去重,保留置信度较高的框
+            xyxy_filtered, conf_filtered, cla_filtered = self._filter_boxes_by_iou(
+                mfd_res.boxes.xyxy, mfd_res.boxes.conf, mfd_res.boxes.cls
+            )
+
+            for idx, (xyxy, conf, cla) in enumerate(zip(
+                    xyxy_filtered, conf_filtered, cla_filtered
+            )):
+                if not interline_enable and cla.item() == 1:
+                    continue  # Skip interline regions if not enabled
+                xmin, ymin, xmax, ymax = [int(p.item()) for p in xyxy]
+                new_item = {
+                    "category_id": 13 + int(cla.item()),
+                    "poly": [xmin, ymin, xmax, ymin, xmax, ymax, xmin, ymax],
+                    "score": round(float(conf.item()), 2),
+                    "latex": "",
+                }
+                formula_list.append(new_item)
+                bbox_img = image[ymin:ymax, xmin:xmax]
+                area = (xmax - xmin) * (ymax - ymin)
+
+                curr_idx = len(mf_image_list)
+                image_info.append((area, curr_idx, bbox_img))
+                mf_image_list.append(bbox_img)
+
+            images_formula_list.append(formula_list)
+            backfill_list += formula_list
+
+        # Stable sort by area
+        image_info.sort(key=lambda x: x[0])  # sort by area
+        sorted_indices = [x[1] for x in image_info]
+        sorted_images = [x[2] for x in image_info]
+
+        # Create mapping for results
+        index_mapping = {new_idx: old_idx for new_idx, old_idx in enumerate(sorted_indices)}
+
+        # Create dataset with sorted images
+        dataset = MathDataset(sorted_images, transform=self.model.transform)
+
+        # 如果batch_size > len(sorted_images),则设置为不超过len(sorted_images)的2的幂
+        batch_size = min(batch_size, max(1, 2 ** (len(sorted_images).bit_length() - 1))) if sorted_images else 1
+
+        dataloader = DataLoader(dataset, batch_size=batch_size, num_workers=0)
+
+        # Process batches and store results
+        mfr_res = []
+        # for mf_img in dataloader:
+
+        with tqdm(total=len(sorted_images), desc="MFR Predict") as pbar:
+            for index, mf_img in enumerate(dataloader):
+                mf_img = mf_img.to(dtype=self.model.dtype)
+                mf_img = mf_img.to(self.device)
+                with torch.no_grad():
+                    output = self.model.generate({"image": mf_img}, batch_size=batch_size)
+                mfr_res.extend(output["fixed_str"])
+
+                # 更新进度条,每次增加batch_size,但要注意最后一个batch可能不足batch_size
+                current_batch_size = min(batch_size, len(sorted_images) - index * batch_size)
+                pbar.update(current_batch_size)
+
+        # Restore original order
+        unsorted_results = [""] * len(mfr_res)
+        for new_idx, latex in enumerate(mfr_res):
+            original_idx = index_mapping[new_idx]
+            unsorted_results[original_idx] = latex
+
+        # Fill results back
+        for res, latex in zip(backfill_list, unsorted_results):
+            res["latex"] = latex
+
+        return images_formula_list

+ 0 - 0
mineru/model/mfr/unimernet/__init__.py


+ 13 - 0
mineru/model/mfr/unimernet/unimernet_hf/__init__.py

@@ -0,0 +1,13 @@
+from .unimer_swin import UnimerSwinConfig, UnimerSwinModel, UnimerSwinImageProcessor
+from .unimer_mbart import UnimerMBartConfig, UnimerMBartModel, UnimerMBartForCausalLM
+from .modeling_unimernet import UnimernetModel
+
+__all__ = [
+    "UnimerSwinConfig",
+    "UnimerSwinModel",
+    "UnimerSwinImageProcessor",
+    "UnimerMBartConfig",
+    "UnimerMBartModel",
+    "UnimerMBartForCausalLM",
+    "UnimernetModel",
+]

+ 176 - 0
mineru/model/mfr/unimernet/unimernet_hf/modeling_unimernet.py

@@ -0,0 +1,176 @@
+import os
+import warnings
+from typing import Optional
+
+import torch
+from ftfy import fix_text
+from loguru import logger
+
+from transformers import AutoConfig, AutoModel, AutoModelForCausalLM, AutoTokenizer, PretrainedConfig, PreTrainedModel
+from transformers import VisionEncoderDecoderConfig, VisionEncoderDecoderModel
+from transformers.models.vision_encoder_decoder.modeling_vision_encoder_decoder import logger as base_model_logger
+
+from .unimer_swin import UnimerSwinConfig, UnimerSwinModel, UnimerSwinImageProcessor
+from .unimer_mbart import UnimerMBartConfig, UnimerMBartForCausalLM
+from ...utils import latex_rm_whitespace
+
+AutoConfig.register(UnimerSwinConfig.model_type, UnimerSwinConfig)
+AutoConfig.register(UnimerMBartConfig.model_type, UnimerMBartConfig)
+AutoModel.register(UnimerSwinConfig, UnimerSwinModel)
+AutoModelForCausalLM.register(UnimerMBartConfig, UnimerMBartForCausalLM)
+
+
+# TODO: rewrite tokenizer
+class TokenizerWrapper:
+    def __init__(self, tokenizer):
+        self.tokenizer = tokenizer
+        self.pad_token_id = self.tokenizer.pad_token_id
+        self.bos_token_id = self.tokenizer.bos_token_id
+        self.eos_token_id = self.tokenizer.eos_token_id
+
+    def __len__(self):
+        return len(self.tokenizer)
+
+    def tokenize(self, text, **kwargs):
+        return self.tokenizer(
+            text,
+            return_token_type_ids=False,
+            return_tensors="pt",
+            padding="longest",
+            truncation=True,
+            **kwargs,
+        )
+
+    def token2str(self, tokens) -> list:
+        generated_text = self.tokenizer.batch_decode(tokens, skip_special_tokens=True)
+        generated_text = [fix_text(text) for text in generated_text]
+        return generated_text
+
+    def detokenize(self, tokens):
+        toks = [self.tokenizer.convert_ids_to_tokens(tok) for tok in tokens]
+        for b in range(len(toks)):
+            for i in reversed(range(len(toks[b]))):
+                if toks[b][i] is None:
+                    toks[b][i] = ''
+                toks[b][i] = toks[b][i].replace('Ġ', ' ').strip()
+                if toks[b][i] in ([self.tokenizer.bos_token, self.tokenizer.eos_token, self.tokenizer.pad_token]):
+                    del toks[b][i]
+        return toks
+
+class UnimernetModel(VisionEncoderDecoderModel):
+    def __init__(
+        self,
+        config: Optional[PretrainedConfig] = None,
+        encoder: Optional[PreTrainedModel] = None,
+        decoder: Optional[PreTrainedModel] = None,
+    ):
+        # VisionEncoderDecoderModel's checking log has bug, disable for temp.
+        base_model_logger.disabled = True
+        try:
+            super().__init__(config, encoder, decoder)
+        finally:
+            base_model_logger.disabled = False
+
+        if not config or not hasattr(config, "_name_or_path"):
+            raise RuntimeError("config._name_or_path is required by UnimernetModel.")
+
+        model_path = config._name_or_path
+        self.transform = UnimerSwinImageProcessor()
+        self.tokenizer = TokenizerWrapper(AutoTokenizer.from_pretrained(model_path))
+        self._post_check()
+    
+    def _post_check(self):
+        tokenizer = self.tokenizer
+
+        if tokenizer.tokenizer.model_max_length != self.config.decoder.max_position_embeddings:
+            warnings.warn(
+                f"decoder.max_position_embeddings={self.config.decoder.max_position_embeddings}," +
+                f" but tokenizer.model_max_length={tokenizer.tokenizer.model_max_length}, will set" +
+                f" tokenizer.model_max_length to {self.config.decoder.max_position_embeddings}.")
+            tokenizer.tokenizer.model_max_length = self.config.decoder.max_position_embeddings
+
+        assert self.config.decoder.vocab_size == len(tokenizer)
+        assert self.config.decoder_start_token_id == tokenizer.bos_token_id
+        assert self.config.pad_token_id == tokenizer.pad_token_id
+
+    @classmethod
+    def from_checkpoint(cls, model_path: str, model_filename: str = "pytorch_model.pth", state_dict_strip_prefix="model.model."):
+        config = VisionEncoderDecoderConfig.from_pretrained(model_path)
+        config._name_or_path = model_path
+        config.encoder = UnimerSwinConfig(**vars(config.encoder))
+        config.decoder = UnimerMBartConfig(**vars(config.decoder))
+
+        encoder = UnimerSwinModel(config.encoder)
+        decoder = UnimerMBartForCausalLM(config.decoder)
+        model = cls(config, encoder, decoder)
+
+        # load model weights
+        model_file_path = os.path.join(model_path, model_filename)
+        checkpoint = torch.load(model_file_path, map_location="cpu", weights_only=True)
+        state_dict = checkpoint["model"] if "model" in checkpoint else checkpoint
+        if not state_dict:
+            raise RuntimeError("state_dict is empty.")
+        if state_dict_strip_prefix:
+            state_dict = {
+                k[len(state_dict_strip_prefix):] if k.startswith(state_dict_strip_prefix) else k: v
+                for k, v in state_dict.items()
+            }
+        missing_keys, unexpected_keys = model.load_state_dict(state_dict, strict=False)
+        if len(unexpected_keys) > 0:
+            warnings.warn("Unexpected key(s) in state_dict: {}.".format(", ".join(f'"{k}"' for k in unexpected_keys)))
+        if len(missing_keys) > 0:
+            raise RuntimeError("Missing key(s) in state_dict: {}.".format(", ".join(f'"{k}"' for k in missing_keys)))
+        return model
+
+    def forward_bak(self, samples):
+        pixel_values, text = samples["image"], samples["text_input"]
+
+        text_inputs = self.tokenizer.tokenize(text).to(pixel_values.device)
+        decoder_input_ids, decoder_attention_mask = text_inputs["input_ids"], text_inputs["attention_mask"]
+
+        num_channels = pixel_values.shape[1]
+        if num_channels == 1:
+            pixel_values = pixel_values.repeat(1, 3, 1, 1)
+
+        labels = decoder_input_ids * 1
+        labels = labels.masked_fill(labels == self.tokenizer.pad_token_id, -100)
+
+        loss = self.model(
+            pixel_values=pixel_values,
+            decoder_input_ids=decoder_input_ids[:, :-1],
+            decoder_attention_mask=decoder_attention_mask[:, :-1],
+            labels=labels[:, 1:],
+        ).loss
+        return {"loss": loss}
+
+    def generate(self, samples, do_sample: bool = False, temperature: float = 0.2, top_p: float = 0.95, batch_size=64):
+        pixel_values = samples["image"]
+        num_channels = pixel_values.shape[1]
+        if num_channels == 1:
+            pixel_values = pixel_values.repeat(1, 3, 1, 1)
+        
+        kwargs = {}
+        if do_sample:
+            kwargs["temperature"] = temperature
+            kwargs["top_p"] = top_p
+
+        if self.tokenizer.tokenizer.model_max_length > 1152:
+            if batch_size <= 32:
+                self.tokenizer.tokenizer.model_max_length = 1152  # 6g
+            else:
+                self.tokenizer.tokenizer.model_max_length = 1344  # 8g
+
+        outputs = super().generate(
+            pixel_values=pixel_values,
+            max_new_tokens=self.tokenizer.tokenizer.model_max_length, # required
+            decoder_start_token_id=self.tokenizer.tokenizer.bos_token_id,
+            do_sample=do_sample,
+            **kwargs,
+        )
+
+        outputs = outputs[:, 1:].cpu().numpy()
+        pred_tokens = self.tokenizer.detokenize(outputs)
+        pred_str = self.tokenizer.token2str(outputs)
+        fixed_str = [latex_rm_whitespace(s) for s in pred_str]
+        return {"pred_ids": outputs, "pred_tokens": pred_tokens, "pred_str": pred_str, "fixed_str": fixed_str}
+

+ 8 - 0
mineru/model/mfr/unimernet/unimernet_hf/unimer_mbart/__init__.py

@@ -0,0 +1,8 @@
+from .configuration_unimer_mbart import UnimerMBartConfig
+from .modeling_unimer_mbart import UnimerMBartModel, UnimerMBartForCausalLM
+
+__all__ = [
+    "UnimerMBartConfig",
+    "UnimerMBartModel",
+    "UnimerMBartForCausalLM",
+]

+ 163 - 0
mineru/model/mfr/unimernet/unimernet_hf/unimer_mbart/configuration_unimer_mbart.py

@@ -0,0 +1,163 @@
+# coding=utf-8
+# Copyright 2021, The Facebook AI Research Team and The HuggingFace Inc. team. All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+"""UnimerMBART model configuration"""
+
+from transformers.configuration_utils import PretrainedConfig
+from transformers.utils import logging
+
+
+logger = logging.get_logger(__name__)
+
+
+class UnimerMBartConfig(PretrainedConfig):
+    r"""
+    This is the configuration class to store the configuration of a [`MBartModel`]. It is used to instantiate an MBART
+    model according to the specified arguments, defining the model architecture. Instantiating a configuration with the
+    defaults will yield a similar configuration to that of the MBART
+    [facebook/mbart-large-cc25](https://huggingface.co/facebook/mbart-large-cc25) architecture.
+
+    Configuration objects inherit from [`PretrainedConfig`] and can be used to control the model outputs. Read the
+    documentation from [`PretrainedConfig`] for more information.
+
+
+    Args:
+        vocab_size (`int`, *optional*, defaults to 50265):
+            Vocabulary size of the MBART model. Defines the number of different tokens that can be represented by the
+            `inputs_ids` passed when calling [`MBartModel`] or [`TFMBartModel`].
+        d_model (`int`, *optional*, defaults to 1024):
+            Dimensionality of the layers and the pooler layer.
+        qk_squeeze (`int`, *optional*, defaults to 2):
+            Squeeze ratio for query/key's output dimension. See the [UniMERNet paper](https://arxiv.org/abs/2404.15254).
+            Squeeze Attention maps the query and key to a lower-dimensional space without excessive loss of information,
+            thereby accelerating the computation of attention.
+        encoder_layers (`int`, *optional*, defaults to 12):
+            Number of encoder layers.
+        decoder_layers (`int`, *optional*, defaults to 12):
+            Number of decoder layers.
+        encoder_attention_heads (`int`, *optional*, defaults to 16):
+            Number of attention heads for each attention layer in the Transformer encoder.
+        decoder_attention_heads (`int`, *optional*, defaults to 16):
+            Number of attention heads for each attention layer in the Transformer decoder.
+        decoder_ffn_dim (`int`, *optional*, defaults to 4096):
+            Dimensionality of the "intermediate" (often named feed-forward) layer in decoder.
+        encoder_ffn_dim (`int`, *optional*, defaults to 4096):
+            Dimensionality of the "intermediate" (often named feed-forward) layer in decoder.
+        activation_function (`str` or `function`, *optional*, defaults to `"gelu"`):
+            The non-linear activation function (function or string) in the encoder and pooler. If string, `"gelu"`,
+            `"relu"`, `"silu"` and `"gelu_new"` are supported.
+        dropout (`float`, *optional*, defaults to 0.1):
+            The dropout probability for all fully connected layers in the embeddings, encoder, and pooler.
+        attention_dropout (`float`, *optional*, defaults to 0.0):
+            The dropout ratio for the attention probabilities.
+        activation_dropout (`float`, *optional*, defaults to 0.0):
+            The dropout ratio for activations inside the fully connected layer.
+        classifier_dropout (`float`, *optional*, defaults to 0.0):
+            The dropout ratio for classifier.
+        max_position_embeddings (`int`, *optional*, defaults to 1024):
+            The maximum sequence length that this model might ever be used with. Typically set this to something large
+            just in case (e.g., 512 or 1024 or 2048).
+        init_std (`float`, *optional*, defaults to 0.02):
+            The standard deviation of the truncated_normal_initializer for initializing all weight matrices.
+        encoder_layerdrop (`float`, *optional*, defaults to 0.0):
+            The LayerDrop probability for the encoder. See the [LayerDrop paper](see https://arxiv.org/abs/1909.11556)
+            for more details.
+        decoder_layerdrop (`float`, *optional*, defaults to 0.0):
+            The LayerDrop probability for the decoder. See the [LayerDrop paper](see https://arxiv.org/abs/1909.11556)
+            for more details.
+        scale_embedding (`bool`, *optional*, defaults to `False`):
+            Scale embeddings by diving by sqrt(d_model).
+        use_cache (`bool`, *optional*, defaults to `True`):
+            Whether or not the model should return the last key/values attentions (not used by all models)
+        forced_eos_token_id (`int`, *optional*, defaults to 2):
+            The id of the token to force as the last generated token when `max_length` is reached. Usually set to
+            `eos_token_id`.
+
+    Example:
+
+    ```python
+    >>> from transformers import MBartConfig, MBartModel
+
+    >>> # Initializing a MBART facebook/mbart-large-cc25 style configuration
+    >>> configuration = MBartConfig()
+
+    >>> # Initializing a model (with random weights) from the facebook/mbart-large-cc25 style configuration
+    >>> model = MBartModel(configuration)
+
+    >>> # Accessing the model configuration
+    >>> configuration = model.config
+    ```"""
+
+    model_type = "unimer-mbart"
+    keys_to_ignore_at_inference = ["past_key_values"]
+    attribute_map = {"num_attention_heads": "encoder_attention_heads", "hidden_size": "d_model"}
+
+    def __init__(
+        self,
+        vocab_size=50265,
+        max_position_embeddings=1024,
+        encoder_layers=12,
+        encoder_ffn_dim=4096,
+        encoder_attention_heads=16,
+        decoder_layers=12,
+        decoder_ffn_dim=4096,
+        decoder_attention_heads=16,
+        encoder_layerdrop=0.0,
+        decoder_layerdrop=0.0,
+        use_cache=True,
+        is_encoder_decoder=True,
+        activation_function="gelu",
+        d_model=1024,
+        qk_squeeze=2,
+        dropout=0.1,
+        attention_dropout=0.0,
+        activation_dropout=0.0,
+        init_std=0.02,
+        classifier_dropout=0.0,
+        scale_embedding=False,
+        pad_token_id=1,
+        bos_token_id=0,
+        eos_token_id=2,
+        forced_eos_token_id=2,
+        **kwargs,
+    ):
+        self.vocab_size = vocab_size
+        self.max_position_embeddings = max_position_embeddings
+        self.d_model = d_model
+        self.qk_squeeze = qk_squeeze
+        self.encoder_ffn_dim = encoder_ffn_dim
+        self.encoder_layers = encoder_layers
+        self.encoder_attention_heads = encoder_attention_heads
+        self.decoder_ffn_dim = decoder_ffn_dim
+        self.decoder_layers = decoder_layers
+        self.decoder_attention_heads = decoder_attention_heads
+        self.dropout = dropout
+        self.attention_dropout = attention_dropout
+        self.activation_dropout = activation_dropout
+        self.activation_function = activation_function
+        self.init_std = init_std
+        self.encoder_layerdrop = encoder_layerdrop
+        self.decoder_layerdrop = decoder_layerdrop
+        self.classifier_dropout = classifier_dropout
+        self.use_cache = use_cache
+        self.num_hidden_layers = encoder_layers
+        self.scale_embedding = scale_embedding  # scale factor will be sqrt(d_model) if True
+        super().__init__(
+            pad_token_id=pad_token_id,
+            bos_token_id=bos_token_id,
+            eos_token_id=eos_token_id,
+            is_encoder_decoder=is_encoder_decoder,
+            forced_eos_token_id=forced_eos_token_id,
+            **kwargs,
+        )

+ 2361 - 0
mineru/model/mfr/unimernet/unimernet_hf/unimer_mbart/modeling_unimer_mbart.py

@@ -0,0 +1,2361 @@
+# coding=utf-8
+# Copyright 2021, The Facebook AI Research Team and The HuggingFace Inc. team. All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+"""PyTorch UnimerMBART model."""
+
+import copy
+import math
+from dataclasses import dataclass
+from typing import List, Optional, Tuple, Union
+
+import torch
+import torch.nn.functional as F
+import torch.utils.checkpoint
+from torch import nn
+from torch.nn import BCEWithLogitsLoss, CrossEntropyLoss, MSELoss
+
+from transformers.activations import ACT2FN
+from transformers.modeling_attn_mask_utils import (
+    _prepare_4d_attention_mask,
+    _prepare_4d_attention_mask_for_sdpa,
+    _prepare_4d_causal_attention_mask,
+    _prepare_4d_causal_attention_mask_for_sdpa,
+)
+from transformers.modeling_outputs import (
+    BaseModelOutput,
+    BaseModelOutputWithPastAndCrossAttentions,
+    CausalLMOutputWithCrossAttentions,
+    Seq2SeqLMOutput,
+    Seq2SeqModelOutput,
+    Seq2SeqQuestionAnsweringModelOutput,
+    Seq2SeqSequenceClassifierOutput,
+)
+from transformers import GenerationMixin, PreTrainedModel
+from transformers.utils import (
+    add_code_sample_docstrings,
+    add_end_docstrings,
+    add_start_docstrings,
+    add_start_docstrings_to_model_forward,
+    is_flash_attn_2_available,
+    is_flash_attn_greater_or_equal_2_10,
+    logging,
+    replace_return_docstrings,
+)
+from .configuration_unimer_mbart import UnimerMBartConfig
+
+
+if is_flash_attn_2_available():
+    from flash_attn import flash_attn_func, flash_attn_varlen_func
+    from flash_attn.bert_padding import index_first_axis, pad_input, unpad_input  # noqa
+
+
+logger = logging.get_logger(__name__)
+
+_CHECKPOINT_FOR_DOC = "facebook/mbart-large-cc25"
+_CONFIG_FOR_DOC = "MBartConfig"
+
+# Base model docstring
+_EXPECTED_OUTPUT_SHAPE = [1, 8, 1024]
+
+
+# Copied from transformers.models.llama.modeling_llama._get_unpad_data
+def _get_unpad_data(attention_mask):
+    seqlens_in_batch = attention_mask.sum(dim=-1, dtype=torch.int32)
+    indices = torch.nonzero(attention_mask.flatten(), as_tuple=False).flatten()
+    max_seqlen_in_batch = seqlens_in_batch.max().item()
+    cu_seqlens = F.pad(torch.cumsum(seqlens_in_batch, dim=0, dtype=torch.int32), (1, 0))
+    return (
+        indices,
+        cu_seqlens,
+        max_seqlen_in_batch,
+    )
+
+
+def shift_tokens_right(input_ids: torch.Tensor, pad_token_id: int):
+    """
+    Shift input ids one token to the right, and wrap the last non pad token (the <LID> token) Note that MBart does not
+    have a single `decoder_start_token_id` in contrast to other Bart-like models.
+    """
+    prev_output_tokens = input_ids.clone()
+
+    if pad_token_id is None:
+        raise ValueError("self.model.config.pad_token_id has to be defined.")
+    # replace possible -100 values in labels by `pad_token_id`
+    prev_output_tokens.masked_fill_(prev_output_tokens == -100, pad_token_id)
+
+    index_of_eos = (prev_output_tokens.ne(pad_token_id).sum(dim=1) - 1).unsqueeze(-1)
+    decoder_start_tokens = prev_output_tokens.gather(1, index_of_eos).squeeze()
+    prev_output_tokens[:, 1:] = prev_output_tokens[:, :-1].clone()
+    prev_output_tokens[:, 0] = decoder_start_tokens
+
+    return prev_output_tokens
+
+@dataclass
+class CausalLMOutputWithCrossAttentionsAndCounting(CausalLMOutputWithCrossAttentions):
+    """
+    Base class for causal language model (or autoregressive) outputs.
+
+    Args:
+        loss (`torch.FloatTensor` of shape `(1,)`, *optional*, returned when `labels` is provided):
+            Language modeling loss (for next-token prediction).
+        logits (`torch.FloatTensor` of shape `(batch_size, sequence_length, config.vocab_size)`):
+            Prediction scores of the language modeling head (scores for each vocabulary token before SoftMax).
+        hidden_states (`tuple(torch.FloatTensor)`, *optional*, returned when `output_hidden_states=True` is passed or when `config.output_hidden_states=True`):
+            Tuple of `torch.FloatTensor` (one for the output of the embeddings, if the model has an embedding layer, +
+            one for the output of each layer) of shape `(batch_size, sequence_length, hidden_size)`.
+
+            Hidden-states of the model at the output of each layer plus the optional initial embedding outputs.
+        attentions (`tuple(torch.FloatTensor)`, *optional*, returned when `output_attentions=True` is passed or when `config.output_attentions=True`):
+            Tuple of `torch.FloatTensor` (one for each layer) of shape `(batch_size, num_heads, sequence_length,
+            sequence_length)`.
+
+            Attentions weights after the attention softmax, used to compute the weighted average in the self-attention
+            heads.
+        cross_attentions (`tuple(torch.FloatTensor)`, *optional*, returned when `output_attentions=True` is passed or when `config.output_attentions=True`):
+            Tuple of `torch.FloatTensor` (one for each layer) of shape `(batch_size, num_heads, sequence_length,
+            sequence_length)`.
+
+            Cross attentions weights after the attention softmax, used to compute the weighted average in the
+            cross-attention heads.
+        past_key_values (`tuple(tuple(torch.FloatTensor))`, *optional*, returned when `use_cache=True` is passed or when `config.use_cache=True`):
+            Tuple of `torch.FloatTensor` tuples of length `config.n_layers`, with each tuple containing the cached key,
+            value states of the self-attention and the cross-attention layers if model is used in encoder-decoder
+            setting. Only relevant if `config.is_decoder = True`.
+
+            Contains pre-computed hidden-states (key and values in the attention blocks) that can be used (see
+            `past_key_values` input) to speed up sequential decoding.
+        counting:
+            Counting
+    """
+    counting: Optional[torch.FloatTensor] = None
+
+# Copied from transformers.models.bart.modeling_bart.BartLearnedPositionalEmbedding with Bart->MBart
+class UnimerMBartLearnedPositionalEmbedding(nn.Embedding):
+    """
+    This module learns positional embeddings up to a fixed maximum size.
+    """
+
+    def __init__(self, num_embeddings: int, embedding_dim: int):
+        # MBart is set up so that if padding_idx is specified then offset the embedding ids by 2
+        # and adjust num_embeddings appropriately. Other models don't have this hack
+        self.offset = 2
+        super().__init__(num_embeddings + self.offset, embedding_dim)
+
+    def forward(self, input_ids: torch.Tensor, past_key_values_length: int = 0):
+        """`input_ids' shape is expected to be [bsz x seqlen]."""
+
+        bsz, seq_len = input_ids.shape[:2]
+        positions = torch.arange(
+            past_key_values_length, past_key_values_length + seq_len, dtype=torch.long, device=self.weight.device
+        ).expand(bsz, -1)
+
+        return super().forward(positions + self.offset)
+
+
+# Copied from transformers.models.bart.modeling_bart.BartScaledWordEmbedding with Bart->MBart
+class UnimerMBartScaledWordEmbedding(nn.Embedding):
+    """
+    This module overrides nn.Embeddings' forward by multiplying with embeddings scale.
+    """
+
+    def __init__(self, num_embeddings: int, embedding_dim: int, padding_idx: int, embed_scale: Optional[float] = 1.0):
+        super().__init__(num_embeddings, embedding_dim, padding_idx)
+        self.embed_scale = embed_scale
+
+    def forward(self, input_ids: torch.Tensor):
+        return super().forward(input_ids) * self.embed_scale
+
+
+# Copied from transformers.models.bart.modeling_bart.BartAttention with Bart->MBart
+class UnimerMBartAttention(nn.Module):
+    """Multi-headed attention from 'Attention Is All You Need' paper, with qk_squeeze"""
+
+    def __init__(
+        self,
+        embed_dim: int,
+        num_heads: int,
+        dropout: float = 0.0,
+        is_decoder: bool = False,
+        bias: bool = True,
+        is_causal: bool = False,
+        *,
+        config: UnimerMBartConfig,
+    ):
+        super().__init__()
+        self.embed_dim = embed_dim
+        self.num_heads = num_heads
+        self.dropout = dropout
+        self.head_dim = embed_dim // num_heads
+        self.config = config
+
+        if (self.head_dim * num_heads) != self.embed_dim:
+            raise ValueError(
+                f"embed_dim must be divisible by num_heads (got `embed_dim`: {self.embed_dim}"
+                f" and `num_heads`: {num_heads})."
+            )
+        
+        self.squeeze_dim = embed_dim // config.qk_squeeze
+        self.squeeze_head_dim = self.squeeze_dim // num_heads
+        self.scaling = self.squeeze_head_dim**-0.5
+        self.is_decoder = is_decoder
+        self.is_causal = is_causal
+
+        self.q_proj = nn.Linear(embed_dim, self.squeeze_dim, bias=bias)
+        self.k_proj = nn.Linear(embed_dim, self.squeeze_dim, bias=bias)
+        self.v_proj = nn.Linear(embed_dim, embed_dim, bias=bias)
+        self.out_proj = nn.Linear(embed_dim, embed_dim, bias=bias)
+
+    def _shape_qk(self, tensor: torch.Tensor, seq_len: int, bsz: int):
+        return tensor.view(bsz, seq_len, self.num_heads, self.squeeze_head_dim).transpose(1, 2).contiguous()
+
+    def _shape_v(self, tensor: torch.Tensor, seq_len: int, bsz: int):
+        return tensor.view(bsz, seq_len, self.num_heads, self.head_dim).transpose(1, 2).contiguous()
+
+    def forward(
+        self,
+        hidden_states: torch.Tensor,
+        key_value_states: Optional[torch.Tensor] = None,
+        past_key_value: Optional[Tuple[torch.Tensor]] = None,
+        attention_mask: Optional[torch.Tensor] = None,
+        layer_head_mask: Optional[torch.Tensor] = None,
+        output_attentions: bool = False,
+    ) -> Tuple[torch.Tensor, Optional[torch.Tensor], Optional[Tuple[torch.Tensor]]]:
+        """Input shape: Batch x Time x Channel"""
+
+        # if key_value_states are provided this layer is used as a cross-attention layer
+        # for the decoder
+        is_cross_attention = key_value_states is not None
+
+        bsz, tgt_len, _ = hidden_states.size()
+
+        # get query proj
+        query_states = self.q_proj(hidden_states) * self.scaling
+        # get key, value proj
+        # `past_key_value[0].shape[2] == key_value_states.shape[1]`
+        # is checking that the `sequence_length` of the `past_key_value` is the same as
+        # the provided `key_value_states` to support prefix tuning
+        if (
+            is_cross_attention
+            and past_key_value is not None
+            and past_key_value[0].shape[2] == key_value_states.shape[1]
+        ):
+            # reuse k,v, cross_attentions
+            key_states = past_key_value[0]
+            value_states = past_key_value[1]
+        elif is_cross_attention:
+            # cross_attentions
+            key_states = self._shape_qk(self.k_proj(key_value_states), -1, bsz)
+            value_states = self._shape_v(self.v_proj(key_value_states), -1, bsz)
+        elif past_key_value is not None:
+            # reuse k, v, self_attention
+            key_states = self._shape_qk(self.k_proj(hidden_states), -1, bsz)
+            value_states = self._shape_v(self.v_proj(hidden_states), -1, bsz)
+            key_states = torch.cat([past_key_value[0], key_states], dim=2)
+            value_states = torch.cat([past_key_value[1], value_states], dim=2)
+        else:
+            # self_attention
+            key_states = self._shape_qk(self.k_proj(hidden_states), -1, bsz)
+            value_states = self._shape_v(self.v_proj(hidden_states), -1, bsz)
+
+        if self.is_decoder:
+            # if cross_attention save Tuple(torch.Tensor, torch.Tensor) of all cross attention key/value_states.
+            # Further calls to cross_attention layer can then reuse all cross-attention
+            # key/value_states (first "if" case)
+            # if uni-directional self-attention (decoder) save Tuple(torch.Tensor, torch.Tensor) of
+            # all previous decoder key/value_states. Further calls to uni-directional self-attention
+            # can concat previous decoder key/value_states to current projected key/value_states (third "elif" case)
+            # if encoder bi-directional self-attention `past_key_value` is always `None`
+            past_key_value = (key_states, value_states)
+
+        proj_shape = (bsz * self.num_heads, -1, self.squeeze_head_dim)
+        value_shape = (bsz * self.num_heads, -1, self.head_dim)
+        query_states = self._shape_qk(query_states, tgt_len, bsz).view(*proj_shape)
+        key_states = key_states.reshape(*proj_shape)
+        value_states = value_states.reshape(*value_shape)
+
+        src_len = key_states.size(1)
+        attn_weights = torch.bmm(query_states, key_states.transpose(1, 2))
+
+        if attn_weights.size() != (bsz * self.num_heads, tgt_len, src_len):
+            raise ValueError(
+                f"Attention weights should be of size {(bsz * self.num_heads, tgt_len, src_len)}, but is"
+                f" {attn_weights.size()}"
+            )
+
+        if attention_mask is not None:
+            if attention_mask.size() != (bsz, 1, tgt_len, src_len):
+                raise ValueError(
+                    f"Attention mask should be of size {(bsz, 1, tgt_len, src_len)}, but is {attention_mask.size()}"
+                )
+            attn_weights = attn_weights.view(bsz, self.num_heads, tgt_len, src_len) + attention_mask
+            attn_weights = attn_weights.view(bsz * self.num_heads, tgt_len, src_len)
+
+        attn_weights = nn.functional.softmax(attn_weights, dim=-1)
+
+        if layer_head_mask is not None:
+            if layer_head_mask.size() != (self.num_heads,):
+                raise ValueError(
+                    f"Head mask for a single layer should be of size {(self.num_heads,)}, but is"
+                    f" {layer_head_mask.size()}"
+                )
+            attn_weights = layer_head_mask.view(1, -1, 1, 1) * attn_weights.view(bsz, self.num_heads, tgt_len, src_len)
+            attn_weights = attn_weights.view(bsz * self.num_heads, tgt_len, src_len)
+
+        if output_attentions:
+            # this operation is a bit awkward, but it's required to
+            # make sure that attn_weights keeps its gradient.
+            # In order to do so, attn_weights have to be reshaped
+            # twice and have to be reused in the following
+            attn_weights_reshaped = attn_weights.view(bsz, self.num_heads, tgt_len, src_len)
+            attn_weights = attn_weights_reshaped.view(bsz * self.num_heads, tgt_len, src_len)
+        else:
+            attn_weights_reshaped = None
+
+        attn_probs = nn.functional.dropout(attn_weights, p=self.dropout, training=self.training)
+        attn_output = torch.bmm(attn_probs, value_states)
+
+        if attn_output.size() != (bsz * self.num_heads, tgt_len, self.head_dim):
+            raise ValueError(
+                f"`attn_output` should be of size {(bsz * self.num_heads, tgt_len, self.head_dim)}, but is"
+                f" {attn_output.size()}"
+            )
+
+        attn_output = attn_output.view(bsz, self.num_heads, tgt_len, self.head_dim)
+        attn_output = attn_output.transpose(1, 2)
+
+        # Use the `embed_dim` from the config (stored in the class) rather than `hidden_state` because `attn_output` can be
+        # partitioned across GPUs when using tensor-parallelism.
+        attn_output = attn_output.reshape(bsz, tgt_len, self.embed_dim)
+
+        attn_output = self.out_proj(attn_output)
+
+        return attn_output, attn_weights_reshaped, past_key_value
+
+
+# Copied from transformers.models.bart.modeling_bart.BartFlashAttention2 with Bart->MBart
+class UnimerMBartFlashAttention2(UnimerMBartAttention):
+    """
+    MBart flash attention module. This module inherits from `MBartSqueezeAttention` as the weights of the module stays
+    untouched. The only required change would be on the forward pass where it needs to correctly call the public API of
+    flash attention and deal with padding tokens in case the input contains any of them.
+    """
+
+    # Copied from transformers.models.llama.modeling_llama.LlamaFlashAttention2.__init__
+    def __init__(self, *args, **kwargs):
+        super().__init__(*args, **kwargs)
+
+        # TODO: Should be removed once Flash Attention for RoCm is bumped to 2.1.
+        # flash_attn<2.1 generates top-left aligned causal mask, while what is needed here is bottom-right alignement, that was made default for flash_attn>=2.1. This attribute is used to handle this difference. Reference: https://github.com/Dao-AILab/flash-attention/releases/tag/v2.1.0.
+        # Beware that with flash_attn<2.1, using q_seqlen != k_seqlen (except for the case q_seqlen == 1) produces a wrong mask (top-left).
+        self._flash_attn_uses_top_left_mask = not is_flash_attn_greater_or_equal_2_10()
+
+    # def _reshape(self, tensor: torch.Tensor, seq_len: int, bsz: int):
+    #     return tensor.view(bsz, seq_len, self.num_heads, self.head_dim)
+
+    def _shape_qk(self, tensor: torch.Tensor, seq_len: int, bsz: int):
+        return tensor.view(bsz, seq_len, self.num_heads, self.squeeze_head_dim)
+
+    def _shape_v(self, tensor: torch.Tensor, seq_len: int, bsz: int):
+        return tensor.view(bsz, seq_len, self.num_heads, self.head_dim)
+
+    def forward(
+        self,
+        hidden_states: torch.Tensor,
+        key_value_states: Optional[torch.Tensor] = None,
+        past_key_value: Optional[Tuple[torch.Tensor]] = None,
+        attention_mask: Optional[torch.Tensor] = None,
+        layer_head_mask: Optional[torch.Tensor] = None,
+        output_attentions: bool = False,
+    ) -> Tuple[torch.Tensor, Optional[torch.Tensor], Optional[Tuple[torch.Tensor]]]:
+        # MBartFlashAttention2 attention does not support output_attentions
+        if output_attentions:
+            raise ValueError("MBartFlashAttention2 attention does not support output_attentions")
+
+        # if key_value_states are provided this layer is used as a cross-attention layer
+        # for the decoder
+        is_cross_attention = key_value_states is not None
+
+        bsz, q_len, _ = hidden_states.size()
+
+        # get query proj
+        query_states = self._shape_qk(self.q_proj(hidden_states), -1, bsz)
+
+        # get key, value proj
+        # `past_key_value[0].shape[2] == key_value_states.shape[1]`
+        # is checking that the `sequence_length` of the `past_key_value` is the same as
+        # the provided `key_value_states` to support prefix tuning
+        if (
+            is_cross_attention
+            and past_key_value is not None
+            and past_key_value[0].shape[2] == key_value_states.shape[1]
+        ):
+            # reuse k,v, cross_attentions
+            key_states = past_key_value[0].transpose(1, 2)
+            value_states = past_key_value[1].transpose(1, 2)
+        elif is_cross_attention:
+            # cross_attentions
+            key_states = self._shape_qk(self.k_proj(key_value_states), -1, bsz)
+            value_states = self._shape_v(self.v_proj(key_value_states), -1, bsz)
+        elif past_key_value is not None:
+            # reuse k, v, self_attention
+            key_states = self._shape_qk(self.k_proj(hidden_states), -1, bsz)
+            value_states = self._shape_v(self.v_proj(hidden_states), -1, bsz)
+            key_states = torch.cat([past_key_value[0].transpose(1, 2), key_states], dim=1)
+            value_states = torch.cat([past_key_value[1].transpose(1, 2), value_states], dim=1)
+        else:
+            # self_attention
+            key_states = self._shape_qk(self.k_proj(hidden_states), -1, bsz)
+            value_states = self._shape_v(self.v_proj(hidden_states), -1, bsz)
+
+        if self.is_decoder:
+            # if cross_attention save Tuple(torch.Tensor, torch.Tensor) of all cross attention key/value_states.
+            # Further calls to cross_attention layer can then reuse all cross-attention
+            # key/value_states (first "if" case)
+            # if uni-directional self-attention (decoder) save Tuple(torch.Tensor, torch.Tensor) of
+            # all previous decoder key/value_states. Further calls to uni-directional self-attention
+            # can concat previous decoder key/value_states to current projected key/value_states (third "elif" case)
+            # if encoder bi-directional self-attention `past_key_value` is always `None`
+            past_key_value = (key_states.transpose(1, 2), value_states.transpose(1, 2))
+
+        kv_seq_len = key_states.shape[-2]
+        if past_key_value is not None:
+            kv_seq_len += past_key_value[0].shape[-2]
+
+        # In PEFT, usually we cast the layer norms in float32 for training stability reasons
+        # therefore the input hidden states gets silently casted in float32. Hence, we need
+        # cast them back in the correct dtype just to be sure everything works as expected.
+        # This might slowdown training & inference so it is recommended to not cast the LayerNorms
+        # in fp32. (LlamaRMSNorm handles it correctly)
+
+        input_dtype = query_states.dtype
+        if input_dtype == torch.float32:
+            if torch.is_autocast_enabled():
+                target_dtype = torch.get_autocast_gpu_dtype()
+            # Handle the case where the model is quantized
+            elif hasattr(self.config, "_pre_quantization_dtype"):
+                target_dtype = self.config._pre_quantization_dtype
+            else:
+                target_dtype = self.q_proj.weight.dtype
+
+            logger.warning_once(
+                f"The input hidden states seems to be silently casted in float32, this might be related to"
+                f" the fact you have upcasted embedding or layer norm layers in float32. We will cast back the input in"
+                f" {target_dtype}."
+            )
+
+            query_states = query_states.to(target_dtype)
+            key_states = key_states.to(target_dtype)
+            value_states = value_states.to(target_dtype)
+
+        attn_output = self._flash_attention_forward(
+            query_states, key_states, value_states, attention_mask, q_len, dropout=self.dropout
+        )
+
+        attn_output = attn_output.reshape(bsz, q_len, -1)
+        attn_output = self.out_proj(attn_output)
+
+        if not output_attentions:
+            attn_weights = None
+
+        return attn_output, attn_weights, past_key_value
+
+    # Copied from transformers.models.llama.modeling_llama.LlamaFlashAttention2._flash_attention_forward
+    def _flash_attention_forward(
+        self, query_states, key_states, value_states, attention_mask, query_length, dropout=0.0, softmax_scale=None
+    ):
+        """
+        Calls the forward method of Flash Attention - if the input hidden states contain at least one padding token
+        first unpad the input, then computes the attention scores and pad the final attention scores.
+
+        Args:
+            query_states (`torch.Tensor`):
+                Input query states to be passed to Flash Attention API
+            key_states (`torch.Tensor`):
+                Input key states to be passed to Flash Attention API
+            value_states (`torch.Tensor`):
+                Input value states to be passed to Flash Attention API
+            attention_mask (`torch.Tensor`):
+                The padding mask - corresponds to a tensor of size `(batch_size, seq_len)` where 0 stands for the
+                position of padding tokens and 1 for the position of non-padding tokens.
+            dropout (`float`):
+                Attention dropout
+            softmax_scale (`float`, *optional*):
+                The scaling of QK^T before applying softmax. Default to 1 / sqrt(head_dim)
+        """
+        if not self._flash_attn_uses_top_left_mask:
+            causal = self.is_causal
+        else:
+            # TODO: Remove the `query_length != 1` check once Flash Attention for RoCm is bumped to 2.1. For details, please see the comment in LlamaFlashAttention2 __init__.
+            causal = self.is_causal and query_length != 1
+
+        # Contains at least one padding token in the sequence
+        if attention_mask is not None:
+            batch_size = query_states.shape[0]
+
+            query_states, key_states, value_states, indices_q, cu_seq_lens, max_seq_lens = self._upad_input(
+                query_states, key_states, value_states, attention_mask, query_length
+            )
+
+            cu_seqlens_q, cu_seqlens_k = cu_seq_lens
+            max_seqlen_in_batch_q, max_seqlen_in_batch_k = max_seq_lens
+
+            attn_output_unpad = flash_attn_varlen_func(
+                query_states,
+                key_states,
+                value_states,
+                cu_seqlens_q=cu_seqlens_q,
+                cu_seqlens_k=cu_seqlens_k,
+                max_seqlen_q=max_seqlen_in_batch_q,
+                max_seqlen_k=max_seqlen_in_batch_k,
+                dropout_p=dropout,
+                softmax_scale=softmax_scale,
+                causal=causal,
+            )
+
+            attn_output = pad_input(attn_output_unpad, indices_q, batch_size, query_length)
+        else:
+            attn_output = flash_attn_func(
+                query_states, key_states, value_states, dropout, softmax_scale=softmax_scale, causal=causal
+            )
+
+        return attn_output
+
+    # Copied from transformers.models.llama.modeling_llama.LlamaFlashAttention2._upad_input
+    def _upad_input(self, query_layer, key_layer, value_layer, attention_mask, query_length):
+        indices_k, cu_seqlens_k, max_seqlen_in_batch_k = _get_unpad_data(attention_mask)
+        batch_size, kv_seq_len, num_key_value_heads, head_dim = key_layer.shape
+
+        key_layer = index_first_axis(
+            key_layer.reshape(batch_size * kv_seq_len, num_key_value_heads, head_dim), indices_k
+        )
+        value_layer = index_first_axis(
+            value_layer.reshape(batch_size * kv_seq_len, num_key_value_heads, head_dim), indices_k
+        )
+        if query_length == kv_seq_len:
+            query_layer = index_first_axis(
+                query_layer.reshape(batch_size * kv_seq_len, self.num_heads, head_dim), indices_k
+            )
+            cu_seqlens_q = cu_seqlens_k
+            max_seqlen_in_batch_q = max_seqlen_in_batch_k
+            indices_q = indices_k
+        elif query_length == 1:
+            max_seqlen_in_batch_q = 1
+            cu_seqlens_q = torch.arange(
+                batch_size + 1, dtype=torch.int32, device=query_layer.device
+            )  # There is a memcpy here, that is very bad.
+            indices_q = cu_seqlens_q[:-1]
+            query_layer = query_layer.squeeze(1)
+        else:
+            # The -q_len: slice assumes left padding.
+            attention_mask = attention_mask[:, -query_length:]
+            query_layer, indices_q, cu_seqlens_q, max_seqlen_in_batch_q = unpad_input(query_layer, attention_mask)
+
+        return (
+            query_layer,
+            key_layer,
+            value_layer,
+            indices_q,
+            (cu_seqlens_q, cu_seqlens_k),
+            (max_seqlen_in_batch_q, max_seqlen_in_batch_k),
+        )
+
+class UnimerMBartSdpaAttention(UnimerMBartAttention):
+    def forward(
+        self,
+        hidden_states: torch.Tensor,
+        key_value_states: Optional[torch.Tensor] = None,
+        past_key_value: Optional[Tuple[torch.Tensor]] = None,
+        attention_mask: Optional[torch.Tensor] = None,
+        layer_head_mask: Optional[torch.Tensor] = None,
+        output_attentions: bool = False,
+    ) -> Tuple[torch.Tensor, Optional[torch.Tensor], Optional[Tuple[torch.Tensor]]]:
+        """Input shape: Batch x Time x Channel"""
+        if output_attentions or layer_head_mask is not None:
+            # TODO: Improve this warning with e.g. `model.config._attn_implementation = "manual"` once this is implemented.
+            logger.warning(
+                "BartModel is using BartSdpaAttention, but `torch.nn.functional.scaled_dot_product_attention` does not support `output_attentions=True` or `layer_head_mask` not None. Falling back to the manual attention"
+                ' implementation, but specifying the manual implementation will be required from Transformers version v5.0.0 onwards. This warning can be removed using the argument `attn_implementation="eager"` when loading the model.'
+            )
+            return super().forward(
+                hidden_states,
+                key_value_states=key_value_states,
+                past_key_value=past_key_value,
+                attention_mask=attention_mask,
+                layer_head_mask=layer_head_mask,
+                output_attentions=output_attentions,
+            )
+
+        # if key_value_states are provided this layer is used as a cross-attention layer
+        # for the decoder
+        is_cross_attention = key_value_states is not None
+
+        bsz, tgt_len, _ = hidden_states.size()
+
+        # get query proj
+        query_states = self.q_proj(hidden_states)
+        # get key, value proj
+        # `past_key_value[0].shape[2] == key_value_states.shape[1]`
+        # is checking that the `sequence_length` of the `past_key_value` is the same as
+        # the provided `key_value_states` to support prefix tuning
+        if (
+            is_cross_attention
+            and past_key_value is not None
+            and past_key_value[0].shape[2] == key_value_states.shape[1]
+        ):
+            # reuse k,v, cross_attentions
+            key_states = past_key_value[0]
+            value_states = past_key_value[1]
+        elif is_cross_attention:
+            # cross_attentions
+            key_states = self._shape_qk(self.k_proj(key_value_states), -1, bsz)
+            value_states = self._shape_v(self.v_proj(key_value_states), -1, bsz)
+        elif past_key_value is not None:
+            # reuse k, v, self_attention
+            key_states = self._shape_qk(self.k_proj(hidden_states), -1, bsz)
+            value_states = self._shape_v(self.v_proj(hidden_states), -1, bsz)
+            key_states = torch.cat([past_key_value[0], key_states], dim=2)
+            value_states = torch.cat([past_key_value[1], value_states], dim=2)
+        else:
+            # self_attention
+            key_states = self._shape_qk(self.k_proj(hidden_states), -1, bsz)
+            value_states = self._shape_v(self.v_proj(hidden_states), -1, bsz)
+
+        if self.is_decoder:
+            # if cross_attention save Tuple(torch.Tensor, torch.Tensor) of all cross attention key/value_states.
+            # Further calls to cross_attention layer can then reuse all cross-attention
+            # key/value_states (first "if" case)
+            # if uni-directional self-attention (decoder) save Tuple(torch.Tensor, torch.Tensor) of
+            # all previous decoder key/value_states. Further calls to uni-directional self-attention
+            # can concat previous decoder key/value_states to current projected key/value_states (third "elif" case)
+            # if encoder bi-directional self-attention `past_key_value` is always `None`
+            past_key_value = (key_states, value_states)
+
+        query_states = self._shape_qk(query_states, tgt_len, bsz)
+
+        # We dispatch to SDPA's Flash Attention or Efficient kernels via this `is_causal` if statement instead of an inline conditional assignment
+        # in SDPA to support both torch.compile's dynamic shapes and full graph options. An inline conditional prevents dynamic shapes from compiling.
+        # The tgt_len > 1 is necessary to match with AttentionMaskConverter.to_causal_4d that does not create a causal mask in case tgt_len == 1.
+        is_causal = True if self.is_causal and attention_mask is None and tgt_len > 1 else False
+
+        # NOTE: SDPA with memory-efficient backend is currently (torch==2.1.2) bugged when using non-contiguous inputs and a custom attn_mask,
+        # but we are fine here as `_shape` do call `.contiguous()`. Reference: https://github.com/pytorch/pytorch/issues/112577
+        attn_output = torch.nn.functional.scaled_dot_product_attention(
+            query_states,
+            key_states,
+            value_states,
+            attn_mask=attention_mask,
+            dropout_p=self.dropout if self.training else 0.0,
+            is_causal=is_causal,
+        )
+
+        if attn_output.size() != (bsz, self.num_heads, tgt_len, self.head_dim):
+            raise ValueError(
+                f"`attn_output` should be of size {(bsz, self.num_heads, tgt_len, self.head_dim)}, but is"
+                f" {attn_output.size()}"
+            )
+
+        attn_output = attn_output.transpose(1, 2)
+
+        # Use the `embed_dim` from the config (stored in the class) rather than `hidden_state` because `attn_output` can be
+        # partitioned across GPUs when using tensor-parallelism.
+        attn_output = attn_output.reshape(bsz, tgt_len, self.embed_dim)
+
+        attn_output = self.out_proj(attn_output)
+
+        return attn_output, None, past_key_value
+
+UNIMER_MBART_ATTENTION_CLASSES = {
+    "eager": UnimerMBartAttention,
+    "flash_attention_2": UnimerMBartFlashAttention2,
+    "sdpa": UnimerMBartSdpaAttention,
+}
+
+
+class UnimerMBartEncoderLayer(nn.Module):
+    def __init__(self, config: UnimerMBartConfig):
+        super().__init__()
+        self.embed_dim = config.d_model
+
+        self.self_attn = UNIMER_MBART_ATTENTION_CLASSES[config._attn_implementation](
+            embed_dim=self.embed_dim,
+            num_heads=config.encoder_attention_heads,
+            dropout=config.attention_dropout,
+            config=config,
+        )
+        self.self_attn_layer_norm = nn.LayerNorm(self.embed_dim)
+        self.dropout = config.dropout
+        self.activation_fn = ACT2FN[config.activation_function]
+        self.activation_dropout = config.activation_dropout
+        self.fc1 = nn.Linear(self.embed_dim, config.encoder_ffn_dim)
+        self.fc2 = nn.Linear(config.encoder_ffn_dim, self.embed_dim)
+        self.final_layer_norm = nn.LayerNorm(self.embed_dim)
+
+    def forward(
+        self,
+        hidden_states: torch.Tensor,
+        attention_mask: torch.Tensor,
+        layer_head_mask: torch.Tensor,
+        output_attentions: bool = False,
+    ) -> torch.Tensor:
+        """
+        Args:
+            hidden_states (`torch.FloatTensor`): input to the layer of shape `(batch, seq_len, embed_dim)`
+            attention_mask (`torch.FloatTensor`): attention mask of size
+                `(batch, 1, tgt_len, src_len)` where padding elements are indicated by very large negative values.
+            layer_head_mask (`torch.FloatTensor`): mask for attention heads in a given layer of size
+                `(encoder_attention_heads,)`.
+            output_attentions (`bool`, *optional*):
+                Whether or not to return the attentions tensors of all attention layers. See `attentions` under
+                returned tensors for more detail.
+        """
+        residual = hidden_states
+        hidden_states = self.self_attn_layer_norm(hidden_states)
+        hidden_states, attn_weights, _ = self.self_attn(
+            hidden_states=hidden_states,
+            attention_mask=attention_mask,
+            layer_head_mask=layer_head_mask,
+            output_attentions=output_attentions,
+        )
+        hidden_states = nn.functional.dropout(hidden_states, p=self.dropout, training=self.training)
+        hidden_states = residual + hidden_states
+
+        residual = hidden_states
+        hidden_states = self.final_layer_norm(hidden_states)
+        hidden_states = self.activation_fn(self.fc1(hidden_states))
+        hidden_states = nn.functional.dropout(hidden_states, p=self.activation_dropout, training=self.training)
+        hidden_states = self.fc2(hidden_states)
+        hidden_states = nn.functional.dropout(hidden_states, p=self.dropout, training=self.training)
+        hidden_states = residual + hidden_states
+
+        if hidden_states.dtype == torch.float16 and (
+            torch.isinf(hidden_states).any() or torch.isnan(hidden_states).any()
+        ):
+            clamp_value = torch.finfo(hidden_states.dtype).max - 1000
+            hidden_states = torch.clamp(hidden_states, min=-clamp_value, max=clamp_value)
+
+        outputs = (hidden_states,)
+
+        if output_attentions:
+            outputs += (attn_weights,)
+
+        return outputs
+
+
+class UnimerMBartDecoderLayer(nn.Module):
+    def __init__(self, config: UnimerMBartConfig):
+        super().__init__()
+        self.embed_dim = config.d_model
+
+        self.self_attn = UNIMER_MBART_ATTENTION_CLASSES[config._attn_implementation](
+            embed_dim=self.embed_dim,
+            num_heads=config.decoder_attention_heads,
+            dropout=config.attention_dropout,
+            is_decoder=True,
+            is_causal=True,
+            config=config,
+        )
+        self.dropout = config.dropout
+        self.activation_fn = ACT2FN[config.activation_function]
+        self.activation_dropout = config.activation_dropout
+
+        self.self_attn_layer_norm = nn.LayerNorm(self.embed_dim)
+        self.encoder_attn = UNIMER_MBART_ATTENTION_CLASSES[config._attn_implementation](
+            self.embed_dim,
+            config.decoder_attention_heads,
+            dropout=config.attention_dropout,
+            is_decoder=True,
+            config=config,
+        )
+        self.encoder_attn_layer_norm = nn.LayerNorm(self.embed_dim)
+        self.fc1 = nn.Linear(self.embed_dim, config.decoder_ffn_dim)
+        self.fc2 = nn.Linear(config.decoder_ffn_dim, self.embed_dim)
+        self.final_layer_norm = nn.LayerNorm(self.embed_dim)
+
+    def forward(
+        self,
+        hidden_states: torch.Tensor,
+        attention_mask: Optional[torch.Tensor] = None,
+        encoder_hidden_states: Optional[torch.Tensor] = None,
+        encoder_attention_mask: Optional[torch.Tensor] = None,
+        layer_head_mask: Optional[torch.Tensor] = None,
+        cross_attn_layer_head_mask: Optional[torch.Tensor] = None,
+        past_key_value: Optional[Tuple[torch.Tensor]] = None,
+        output_attentions: Optional[bool] = False,
+        use_cache: Optional[bool] = True,
+    ) -> torch.Tensor:
+        """
+        Args:
+            hidden_states (`torch.FloatTensor`): input to the layer of shape `(batch, seq_len, embed_dim)`
+            attention_mask (`torch.FloatTensor`): attention mask of size
+                `(batch, 1, tgt_len, src_len)` where padding elements are indicated by very large negative values.
+            encoder_hidden_states (`torch.FloatTensor`):
+                cross attention input to the layer of shape `(batch, seq_len, embed_dim)`
+            encoder_attention_mask (`torch.FloatTensor`): encoder attention mask of size
+                `(batch, 1, tgt_len, src_len)` where padding elements are indicated by very large negative values.
+            layer_head_mask (`torch.FloatTensor`): mask for attention heads in a given layer of size
+                `(encoder_attention_heads,)`.
+            cross_attn_layer_head_mask (`torch.FloatTensor`): mask for cross-attention heads in a given layer of
+                size `(decoder_attention_heads,)`.
+            past_key_value (`Tuple(torch.FloatTensor)`): cached past key and value projection states
+            output_attentions (`bool`, *optional*):
+                Whether or not to return the attentions tensors of all attention layers. See `attentions` under
+                returned tensors for more detail.
+        """
+        residual = hidden_states
+        hidden_states = self.self_attn_layer_norm(hidden_states)
+
+        # Self Attention
+        # decoder uni-directional self-attention cached key/values tuple is at positions 1,2
+        self_attn_past_key_value = past_key_value[:2] if past_key_value is not None else None
+        # add present self-attn cache to positions 1,2 of present_key_value tuple
+        hidden_states, self_attn_weights, present_key_value = self.self_attn(
+            hidden_states=hidden_states,
+            past_key_value=self_attn_past_key_value,
+            attention_mask=attention_mask,
+            layer_head_mask=layer_head_mask,
+            output_attentions=output_attentions,
+        )
+        hidden_states = nn.functional.dropout(hidden_states, p=self.dropout, training=self.training)
+        hidden_states = residual + hidden_states
+
+        # Cross-Attention Block
+        cross_attn_present_key_value = None
+        cross_attn_weights = None
+        if encoder_hidden_states is not None:
+            residual = hidden_states
+            hidden_states = self.encoder_attn_layer_norm(hidden_states)
+
+            # cross_attn cached key/values tuple is at positions 3,4 of present_key_value tuple
+            cross_attn_past_key_value = past_key_value[-2:] if past_key_value is not None else None
+            hidden_states, cross_attn_weights, cross_attn_present_key_value = self.encoder_attn(
+                hidden_states=hidden_states,
+                key_value_states=encoder_hidden_states,
+                attention_mask=encoder_attention_mask,
+                layer_head_mask=cross_attn_layer_head_mask,
+                past_key_value=cross_attn_past_key_value,
+                output_attentions=output_attentions,
+            )
+            hidden_states = nn.functional.dropout(hidden_states, p=self.dropout, training=self.training)
+            hidden_states = residual + hidden_states
+
+            # add cross-attn to positions 3,4 of present_key_value tuple
+            present_key_value = present_key_value + cross_attn_present_key_value
+
+        # Fully Connected
+        residual = hidden_states
+        hidden_states = self.final_layer_norm(hidden_states)
+        hidden_states = self.activation_fn(self.fc1(hidden_states))
+        hidden_states = nn.functional.dropout(hidden_states, p=self.activation_dropout, training=self.training)
+        hidden_states = self.fc2(hidden_states)
+        hidden_states = nn.functional.dropout(hidden_states, p=self.dropout, training=self.training)
+        hidden_states = residual + hidden_states
+
+        outputs = (hidden_states,)
+
+        if output_attentions:
+            outputs += (self_attn_weights, cross_attn_weights)
+
+        if use_cache:
+            outputs += (present_key_value,)
+
+        return outputs
+
+
+# Copied from transformers.models.bart.modeling_bart.BartClassificationHead with Bart->MBart
+class UnimerMBartClassificationHead(nn.Module):
+    """Head for sentence-level classification tasks."""
+
+    def __init__(
+        self,
+        input_dim: int,
+        inner_dim: int,
+        num_classes: int,
+        pooler_dropout: float,
+    ):
+        super().__init__()
+        self.dense = nn.Linear(input_dim, inner_dim)
+        self.dropout = nn.Dropout(p=pooler_dropout)
+        self.out_proj = nn.Linear(inner_dim, num_classes)
+
+    def forward(self, hidden_states: torch.Tensor) -> torch.Tensor:
+        hidden_states = self.dropout(hidden_states)
+        hidden_states = self.dense(hidden_states)
+        hidden_states = torch.tanh(hidden_states)
+        hidden_states = self.dropout(hidden_states)
+        hidden_states = self.out_proj(hidden_states)
+        return hidden_states
+
+
+class UnimerMBartPreTrainedModel(PreTrainedModel):
+    config_class = UnimerMBartConfig
+    base_model_prefix = "model"
+    supports_gradient_checkpointing = True
+    _no_split_modules = ["MBartDecoderLayer", "MBartSqueezeAttention"]
+    _supports_flash_attn_2 = True
+    _supports_sdpa = True
+
+    def _init_weights(self, module):
+        std = self.config.init_std
+        if isinstance(module, nn.Linear):
+            module.weight.data.normal_(mean=0.0, std=std)
+            if module.bias is not None:
+                module.bias.data.zero_()
+        elif isinstance(module, nn.Embedding):
+            module.weight.data.normal_(mean=0.0, std=std)
+            if module.padding_idx is not None:
+                module.weight.data[module.padding_idx].zero_()
+
+    @property
+    def dummy_inputs(self):
+        pad_token = self.config.pad_token_id
+        input_ids = torch.tensor([[0, 6, 10, 4, 2], [0, 8, 12, 2, pad_token]], device=self.device)
+        dummy_inputs = {
+            "attention_mask": input_ids.ne(pad_token),
+            "input_ids": input_ids,
+        }
+        return dummy_inputs
+
+
+MBART_START_DOCSTRING = r"""
+    This model inherits from [`PreTrainedModel`]. Check the superclass documentation for the generic methods the
+    library implements for all its model (such as downloading or saving, resizing the input embeddings, pruning heads
+    etc.)
+
+    This model is also a PyTorch [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) subclass.
+    Use it as a regular PyTorch Module and refer to the PyTorch documentation for all matter related to general usage
+    and behavior.
+
+    Parameters:
+        config ([`MBartConfig`]):
+            Model configuration class with all the parameters of the model. Initializing with a config file does not
+            load the weights associated with the model, only the configuration. Check out the
+            [`~PreTrainedModel.from_pretrained`] method to load the model weights.
+"""
+
+MBART_GENERATION_EXAMPLE = r"""
+    Translation example:
+
+    ```python
+    >>> from transformers import AutoTokenizer, MBartForConditionalGeneration
+
+    >>> model = MBartForConditionalGeneration.from_pretrained("facebook/mbart-large-en-ro")
+    >>> tokenizer = AutoTokenizer.from_pretrained("facebook/mbart-large-en-ro")
+
+    >>> example_english_phrase = "42 is the answer"
+    >>> inputs = tokenizer(example_english_phrase, return_tensors="pt")
+
+    >>> # Translate
+    >>> generated_ids = model.generate(**inputs, num_beams=4, max_length=5)
+    >>> tokenizer.batch_decode(generated_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False)[0]
+    '42 este răspuns'
+    ```
+
+    Mask filling example:
+
+    ```python
+    >>> from transformers import AutoTokenizer, MBartForConditionalGeneration
+
+    >>> model = MBartForConditionalGeneration.from_pretrained("facebook/mbart-large-cc25")
+    >>> tokenizer = AutoTokenizer.from_pretrained("facebook/mbart-large-cc25")
+
+    >>> # de_DE is the language symbol id <LID> for German
+    >>> TXT = "</s> Meine Freunde sind <mask> nett aber sie essen zu viel Kuchen. </s> de_DE"
+
+    >>> input_ids = tokenizer([TXT], add_special_tokens=False, return_tensors="pt")["input_ids"]
+    >>> logits = model(input_ids).logits
+
+    >>> masked_index = (input_ids[0] == tokenizer.mask_token_id).nonzero().item()
+    >>> probs = logits[0, masked_index].softmax(dim=0)
+    >>> values, predictions = probs.topk(5)
+
+    >>> tokenizer.decode(predictions).split()
+    ['nett', 'sehr', 'ganz', 'nicht', 'so']
+    ```
+"""
+
+MBART_INPUTS_DOCSTRING = r"""
+    Args:
+        input_ids (`torch.LongTensor` of shape `(batch_size, sequence_length)`):
+            Indices of input sequence tokens in the vocabulary. Padding will be ignored by default should you provide
+            it.
+
+            Indices can be obtained using [`AutoTokenizer`]. See [`PreTrainedTokenizer.encode`] and
+            [`PreTrainedTokenizer.__call__`] for details.
+
+            [What are input IDs?](../glossary#input-ids)
+        attention_mask (`torch.Tensor` of shape `(batch_size, sequence_length)`, *optional*):
+            Mask to avoid performing attention on padding token indices. Mask values selected in `[0, 1]`:
+
+            - 1 for tokens that are **not masked**,
+            - 0 for tokens that are **masked**.
+
+            [What are attention masks?](../glossary#attention-mask)
+        decoder_input_ids (`torch.LongTensor` of shape `(batch_size, target_sequence_length)`, *optional*):
+            Indices of decoder input sequence tokens in the vocabulary.
+
+            Indices can be obtained using [`AutoTokenizer`]. See [`PreTrainedTokenizer.encode`] and
+            [`PreTrainedTokenizer.__call__`] for details.
+
+            [What are decoder input IDs?](../glossary#decoder-input-ids)
+
+            MBart uses a specific language id token as the starting token for `decoder_input_ids` generation that
+            varies according to source and target language, *e.g.* 25004 for *en_XX*, and 25003 for *de_DE*. If
+            `past_key_values` is used, optionally only the last `decoder_input_ids` have to be input (see
+            `past_key_values`).
+
+            For translation and summarization training, `decoder_input_ids` should be provided. If no
+            `decoder_input_ids` is provided, the model will create this tensor by shifting the `input_ids` to the right
+            for denoising pre-training following the paper.
+        decoder_attention_mask (`torch.LongTensor` of shape `(batch_size, target_sequence_length)`, *optional*):
+            Default behavior: generate a tensor that ignores pad tokens in `decoder_input_ids`. Causal mask will also
+            be used by default.
+        head_mask (`torch.Tensor` of shape `(encoder_layers, encoder_attention_heads)`, *optional*):
+            Mask to nullify selected heads of the attention modules in the encoder. Mask values selected in `[0, 1]`:
+
+            - 1 indicates the head is **not masked**,
+            - 0 indicates the head is **masked**.
+
+        decoder_head_mask (`torch.Tensor` of shape `(decoder_layers, decoder_attention_heads)`, *optional*):
+            Mask to nullify selected heads of the attention modules in the decoder. Mask values selected in `[0, 1]`:
+
+            - 1 indicates the head is **not masked**,
+            - 0 indicates the head is **masked**.
+
+        cross_attn_head_mask (`torch.Tensor` of shape `(decoder_layers, decoder_attention_heads)`, *optional*):
+            Mask to nullify selected heads of the cross-attention modules in the decoder. Mask values selected in `[0,
+            1]`:
+
+            - 1 indicates the head is **not masked**,
+            - 0 indicates the head is **masked**.
+
+        encoder_outputs (`tuple(tuple(torch.FloatTensor)`, *optional*):
+            Tuple consists of (`last_hidden_state`, *optional*: `hidden_states`, *optional*: `attentions`)
+            `last_hidden_state` of shape `(batch_size, sequence_length, hidden_size)`, *optional*) is a sequence of
+            hidden-states at the output of the last layer of the encoder. Used in the cross-attention of the decoder.
+        past_key_values (`tuple(tuple(torch.FloatTensor))`, *optional*, returned when `use_cache=True` is passed or when `config.use_cache=True`):
+            Tuple of `tuple(torch.FloatTensor)` of length `config.n_layers`, with each tuple having 2 tensors of shape
+            `(batch_size, num_heads, sequence_length, embed_size_per_head)`) and 2 additional tensors of shape
+            `(batch_size, num_heads, encoder_sequence_length, embed_size_per_head)`.
+
+            Contains pre-computed hidden-states (key and values in the self-attention blocks and in the cross-attention
+            blocks) that can be used (see `past_key_values` input) to speed up sequential decoding.
+
+            If `past_key_values` are used, the user can optionally input only the last `decoder_input_ids` (those that
+            don't have their past key value states given to this model) of shape `(batch_size, 1)` instead of all
+            `decoder_input_ids` of shape `(batch_size, sequence_length)`.
+        inputs_embeds (`torch.FloatTensor` of shape `(batch_size, sequence_length, hidden_size)`, *optional*):
+            Optionally, instead of passing `input_ids` you can choose to directly pass an embedded representation.
+            This is useful if you want more control over how to convert `input_ids` indices into associated vectors
+            than the model's internal embedding lookup matrix.
+        decoder_inputs_embeds (`torch.FloatTensor` of shape `(batch_size, target_sequence_length, hidden_size)`, *optional*):
+            Optionally, instead of passing `decoder_input_ids` you can choose to directly pass an embedded
+            representation. If `past_key_values` is used, optionally only the last `decoder_inputs_embeds` have to be
+            input (see `past_key_values`). This is useful if you want more control over how to convert
+            `decoder_input_ids` indices into associated vectors than the model's internal embedding lookup matrix.
+
+            If `decoder_input_ids` and `decoder_inputs_embeds` are both unset, `decoder_inputs_embeds` takes the value
+            of `inputs_embeds`.
+        use_cache (`bool`, *optional*):
+            If set to `True`, `past_key_values` key value states are returned and can be used to speed up decoding (see
+            `past_key_values`).
+        output_attentions (`bool`, *optional*):
+            Whether or not to return the attentions tensors of all attention layers. See `attentions` under returned
+            tensors for more detail.
+        output_hidden_states (`bool`, *optional*):
+            Whether or not to return the hidden states of all layers. See `hidden_states` under returned tensors for
+            more detail.
+        return_dict (`bool`, *optional*):
+            Whether or not to return a [`~utils.ModelOutput`] instead of a plain tuple.
+"""
+
+
+class UnimerMBartEncoder(UnimerMBartPreTrainedModel):
+    """
+    Transformer encoder consisting of *config.encoder_layers* self attention layers. Each layer is a
+    [`MBartEncoderLayer`].
+
+    Args:
+        config: MBartConfig
+        embed_tokens (nn.Embedding): output embedding
+    """
+
+    def __init__(self, config: UnimerMBartConfig, embed_tokens: Optional[nn.Embedding] = None):
+        super().__init__(config)
+
+        self.dropout = config.dropout
+        self.layerdrop = config.encoder_layerdrop
+
+        embed_dim = config.d_model
+        self.padding_idx = config.pad_token_id
+        self.max_source_positions = config.max_position_embeddings
+        embed_scale = math.sqrt(embed_dim) if config.scale_embedding else 1.0
+
+        self.embed_tokens = UnimerMBartScaledWordEmbedding(
+            config.vocab_size, embed_dim, self.padding_idx, embed_scale=embed_scale
+        )
+
+        if embed_tokens is not None:
+            self.embed_tokens.weight = embed_tokens.weight
+
+        self.embed_positions = UnimerMBartLearnedPositionalEmbedding(
+            config.max_position_embeddings,
+            embed_dim,
+        )
+        self.layers = nn.ModuleList([UnimerMBartEncoderLayer(config) for _ in range(config.encoder_layers)])
+        self._use_flash_attention_2 = config._attn_implementation == "flash_attention_2"
+        self._use_sdpa = config._attn_implementation == "sdpa"
+        self.layernorm_embedding = nn.LayerNorm(embed_dim)
+        self.layer_norm = nn.LayerNorm(config.d_model)
+
+        self.gradient_checkpointing = False
+        # Initialize weights and apply final processing
+        self.post_init()
+
+    def _backward_compatibility_gradient_checkpointing(self):
+        # Override to not delete the attribute from the config
+        if self.supports_gradient_checkpointing and getattr(self.config, "gradient_checkpointing", False):
+            self.gradient_checkpointing_enable()
+
+    def forward(
+        self,
+        input_ids: torch.LongTensor = None,
+        attention_mask: Optional[torch.Tensor] = None,
+        head_mask: Optional[torch.Tensor] = None,
+        inputs_embeds: Optional[torch.FloatTensor] = None,
+        output_attentions: Optional[bool] = None,
+        output_hidden_states: Optional[bool] = None,
+        return_dict: Optional[bool] = None,
+    ) -> Union[Tuple, BaseModelOutput]:
+        r"""
+        Args:
+            input_ids (`torch.LongTensor` of shape `(batch_size, sequence_length)`):
+                Indices of input sequence tokens in the vocabulary. Padding will be ignored by default should you
+                provide it.
+
+                Indices can be obtained using [`AutoTokenizer`]. See [`PreTrainedTokenizer.encode`] and
+                [`PreTrainedTokenizer.__call__`] for details.
+
+                [What are input IDs?](../glossary#input-ids)
+            attention_mask (`torch.Tensor` of shape `(batch_size, sequence_length)`, *optional*):
+                Mask to avoid performing attention on padding token indices. Mask values selected in `[0, 1]`:
+
+                - 1 for tokens that are **not masked**,
+                - 0 for tokens that are **masked**.
+
+                [What are attention masks?](../glossary#attention-mask)
+            head_mask (`torch.Tensor` of shape `(encoder_layers, encoder_attention_heads)`, *optional*):
+                Mask to nullify selected heads of the attention modules. Mask values selected in `[0, 1]`:
+
+                - 1 indicates the head is **not masked**,
+                - 0 indicates the head is **masked**.
+
+            inputs_embeds (`torch.FloatTensor` of shape `(batch_size, sequence_length, hidden_size)`, *optional*):
+                Optionally, instead of passing `input_ids` you can choose to directly pass an embedded representation.
+                This is useful if you want more control over how to convert `input_ids` indices into associated vectors
+                than the model's internal embedding lookup matrix.
+            output_attentions (`bool`, *optional*):
+                Whether or not to return the attentions tensors of all attention layers. See `attentions` under
+                returned tensors for more detail.
+            output_hidden_states (`bool`, *optional*):
+                Whether or not to return the hidden states of all layers. See `hidden_states` under returned tensors
+                for more detail.
+            return_dict (`bool`, *optional*):
+                Whether or not to return a [`~utils.ModelOutput`] instead of a plain tuple.
+        """
+        output_attentions = output_attentions if output_attentions is not None else self.config.output_attentions
+        output_hidden_states = (
+            output_hidden_states if output_hidden_states is not None else self.config.output_hidden_states
+        )
+        return_dict = return_dict if return_dict is not None else self.config.use_return_dict
+
+        # retrieve input_ids and inputs_embeds
+        if input_ids is not None and inputs_embeds is not None:
+            raise ValueError("You cannot specify both input_ids and inputs_embeds at the same time")
+        elif input_ids is not None:
+            input = input_ids
+            input_shape = input.shape
+            input_ids = input_ids.view(-1, input_shape[-1])
+        elif inputs_embeds is not None:
+            input = inputs_embeds[:, :, -1]
+        else:
+            raise ValueError("You have to specify either input_ids or inputs_embeds")
+
+        if inputs_embeds is None:
+            inputs_embeds = self.embed_tokens(input_ids)
+
+        embed_pos = self.embed_positions(input)
+
+        hidden_states = inputs_embeds + embed_pos.to(inputs_embeds.device)
+        hidden_states = self.layernorm_embedding(hidden_states)
+        hidden_states = nn.functional.dropout(hidden_states, p=self.dropout, training=self.training)
+
+        # expand attention_mask
+        if attention_mask is not None:
+            # [bsz, seq_len] -> [bsz, 1, tgt_seq_len, src_seq_len]
+            if self._use_flash_attention_2:
+                attention_mask = attention_mask if 0 in attention_mask else None
+            elif self._use_sdpa and head_mask is None and not output_attentions:
+                # output_attentions=True & head_mask can not be supported when using SDPA, fall back to
+                # the manual implementation that requires a 4D causal mask in all cases.
+                # [bsz, seq_len] -> [bsz, 1, tgt_seq_len, src_seq_len]
+                attention_mask = _prepare_4d_attention_mask_for_sdpa(attention_mask, inputs_embeds.dtype)
+            else:
+                # [bsz, seq_len] -> [bsz, 1, tgt_seq_len, src_seq_len]
+                attention_mask = _prepare_4d_attention_mask(attention_mask, inputs_embeds.dtype)
+
+        encoder_states = () if output_hidden_states else None
+        all_attentions = () if output_attentions else None
+
+        # check if head_mask has a correct number of layers specified if desired
+        if head_mask is not None:
+            if head_mask.size()[0] != len(self.layers):
+                raise ValueError(
+                    f"The head_mask should be specified for {len(self.layers)} layers, but it is for"
+                    f" {head_mask.size()[0]}."
+                )
+        for idx, encoder_layer in enumerate(self.layers):
+            if output_hidden_states:
+                encoder_states = encoder_states + (hidden_states,)
+            # add LayerDrop (see https://arxiv.org/abs/1909.11556 for description)
+            to_drop = False
+            if self.training:
+                dropout_probability = torch.rand([])
+                if dropout_probability < self.layerdrop:  # skip the layer
+                    to_drop = True
+
+            if to_drop:
+                layer_outputs = (None, None)
+            else:
+                if self.gradient_checkpointing and self.training:
+                    layer_outputs = self._gradient_checkpointing_func(
+                        encoder_layer.__call__,
+                        hidden_states,
+                        attention_mask,
+                        (head_mask[idx] if head_mask is not None else None),
+                        output_attentions,
+                    )
+                else:
+                    layer_outputs = encoder_layer(
+                        hidden_states,
+                        attention_mask,
+                        layer_head_mask=(head_mask[idx] if head_mask is not None else None),
+                        output_attentions=output_attentions,
+                    )
+
+                hidden_states = layer_outputs[0]
+
+            if output_attentions:
+                all_attentions = all_attentions + (layer_outputs[1],)
+
+        hidden_states = self.layer_norm(hidden_states)
+
+        if output_hidden_states:
+            encoder_states = encoder_states + (hidden_states,)
+
+        if not return_dict:
+            return tuple(v for v in [hidden_states, encoder_states, all_attentions] if v is not None)
+        return BaseModelOutput(
+            last_hidden_state=hidden_states, hidden_states=encoder_states, attentions=all_attentions
+        )
+
+
+class UnimerMBartDecoder(UnimerMBartPreTrainedModel):
+    """
+    Transformer decoder consisting of *config.decoder_layers* layers. Each layer is a [`MBartDecoderLayer`]
+
+    Args:
+        config: MBartConfig
+        embed_tokens (nn.Embedding): output embedding
+    """
+
+    def __init__(self, config: UnimerMBartConfig, embed_tokens: Optional[nn.Embedding] = None):
+        super().__init__(config)
+        self.dropout = config.dropout
+        self.layerdrop = config.decoder_layerdrop
+        self.padding_idx = config.pad_token_id
+        self.max_target_positions = config.max_position_embeddings
+        embed_scale = math.sqrt(config.d_model) if config.scale_embedding else 1.0
+
+        self.embed_tokens = UnimerMBartScaledWordEmbedding(
+            config.vocab_size, config.d_model, self.padding_idx, embed_scale=embed_scale
+        )
+
+        if embed_tokens is not None:
+            self.embed_tokens.weight = embed_tokens.weight
+
+        self.embed_positions = UnimerMBartLearnedPositionalEmbedding(
+            config.max_position_embeddings,
+            config.d_model,
+        )
+        self.layers = nn.ModuleList([UnimerMBartDecoderLayer(config) for _ in range(config.decoder_layers)])
+        self._use_flash_attention_2 = config._attn_implementation == "flash_attention_2"
+        self._use_sdpa = config._attn_implementation == "sdpa"
+        self.layernorm_embedding = nn.LayerNorm(config.d_model)
+        self.layer_norm = nn.LayerNorm(config.d_model)
+
+        self.gradient_checkpointing = False
+        # Initialize weights and apply final processing
+        self.post_init()
+
+    def get_input_embeddings(self):
+        return self.embed_tokens
+
+    def set_input_embeddings(self, value):
+        self.embed_tokens = value
+
+    def forward(
+        self,
+        input_ids: torch.LongTensor = None,
+        attention_mask: Optional[torch.Tensor] = None,
+        count_pred: Optional[torch.FloatTensor] = None,
+        encoder_hidden_states: Optional[torch.FloatTensor] = None,
+        encoder_attention_mask: Optional[torch.LongTensor] = None,
+        head_mask: Optional[torch.Tensor] = None,
+        cross_attn_head_mask: Optional[torch.Tensor] = None,
+        past_key_values: Optional[Tuple[Tuple[torch.FloatTensor]]] = None,
+        inputs_embeds: Optional[torch.FloatTensor] = None,
+        use_cache: Optional[bool] = None,
+        output_attentions: Optional[bool] = None,
+        output_hidden_states: Optional[bool] = None,
+        return_dict: Optional[bool] = None,
+    ) -> Union[Tuple, BaseModelOutputWithPastAndCrossAttentions]:
+        r"""
+        Args:
+            input_ids (`torch.LongTensor` of shape `(batch_size, sequence_length)`):
+                Indices of input sequence tokens in the vocabulary. Padding will be ignored by default should you
+                provide it.
+
+                Indices can be obtained using [`AutoTokenizer`]. See [`PreTrainedTokenizer.encode`] and
+                [`PreTrainedTokenizer.__call__`] for details.
+
+                [What are input IDs?](../glossary#input-ids)
+            attention_mask (`torch.Tensor` of shape `(batch_size, sequence_length)`, *optional*):
+                Mask to avoid performing attention on padding token indices. Mask values selected in `[0, 1]`:
+
+                - 1 for tokens that are **not masked**,
+                - 0 for tokens that are **masked**.
+
+                [What are attention masks?](../glossary#attention-mask)
+            encoder_hidden_states (`torch.FloatTensor` of shape `(batch_size, encoder_sequence_length, hidden_size)`, *optional*):
+                Sequence of hidden-states at the output of the last layer of the encoder. Used in the cross-attention
+                of the decoder.
+            encoder_attention_mask (`torch.LongTensor` of shape `(batch_size, encoder_sequence_length)`, *optional*):
+                Mask to avoid performing cross-attention on padding tokens indices of encoder input_ids. Mask values
+                selected in `[0, 1]`:
+
+                - 1 for tokens that are **not masked**,
+                - 0 for tokens that are **masked**.
+
+                [What are attention masks?](../glossary#attention-mask)
+            head_mask (`torch.Tensor` of shape `(decoder_layers, decoder_attention_heads)`, *optional*):
+                Mask to nullify selected heads of the attention modules. Mask values selected in `[0, 1]`:
+
+                - 1 indicates the head is **not masked**,
+                - 0 indicates the head is **masked**.
+
+            cross_attn_head_mask (`torch.Tensor` of shape `(decoder_layers, decoder_attention_heads)`, *optional*):
+                Mask to nullify selected heads of the cross-attention modules in the decoder to avoid performing
+                cross-attention on hidden heads. Mask values selected in `[0, 1]`:
+
+                - 1 indicates the head is **not masked**,
+                - 0 indicates the head is **masked**.
+
+            past_key_values (`tuple(tuple(torch.FloatTensor))`, *optional*, returned when `use_cache=True` is passed or when `config.use_cache=True`):
+                Tuple of `tuple(torch.FloatTensor)` of length `config.n_layers`, with each tuple having 2 tensors of
+                shape `(batch_size, num_heads, sequence_length, embed_size_per_head)`) and 2 additional tensors of
+                shape `(batch_size, num_heads, encoder_sequence_length, embed_size_per_head)`.
+
+                Contains pre-computed hidden-states (key and values in the self-attention blocks and in the
+                cross-attention blocks) that can be used (see `past_key_values` input) to speed up sequential decoding.
+
+                If `past_key_values` are used, the user can optionally input only the last `decoder_input_ids` (those
+                that don't have their past key value states given to this model) of shape `(batch_size, 1)` instead of
+                all `decoder_input_ids` of shape `(batch_size, sequence_length)`.
+            inputs_embeds (`torch.FloatTensor` of shape `(batch_size, sequence_length, hidden_size)`, *optional*):
+                Optionally, instead of passing `input_ids` you can choose to directly pass an embedded representation.
+                This is useful if you want more control over how to convert `input_ids` indices into associated vectors
+                than the model's internal embedding lookup matrix.
+            output_attentions (`bool`, *optional*):
+                Whether or not to return the attentions tensors of all attention layers. See `attentions` under
+                returned tensors for more detail.
+            output_hidden_states (`bool`, *optional*):
+                Whether or not to return the hidden states of all layers. See `hidden_states` under returned tensors
+                for more detail.
+            return_dict (`bool`, *optional*):
+                Whether or not to return a [`~utils.ModelOutput`] instead of a plain tuple.
+        """
+        output_attentions = output_attentions if output_attentions is not None else self.config.output_attentions
+        output_hidden_states = (
+            output_hidden_states if output_hidden_states is not None else self.config.output_hidden_states
+        )
+        use_cache = use_cache if use_cache is not None else self.config.use_cache
+        return_dict = return_dict if return_dict is not None else self.config.use_return_dict
+
+        # retrieve input_ids and inputs_embeds
+        if input_ids is not None and inputs_embeds is not None:
+            raise ValueError("You cannot specify both decoder_input_ids and decoder_inputs_embeds at the same time")
+        elif input_ids is not None:
+            input = input_ids
+            input_shape = input.size()
+            input_ids = input_ids.view(-1, input_shape[-1])
+        elif inputs_embeds is not None:
+            input_shape = inputs_embeds.size()[:-1]
+            input = inputs_embeds[:, :, -1]
+        else:
+            raise ValueError("You have to specify either decoder_input_ids or decoder_inputs_embeds")
+
+        # past_key_values_length
+        # past_key_values_length = past_key_values[0][0].shape[2] if past_key_values is not None else 0
+        past_key_values_length = 0
+        if past_key_values is not None:
+            if isinstance(past_key_values, (list, tuple)) and past_key_values:
+                past_key_values_length = past_key_values[0][0].shape[2]
+
+        if inputs_embeds is None:
+            inputs_embeds = self.embed_tokens(input_ids)
+
+        if self._use_flash_attention_2:
+            # 2d mask is passed through the layers
+            attention_mask = attention_mask if (attention_mask is not None and 0 in attention_mask) else None
+        elif self._use_sdpa and not output_attentions and cross_attn_head_mask is None:
+            # output_attentions=True & cross_attn_head_mask can not be supported when using SDPA, and we fall back on
+            # the manual implementation that requires a 4D causal mask in all cases.
+            attention_mask = _prepare_4d_causal_attention_mask_for_sdpa(
+                attention_mask,
+                input_shape,
+                inputs_embeds,
+                past_key_values_length,
+            )
+        else:
+            # 4d mask is passed through the layers
+            attention_mask = _prepare_4d_causal_attention_mask(
+                attention_mask, input_shape, inputs_embeds, past_key_values_length
+            )
+
+        # expand encoder attention mask
+        if encoder_hidden_states is not None and encoder_attention_mask is not None:
+            if self._use_flash_attention_2:
+                encoder_attention_mask = encoder_attention_mask if 0 in encoder_attention_mask else None
+            elif self._use_sdpa and cross_attn_head_mask is None and not output_attentions:
+                # output_attentions=True & cross_attn_head_mask can not be supported when using SDPA, and we fall back on
+                # the manual implementation that requires a 4D causal mask in all cases.
+                # [bsz, seq_len] -> [bsz, 1, tgt_seq_len, src_seq_len]
+                encoder_attention_mask = _prepare_4d_attention_mask_for_sdpa(
+                    encoder_attention_mask,
+                    inputs_embeds.dtype,
+                    tgt_len=input_shape[-1],
+                )
+            else:
+                # [bsz, seq_len] -> [bsz, 1, tgt_seq_len, src_seq_len]
+                encoder_attention_mask = _prepare_4d_attention_mask(
+                    encoder_attention_mask, inputs_embeds.dtype, tgt_len=input_shape[-1]
+                )
+
+        # embed positions
+        positions = self.embed_positions(input, past_key_values_length)
+
+        hidden_states = inputs_embeds + positions.to(inputs_embeds.device)
+
+        # TODO: add counting context weight to hidden_states
+        if count_pred is not None:
+            count_context_weight = self.counting_context_weight(count_pred)
+            hidden_states = hidden_states + 0.5 * count_context_weight.unsqueeze(1)
+
+        hidden_states = self.layernorm_embedding(hidden_states)
+        hidden_states = nn.functional.dropout(hidden_states, p=self.dropout, training=self.training)
+
+        if self.gradient_checkpointing and self.training:
+            if use_cache:
+                logger.warning_once(
+                    "`use_cache=True` is incompatible with gradient checkpointing`. Setting `use_cache=False`..."
+                )
+                use_cache = False
+
+        # decoder layers
+        all_hidden_states = () if output_hidden_states else None
+        all_self_attns = () if output_attentions else None
+        all_cross_attentions = () if (output_attentions and encoder_hidden_states is not None) else None
+        next_decoder_cache = () if use_cache else None
+
+        # check if head_mask/cross_attn_head_mask has a correct number of layers specified if desired
+        for attn_mask, mask_name in zip([head_mask, cross_attn_head_mask], ["head_mask", "cross_attn_head_mask"]):
+            if attn_mask is not None:
+                if attn_mask.size()[0] != len(self.layers):
+                    raise ValueError(
+                        f"The `{mask_name}` should be specified for {len(self.layers)} layers, but it is for"
+                        f" {attn_mask.size()[0]}."
+                    )
+        for idx, decoder_layer in enumerate(self.layers):
+            # add LayerDrop (see https://arxiv.org/abs/1909.11556 for description)
+            if output_hidden_states:
+                all_hidden_states += (hidden_states,)
+            if self.training:
+                dropout_probability = torch.rand([])
+                if dropout_probability < self.layerdrop:
+                    continue
+
+            # past_key_value = past_key_values[idx] if past_key_values is not None else None
+            past_key_value = past_key_values[idx] if (
+                    past_key_values is not None and
+                    isinstance(past_key_values, (list, tuple)) and
+                    idx < len(past_key_values)
+            ) else None
+
+            if self.gradient_checkpointing and self.training:
+                layer_outputs = self._gradient_checkpointing_func(
+                    decoder_layer.__call__,
+                    hidden_states,
+                    attention_mask,
+                    encoder_hidden_states,
+                    encoder_attention_mask,
+                    head_mask[idx] if head_mask is not None else None,
+                    cross_attn_head_mask[idx] if cross_attn_head_mask is not None else None,
+                    None,
+                    output_attentions,
+                    use_cache,
+                )
+            else:
+                layer_outputs = decoder_layer(
+                    hidden_states,
+                    attention_mask=attention_mask,
+                    encoder_hidden_states=encoder_hidden_states,
+                    encoder_attention_mask=encoder_attention_mask,
+                    layer_head_mask=(head_mask[idx] if head_mask is not None else None),
+                    cross_attn_layer_head_mask=(
+                        cross_attn_head_mask[idx] if cross_attn_head_mask is not None else None
+                    ),
+                    past_key_value=past_key_value,
+                    output_attentions=output_attentions,
+                    use_cache=use_cache,
+                )
+            hidden_states = layer_outputs[0]
+
+            if use_cache:
+                next_decoder_cache += (layer_outputs[3 if output_attentions else 1],)
+
+            if output_attentions:
+                all_self_attns += (layer_outputs[1],)
+
+                if encoder_hidden_states is not None:
+                    all_cross_attentions += (layer_outputs[2],)
+
+        hidden_states = self.layer_norm(hidden_states)
+
+        # add hidden states from the last decoder layer
+        if output_hidden_states:
+            all_hidden_states += (hidden_states,)
+
+        next_cache = next_decoder_cache if use_cache else None
+        if not return_dict:
+            return tuple(
+                v
+                for v in [hidden_states, next_cache, all_hidden_states, all_self_attns, all_cross_attentions]
+                if v is not None
+            )
+        return BaseModelOutputWithPastAndCrossAttentions(
+            last_hidden_state=hidden_states,
+            past_key_values=next_cache,
+            hidden_states=all_hidden_states,
+            attentions=all_self_attns,
+            cross_attentions=all_cross_attentions,
+        )
+
+
+@add_start_docstrings(
+    "The bare MBART Model outputting raw hidden-states without any specific head on top.",
+    MBART_START_DOCSTRING,
+)
+class UnimerMBartModel(UnimerMBartPreTrainedModel):
+    _tied_weights_keys = ["encoder.embed_tokens.weight", "decoder.embed_tokens.weight"]
+
+    def __init__(self, config: UnimerMBartConfig):
+        super().__init__(config)
+
+        padding_idx, vocab_size = config.pad_token_id, config.vocab_size
+        self.shared = nn.Embedding(vocab_size, config.d_model, padding_idx)
+
+        self.encoder = UnimerMBartEncoder(config, self.shared)
+        self.decoder = UnimerMBartDecoder(config, self.shared)
+
+        # Initialize weights and apply final processing
+        self.post_init()
+
+    def get_input_embeddings(self):
+        return self.shared
+
+    def set_input_embeddings(self, value):
+        self.shared = value
+        self.encoder.embed_tokens = self.shared
+        self.decoder.embed_tokens = self.shared
+
+    def get_encoder(self):
+        return self.encoder
+
+    def get_decoder(self):
+        return self.decoder
+
+    def _tie_weights(self):
+        if self.config.tie_word_embeddings:
+            self._tie_or_clone_weights(self.encoder.embed_tokens, self.get_input_embeddings())
+            self._tie_or_clone_weights(self.decoder.embed_tokens, self.get_input_embeddings())
+
+    @add_start_docstrings_to_model_forward(MBART_INPUTS_DOCSTRING)
+    @add_code_sample_docstrings(
+        checkpoint=_CHECKPOINT_FOR_DOC,
+        output_type=Seq2SeqModelOutput,
+        config_class=_CONFIG_FOR_DOC,
+        expected_output=_EXPECTED_OUTPUT_SHAPE,
+    )
+    def forward(
+        self,
+        input_ids: torch.LongTensor = None,
+        attention_mask: Optional[torch.Tensor] = None,
+        decoder_input_ids: Optional[torch.LongTensor] = None,
+        decoder_attention_mask: Optional[torch.LongTensor] = None,
+        head_mask: Optional[torch.Tensor] = None,
+        decoder_head_mask: Optional[torch.Tensor] = None,
+        cross_attn_head_mask: Optional[torch.Tensor] = None,
+        encoder_outputs: Optional[Tuple[Tuple[torch.FloatTensor]]] = None,
+        past_key_values: Optional[Tuple[Tuple[torch.FloatTensor]]] = None,
+        inputs_embeds: Optional[torch.FloatTensor] = None,
+        decoder_inputs_embeds: Optional[torch.FloatTensor] = None,
+        use_cache: Optional[bool] = None,
+        output_attentions: Optional[bool] = None,
+        output_hidden_states: Optional[bool] = None,
+        return_dict: Optional[bool] = None,
+    ) -> Union[Seq2SeqModelOutput, Tuple[torch.FloatTensor]]:
+        output_attentions = output_attentions if output_attentions is not None else self.config.output_attentions
+        output_hidden_states = (
+            output_hidden_states if output_hidden_states is not None else self.config.output_hidden_states
+        )
+        use_cache = use_cache if use_cache is not None else self.config.use_cache
+        return_dict = return_dict if return_dict is not None else self.config.use_return_dict
+
+        # different to other models, MBart automatically creates decoder_input_ids from
+        # input_ids if no decoder_input_ids are provided
+        if decoder_input_ids is None and decoder_inputs_embeds is None:
+            decoder_input_ids = shift_tokens_right(input_ids, self.config.pad_token_id)
+
+        if encoder_outputs is None:
+            encoder_outputs = self.encoder(
+                input_ids=input_ids,
+                attention_mask=attention_mask,
+                head_mask=head_mask,
+                inputs_embeds=inputs_embeds,
+                output_attentions=output_attentions,
+                output_hidden_states=output_hidden_states,
+                return_dict=return_dict,
+            )
+        # If the user passed a tuple for encoder_outputs, we wrap it in a BaseModelOutput when return_dict=True
+        elif return_dict and not isinstance(encoder_outputs, BaseModelOutput):
+            encoder_outputs = BaseModelOutput(
+                last_hidden_state=encoder_outputs[0],
+                hidden_states=encoder_outputs[1] if len(encoder_outputs) > 1 else None,
+                attentions=encoder_outputs[2] if len(encoder_outputs) > 2 else None,
+            )
+
+        # decoder outputs consists of (dec_features, past_key_value, dec_hidden, dec_attn)
+        decoder_outputs = self.decoder(
+            input_ids=decoder_input_ids,
+            attention_mask=decoder_attention_mask,
+            encoder_hidden_states=encoder_outputs[0],
+            encoder_attention_mask=attention_mask,
+            head_mask=decoder_head_mask,
+            cross_attn_head_mask=cross_attn_head_mask,
+            past_key_values=past_key_values,
+            inputs_embeds=decoder_inputs_embeds,
+            use_cache=use_cache,
+            output_attentions=output_attentions,
+            output_hidden_states=output_hidden_states,
+            return_dict=return_dict,
+        )
+
+        if not return_dict:
+            return decoder_outputs + encoder_outputs
+
+        return Seq2SeqModelOutput(
+            last_hidden_state=decoder_outputs.last_hidden_state,
+            past_key_values=decoder_outputs.past_key_values,
+            decoder_hidden_states=decoder_outputs.hidden_states,
+            decoder_attentions=decoder_outputs.attentions,
+            cross_attentions=decoder_outputs.cross_attentions,
+            encoder_last_hidden_state=encoder_outputs.last_hidden_state,
+            encoder_hidden_states=encoder_outputs.hidden_states,
+            encoder_attentions=encoder_outputs.attentions,
+        )
+
+
+@add_start_docstrings(
+    "The MBART Model with a language modeling head. Can be used for summarization, after fine-tuning the pretrained models.",
+    MBART_START_DOCSTRING,
+)
+class UnimerMBartForConditionalGeneration(UnimerMBartPreTrainedModel, GenerationMixin):
+    base_model_prefix = "model"
+    _keys_to_ignore_on_load_missing = ["final_logits_bias"]
+    _tied_weights_keys = ["model.encoder.embed_tokens.weight", "model.decoder.embed_tokens.weight", "lm_head.weight"]
+
+    def __init__(self, config: UnimerMBartConfig):
+        super().__init__(config)
+        self.model = UnimerMBartModel(config)
+        self.register_buffer("final_logits_bias", torch.zeros((1, self.model.shared.num_embeddings)))
+        self.lm_head = nn.Linear(config.d_model, self.model.shared.num_embeddings, bias=False)
+
+        # Initialize weights and apply final processing
+        self.post_init()
+
+    def get_encoder(self):
+        return self.model.get_encoder()
+
+    def get_decoder(self):
+        return self.model.get_decoder()
+
+    def resize_token_embeddings(self, new_num_tokens: int, pad_to_multiple_of: Optional[int] = None) -> nn.Embedding:
+        new_embeddings = super().resize_token_embeddings(new_num_tokens, pad_to_multiple_of)
+        self._resize_final_logits_bias(new_embeddings.weight.shape[0])
+        return new_embeddings
+
+    def _resize_final_logits_bias(self, new_num_tokens: int) -> None:
+        old_num_tokens = self.final_logits_bias.shape[-1]
+        if new_num_tokens <= old_num_tokens:
+            new_bias = self.final_logits_bias[:, :new_num_tokens]
+        else:
+            extra_bias = torch.zeros((1, new_num_tokens - old_num_tokens), device=self.final_logits_bias.device)
+            new_bias = torch.cat([self.final_logits_bias, extra_bias], dim=1)
+        self.register_buffer("final_logits_bias", new_bias)
+
+    def get_output_embeddings(self):
+        return self.lm_head
+
+    def set_output_embeddings(self, new_embeddings):
+        self.lm_head = new_embeddings
+
+    @add_start_docstrings_to_model_forward(MBART_INPUTS_DOCSTRING)
+    @replace_return_docstrings(output_type=Seq2SeqLMOutput, config_class=_CONFIG_FOR_DOC)
+    @add_end_docstrings(MBART_GENERATION_EXAMPLE)
+    def forward(
+        self,
+        input_ids: torch.LongTensor = None,
+        attention_mask: Optional[torch.Tensor] = None,
+        decoder_input_ids: Optional[torch.LongTensor] = None,
+        decoder_attention_mask: Optional[torch.LongTensor] = None,
+        head_mask: Optional[torch.Tensor] = None,
+        decoder_head_mask: Optional[torch.Tensor] = None,
+        cross_attn_head_mask: Optional[torch.Tensor] = None,
+        encoder_outputs: Optional[Tuple[Tuple[torch.FloatTensor]]] = None,
+        past_key_values: Optional[Tuple[Tuple[torch.FloatTensor]]] = None,
+        inputs_embeds: Optional[torch.FloatTensor] = None,
+        decoder_inputs_embeds: Optional[torch.FloatTensor] = None,
+        labels: Optional[torch.LongTensor] = None,
+        use_cache: Optional[bool] = None,
+        output_attentions: Optional[bool] = None,
+        output_hidden_states: Optional[bool] = None,
+        return_dict: Optional[bool] = None,
+    ) -> Union[Seq2SeqLMOutput, Tuple[torch.FloatTensor]]:
+        r"""
+        labels (`torch.LongTensor` of shape `(batch_size, sequence_length)`, *optional*):
+            Labels for computing the masked language modeling loss. Indices should either be in `[0, ...,
+            config.vocab_size]` or -100 (see `input_ids` docstring). Tokens with indices set to `-100` are ignored
+            (masked), the loss is only computed for the tokens with labels in `[0, ..., config.vocab_size]`.
+
+        Returns:
+
+        """
+        return_dict = return_dict if return_dict is not None else self.config.use_return_dict
+
+        if labels is not None:
+            if use_cache:
+                logger.warning("The `use_cache` argument is changed to `False` since `labels` is provided.")
+            use_cache = False
+            if decoder_input_ids is None and decoder_inputs_embeds is None:
+                decoder_input_ids = shift_tokens_right(labels, self.config.pad_token_id)
+
+        outputs = self.model(
+            input_ids,
+            attention_mask=attention_mask,
+            decoder_input_ids=decoder_input_ids,
+            encoder_outputs=encoder_outputs,
+            decoder_attention_mask=decoder_attention_mask,
+            head_mask=head_mask,
+            decoder_head_mask=decoder_head_mask,
+            cross_attn_head_mask=cross_attn_head_mask,
+            past_key_values=past_key_values,
+            inputs_embeds=inputs_embeds,
+            decoder_inputs_embeds=decoder_inputs_embeds,
+            use_cache=use_cache,
+            output_attentions=output_attentions,
+            output_hidden_states=output_hidden_states,
+            return_dict=return_dict,
+        )
+        lm_logits = self.lm_head(outputs[0]) + self.final_logits_bias
+
+        masked_lm_loss = None
+        if labels is not None:
+            loss_fct = CrossEntropyLoss()
+            masked_lm_loss = loss_fct(lm_logits.view(-1, self.config.vocab_size), labels.view(-1))
+
+        if not return_dict:
+            output = (lm_logits,) + outputs[1:]
+            return ((masked_lm_loss,) + output) if masked_lm_loss is not None else output
+
+        return Seq2SeqLMOutput(
+            loss=masked_lm_loss,
+            logits=lm_logits,
+            past_key_values=outputs.past_key_values,
+            decoder_hidden_states=outputs.decoder_hidden_states,
+            decoder_attentions=outputs.decoder_attentions,
+            cross_attentions=outputs.cross_attentions,
+            encoder_last_hidden_state=outputs.encoder_last_hidden_state,
+            encoder_hidden_states=outputs.encoder_hidden_states,
+            encoder_attentions=outputs.encoder_attentions,
+        )
+
+    def prepare_inputs_for_generation(
+        self,
+        decoder_input_ids,
+        past_key_values=None,
+        attention_mask=None,
+        head_mask=None,
+        decoder_head_mask=None,
+        cross_attn_head_mask=None,
+        use_cache=None,
+        encoder_outputs=None,
+        **kwargs,
+    ):
+        # cut decoder_input_ids if past is used
+        if past_key_values is not None:
+            past_length = past_key_values[0][0].shape[2]
+
+            # Some generation methods already pass only the last input ID
+            if decoder_input_ids.shape[1] > past_length:
+                remove_prefix_length = past_length
+            else:
+                # Default to old behavior: keep only final ID
+                remove_prefix_length = decoder_input_ids.shape[1] - 1
+
+            decoder_input_ids = decoder_input_ids[:, remove_prefix_length:]
+
+        return {
+            "input_ids": None,  # encoder_outputs is defined. input_ids not needed
+            "encoder_outputs": encoder_outputs,
+            "past_key_values": past_key_values,
+            "decoder_input_ids": decoder_input_ids,
+            "attention_mask": attention_mask,
+            "head_mask": head_mask,
+            "decoder_head_mask": decoder_head_mask,
+            "cross_attn_head_mask": cross_attn_head_mask,
+            "use_cache": use_cache,  # change this to avoid caching (presumably for debugging)
+        }
+
+    def prepare_decoder_input_ids_from_labels(self, labels: torch.Tensor):
+        return shift_tokens_right(labels, self.config.pad_token_id)
+
+    @staticmethod
+    def _reorder_cache(past_key_values, beam_idx):
+        reordered_past = ()
+        for layer_past in past_key_values:
+            # cached cross_attention states don't have to be reordered -> they are always the same
+            reordered_past += (
+                tuple(past_state.index_select(0, beam_idx.to(past_state.device)) for past_state in layer_past[:2])
+                + layer_past[2:],
+            )
+        return reordered_past
+
+
+@add_start_docstrings(
+    """
+    MBart model with a sequence classification/head on top (a linear layer on top of the pooled output) e.g. for GLUE
+    tasks.
+    """,
+    MBART_START_DOCSTRING,
+)
+class UnimerMBartForSequenceClassification(UnimerMBartPreTrainedModel):
+    _tied_weights_keys = ["model.encoder.embed_tokens.weight", "model.decoder.embed_tokens.weight"]
+
+    def __init__(self, config: UnimerMBartConfig, **kwargs):
+        super().__init__(config, **kwargs)
+        self.model = UnimerMBartModel(config)
+        self.classification_head = UnimerMBartClassificationHead(
+            config.d_model,
+            config.d_model,
+            config.num_labels,
+            config.classifier_dropout,
+        )
+
+        # Initialize weights and apply final processing
+        self.post_init()
+
+    @add_start_docstrings_to_model_forward(MBART_INPUTS_DOCSTRING)
+    @add_code_sample_docstrings(
+        checkpoint=_CHECKPOINT_FOR_DOC,
+        output_type=Seq2SeqSequenceClassifierOutput,
+        config_class=_CONFIG_FOR_DOC,
+    )
+    # Copied from transformers.models.bart.modeling_bart.BartForSequenceClassification.forward
+    def forward(
+        self,
+        input_ids: torch.LongTensor = None,
+        attention_mask: Optional[torch.Tensor] = None,
+        decoder_input_ids: Optional[torch.LongTensor] = None,
+        decoder_attention_mask: Optional[torch.LongTensor] = None,
+        head_mask: Optional[torch.Tensor] = None,
+        decoder_head_mask: Optional[torch.Tensor] = None,
+        cross_attn_head_mask: Optional[torch.Tensor] = None,
+        encoder_outputs: Optional[List[torch.FloatTensor]] = None,
+        inputs_embeds: Optional[torch.FloatTensor] = None,
+        decoder_inputs_embeds: Optional[torch.FloatTensor] = None,
+        labels: Optional[torch.LongTensor] = None,
+        use_cache: Optional[bool] = None,
+        output_attentions: Optional[bool] = None,
+        output_hidden_states: Optional[bool] = None,
+        return_dict: Optional[bool] = None,
+    ) -> Union[Tuple, Seq2SeqSequenceClassifierOutput]:
+        r"""
+        labels (`torch.LongTensor` of shape `(batch_size,)`, *optional*):
+            Labels for computing the sequence classification/regression loss. Indices should be in `[0, ...,
+            config.num_labels - 1]`. If `config.num_labels > 1` a classification loss is computed (Cross-Entropy).
+        """
+        return_dict = return_dict if return_dict is not None else self.config.use_return_dict
+        if labels is not None:
+            use_cache = False
+
+        if input_ids is None and inputs_embeds is not None:
+            raise NotImplementedError(
+                f"Passing input embeddings is currently not supported for {self.__class__.__name__}"
+            )
+
+        outputs = self.model(
+            input_ids,
+            attention_mask=attention_mask,
+            decoder_input_ids=decoder_input_ids,
+            decoder_attention_mask=decoder_attention_mask,
+            head_mask=head_mask,
+            decoder_head_mask=decoder_head_mask,
+            cross_attn_head_mask=cross_attn_head_mask,
+            encoder_outputs=encoder_outputs,
+            inputs_embeds=inputs_embeds,
+            decoder_inputs_embeds=decoder_inputs_embeds,
+            use_cache=use_cache,
+            output_attentions=output_attentions,
+            output_hidden_states=output_hidden_states,
+            return_dict=return_dict,
+        )
+        hidden_states = outputs[0]  # last hidden state
+
+        eos_mask = input_ids.eq(self.config.eos_token_id).to(hidden_states.device)
+
+        if len(torch.unique_consecutive(eos_mask.sum(1))) > 1:
+            raise ValueError("All examples must have the same number of <eos> tokens.")
+        sentence_representation = hidden_states[eos_mask, :].view(hidden_states.size(0), -1, hidden_states.size(-1))[
+            :, -1, :
+        ]
+        logits = self.classification_head(sentence_representation)
+
+        loss = None
+        if labels is not None:
+            labels = labels.to(logits.device)
+            if self.config.problem_type is None:
+                if self.config.num_labels == 1:
+                    self.config.problem_type = "regression"
+                elif self.config.num_labels > 1 and (labels.dtype == torch.long or labels.dtype == torch.int):
+                    self.config.problem_type = "single_label_classification"
+                else:
+                    self.config.problem_type = "multi_label_classification"
+
+            if self.config.problem_type == "regression":
+                loss_fct = MSELoss()
+                if self.config.num_labels == 1:
+                    loss = loss_fct(logits.squeeze(), labels.squeeze())
+                else:
+                    loss = loss_fct(logits, labels)
+            elif self.config.problem_type == "single_label_classification":
+                loss_fct = CrossEntropyLoss()
+                loss = loss_fct(logits.view(-1, self.config.num_labels), labels.view(-1))
+            elif self.config.problem_type == "multi_label_classification":
+                loss_fct = BCEWithLogitsLoss()
+                loss = loss_fct(logits, labels)
+        if not return_dict:
+            output = (logits,) + outputs[1:]
+            return ((loss,) + output) if loss is not None else output
+
+        return Seq2SeqSequenceClassifierOutput(
+            loss=loss,
+            logits=logits,
+            past_key_values=outputs.past_key_values,
+            decoder_hidden_states=outputs.decoder_hidden_states,
+            decoder_attentions=outputs.decoder_attentions,
+            cross_attentions=outputs.cross_attentions,
+            encoder_last_hidden_state=outputs.encoder_last_hidden_state,
+            encoder_hidden_states=outputs.encoder_hidden_states,
+            encoder_attentions=outputs.encoder_attentions,
+        )
+
+
+@add_start_docstrings(
+    """
+    MBART Model with a span classification head on top for extractive question-answering tasks like SQuAD (a linear
+    layer on top of the hidden-states output to compute `span start logits` and `span end logits`).
+    """,
+    MBART_START_DOCSTRING,
+)
+class UnimerMBartForQuestionAnswering(UnimerMBartPreTrainedModel):
+    _tied_weights_keys = ["model.encoder.embed_tokens.weight", "model.decoder.embed_tokens.weight"]
+
+    def __init__(self, config):
+        super().__init__(config)
+
+        config.num_labels = 2
+        self.num_labels = config.num_labels
+
+        self.model = UnimerMBartModel(config)
+        self.qa_outputs = nn.Linear(config.hidden_size, config.num_labels)
+
+        # Initialize weights and apply final processing
+        self.post_init()
+
+    @add_start_docstrings_to_model_forward(MBART_INPUTS_DOCSTRING)
+    @add_code_sample_docstrings(
+        checkpoint=_CHECKPOINT_FOR_DOC,
+        output_type=Seq2SeqQuestionAnsweringModelOutput,
+        config_class=_CONFIG_FOR_DOC,
+    )
+    # Copied from transformers.models.bart.modeling_bart.BartForQuestionAnswering.forward
+    def forward(
+        self,
+        input_ids: torch.Tensor = None,
+        attention_mask: Optional[torch.Tensor] = None,
+        decoder_input_ids: Optional[torch.LongTensor] = None,
+        decoder_attention_mask: Optional[torch.LongTensor] = None,
+        head_mask: Optional[torch.Tensor] = None,
+        decoder_head_mask: Optional[torch.Tensor] = None,
+        cross_attn_head_mask: Optional[torch.Tensor] = None,
+        encoder_outputs: Optional[List[torch.FloatTensor]] = None,
+        start_positions: Optional[torch.LongTensor] = None,
+        end_positions: Optional[torch.LongTensor] = None,
+        inputs_embeds: Optional[torch.FloatTensor] = None,
+        decoder_inputs_embeds: Optional[torch.FloatTensor] = None,
+        use_cache: Optional[bool] = None,
+        output_attentions: Optional[bool] = None,
+        output_hidden_states: Optional[bool] = None,
+        return_dict: Optional[bool] = None,
+    ) -> Union[Tuple, Seq2SeqQuestionAnsweringModelOutput]:
+        r"""
+        start_positions (`torch.LongTensor` of shape `(batch_size,)`, *optional*):
+            Labels for position (index) of the start of the labelled span for computing the token classification loss.
+            Positions are clamped to the length of the sequence (*sequence_length*). Position outside of the sequence
+            are not taken into account for computing the loss.
+        end_positions (`torch.LongTensor` of shape `(batch_size,)`, *optional*):
+            Labels for position (index) of the end of the labelled span for computing the token classification loss.
+            Positions are clamped to the length of the sequence (*sequence_length*). Position outside of the sequence
+            are not taken into account for computing the loss.
+        """
+        return_dict = return_dict if return_dict is not None else self.config.use_return_dict
+        if start_positions is not None and end_positions is not None:
+            use_cache = False
+
+        outputs = self.model(
+            input_ids,
+            attention_mask=attention_mask,
+            decoder_input_ids=decoder_input_ids,
+            decoder_attention_mask=decoder_attention_mask,
+            head_mask=head_mask,
+            decoder_head_mask=decoder_head_mask,
+            cross_attn_head_mask=cross_attn_head_mask,
+            encoder_outputs=encoder_outputs,
+            inputs_embeds=inputs_embeds,
+            decoder_inputs_embeds=decoder_inputs_embeds,
+            use_cache=use_cache,
+            output_attentions=output_attentions,
+            output_hidden_states=output_hidden_states,
+            return_dict=return_dict,
+        )
+
+        sequence_output = outputs[0]
+
+        logits = self.qa_outputs(sequence_output)
+        start_logits, end_logits = logits.split(1, dim=-1)
+        start_logits = start_logits.squeeze(-1).contiguous()
+        end_logits = end_logits.squeeze(-1).contiguous()
+
+        total_loss = None
+        if start_positions is not None and end_positions is not None:
+            # If we are on multi-GPU, split add a dimension
+            if len(start_positions.size()) > 1:
+                start_positions = start_positions.squeeze(-1)
+            if len(end_positions.size()) > 1:
+                end_positions = end_positions.squeeze(-1)
+            # sometimes the start/end positions are outside our model inputs, we ignore these terms
+            ignored_index = start_logits.size(1)
+            start_positions = start_positions.clamp(0, ignored_index)
+            end_positions = end_positions.clamp(0, ignored_index)
+
+            loss_fct = CrossEntropyLoss(ignore_index=ignored_index)
+            start_loss = loss_fct(start_logits, start_positions)
+            end_loss = loss_fct(end_logits, end_positions)
+            total_loss = (start_loss + end_loss) / 2
+
+        if not return_dict:
+            output = (
+                start_logits,
+                end_logits,
+            ) + outputs[1:]
+            return ((total_loss,) + output) if total_loss is not None else output
+
+        return Seq2SeqQuestionAnsweringModelOutput(
+            loss=total_loss,
+            start_logits=start_logits,
+            end_logits=end_logits,
+            past_key_values=outputs.past_key_values,
+            decoder_hidden_states=outputs.decoder_hidden_states,
+            decoder_attentions=outputs.decoder_attentions,
+            cross_attentions=outputs.cross_attentions,
+            encoder_last_hidden_state=outputs.encoder_last_hidden_state,
+            encoder_hidden_states=outputs.encoder_hidden_states,
+            encoder_attentions=outputs.encoder_attentions,
+        )
+
+
+# Copied from transformers.models.bart.modeling_bart.BartDecoderWrapper with Bart->MBart
+class UnimerMBartDecoderWrapper(UnimerMBartPreTrainedModel):
+    """
+    This wrapper class is a helper class to correctly load pretrained checkpoints when the causal language model is
+    used in combination with the [`EncoderDecoderModel`] framework.
+    """
+
+    def __init__(self, config):
+        super().__init__(config)
+        self.decoder = UnimerMBartDecoder(config)
+
+    def forward(self, *args, **kwargs):
+        return self.decoder(*args, **kwargs)
+
+
+# Copied from transformers.models.bart.modeling_bart.BartForCausalLM with Bart->MBart, facebook/bart-base->facebook/mbart-large-cc25
+class UnimerMBartForCausalLM(UnimerMBartPreTrainedModel, GenerationMixin):
+    _tied_weights_keys = ["lm_head.weight"]
+
+    def __init__(self, config):
+        config = copy.deepcopy(config)
+        config.is_decoder = True
+        config.is_encoder_decoder = False
+        super().__init__(config)
+        self.model = UnimerMBartDecoderWrapper(config)
+
+        self.lm_head = nn.Linear(config.hidden_size, config.vocab_size, bias=False)
+
+        # Initialize weights and apply final processing
+        self.post_init()
+
+    def get_input_embeddings(self):
+        return self.model.decoder.embed_tokens
+
+    def set_input_embeddings(self, value):
+        self.model.decoder.embed_tokens = value
+
+    def get_output_embeddings(self):
+        return self.lm_head
+
+    def set_output_embeddings(self, new_embeddings):
+        self.lm_head = new_embeddings
+
+    def set_decoder(self, decoder):
+        self.model.decoder = decoder
+
+    def get_decoder(self):
+        return self.model.decoder
+
+    @replace_return_docstrings(output_type=CausalLMOutputWithCrossAttentionsAndCounting, config_class=_CONFIG_FOR_DOC)
+    def forward(
+        self,
+        input_ids: torch.LongTensor = None,
+        attention_mask: Optional[torch.Tensor] = None,
+        encoder_hidden_states: Optional[torch.FloatTensor] = None,
+        encoder_attention_mask: Optional[torch.FloatTensor] = None,
+        head_mask: Optional[torch.Tensor] = None,
+        cross_attn_head_mask: Optional[torch.Tensor] = None,
+        past_key_values: Optional[List[torch.FloatTensor]] = None,
+        inputs_embeds: Optional[torch.FloatTensor] = None,
+        labels: Optional[torch.LongTensor] = None,
+        use_cache: Optional[bool] = None,
+        output_attentions: Optional[bool] = None,
+        output_hidden_states: Optional[bool] = None,
+        return_dict: Optional[bool] = None,
+        count_gt: Optional[torch.LongTensor] = None,
+        **kwargs,
+    ) -> Union[Tuple, CausalLMOutputWithCrossAttentions]:
+        r"""
+        Args:
+            input_ids (`torch.LongTensor` of shape `(batch_size, sequence_length)`):
+                Indices of input sequence tokens in the vocabulary. Padding will be ignored by default should you
+                provide it.
+
+                Indices can be obtained using [`AutoTokenizer`]. See [`PreTrainedTokenizer.encode`] and
+                [`PreTrainedTokenizer.__call__`] for details.
+
+                [What are input IDs?](../glossary#input-ids)
+            attention_mask (`torch.Tensor` of shape `(batch_size, sequence_length)`, *optional*):
+                Mask to avoid performing attention on padding token indices. Mask values selected in `[0, 1]`:
+
+                - 1 for tokens that are **not masked**,
+                - 0 for tokens that are **masked**.
+
+                [What are attention masks?](../glossary#attention-mask)
+            encoder_hidden_states  (`torch.FloatTensor` of shape `(batch_size, sequence_length, hidden_size)`, *optional*):
+                Sequence of hidden-states at the output of the last layer of the encoder. Used in the cross-attention
+                if the model is configured as a decoder.
+            encoder_attention_mask (`torch.FloatTensor` of shape `(batch_size, sequence_length)`, *optional*):
+                Mask to avoid performing attention on the padding token indices of the encoder input. This mask is used
+                in the cross-attention if the model is configured as a decoder. Mask values selected in `[0, 1]`:
+            head_mask (`torch.Tensor` of shape `(decoder_layers, decoder_attention_heads)`, *optional*):
+                Mask to nullify selected heads of the attention modules. Mask values selected in `[0, 1]`:
+
+                - 1 indicates the head is **not masked**,
+                - 0 indicates the head is **masked**.
+
+            cross_attn_head_mask (`torch.Tensor` of shape `(decoder_layers, decoder_attention_heads)`, *optional*):
+                Mask to nullify selected heads of the cross-attention modules. Mask values selected in `[0, 1]`:
+
+                - 1 indicates the head is **not masked**,
+                - 0 indicates the head is **masked**.
+
+            past_key_values (`tuple(tuple(torch.FloatTensor))`, *optional*, returned when `use_cache=True` is passed or when `config.use_cache=True`):
+                Tuple of `tuple(torch.FloatTensor)` of length `config.n_layers`, with each tuple having 2 tensors of
+                shape `(batch_size, num_heads, sequence_length, embed_size_per_head)`) and 2 additional tensors of
+                shape `(batch_size, num_heads, encoder_sequence_length, embed_size_per_head)`. The two additional
+                tensors are only required when the model is used as a decoder in a Sequence to Sequence model.
+
+                Contains pre-computed hidden-states (key and values in the self-attention blocks and in the
+                cross-attention blocks) that can be used (see `past_key_values` input) to speed up sequential decoding.
+
+                If `past_key_values` are used, the user can optionally input only the last `decoder_input_ids` (those
+                that don't have their past key value states given to this model) of shape `(batch_size, 1)` instead of
+                all `decoder_input_ids` of shape `(batch_size, sequence_length)`.
+            labels (`torch.LongTensor` of shape `(batch_size, sequence_length)`, *optional*):
+                Labels for computing the masked language modeling loss. Indices should either be in `[0, ...,
+                config.vocab_size]` or -100 (see `input_ids` docstring). Tokens with indices set to `-100` are ignored
+                (masked), the loss is only computed for the tokens with labels in `[0, ..., config.vocab_size]`.
+            use_cache (`bool`, *optional*):
+                If set to `True`, `past_key_values` key value states are returned and can be used to speed up decoding
+                (see `past_key_values`).
+
+                - 1 for tokens that are **not masked**,
+                - 0 for tokens that are **masked**.
+            output_attentions (`bool`, *optional*):
+                Whether or not to return the attentions tensors of all attention layers. See `attentions` under
+                returned tensors for more detail.
+            output_hidden_states (`bool`, *optional*):
+                Whether or not to return the hidden states of all layers. See `hidden_states` under returned tensors
+                for more detail.
+            return_dict (`bool`, *optional*):
+                Whether or not to return a [`~utils.ModelOutput`] instead of a plain tuple.
+
+        Returns:
+
+        Example:
+
+        ```python
+        >>> from transformers import AutoTokenizer, MBartForCausalLM
+
+        >>> tokenizer = AutoTokenizer.from_pretrained("facebook/mbart-large-cc25")
+        >>> model = MBartForCausalLM.from_pretrained("facebook/mbart-large-cc25", add_cross_attention=False)
+        >>> assert model.config.is_decoder, f"{model.__class__} has to be configured as a decoder."
+        >>> inputs = tokenizer("Hello, my dog is cute", return_tensors="pt")
+        >>> outputs = model(**inputs)
+
+        >>> logits = outputs.logits
+        >>> expected_shape = [1, inputs.input_ids.shape[-1], model.config.vocab_size]
+        >>> list(logits.shape) == expected_shape
+        True
+        ```"""
+
+        output_attentions = output_attentions if output_attentions is not None else self.config.output_attentions
+        output_hidden_states = (
+            output_hidden_states if output_hidden_states is not None else self.config.output_hidden_states
+        )
+        return_dict = return_dict if return_dict is not None else self.config.use_return_dict
+
+        count_pred = None
+
+        # decoder outputs consists of (dec_features, layer_state, dec_hidden, dec_attn)
+        outputs = self.model.decoder(
+            input_ids=input_ids,
+            attention_mask=attention_mask,
+            count_pred=count_pred,
+            encoder_hidden_states=encoder_hidden_states,
+            encoder_attention_mask=encoder_attention_mask,
+            head_mask=head_mask,
+            cross_attn_head_mask=cross_attn_head_mask,
+            past_key_values=past_key_values,
+            inputs_embeds=inputs_embeds,
+            use_cache=use_cache,
+            output_attentions=output_attentions,
+            output_hidden_states=output_hidden_states,
+            return_dict=return_dict,
+        )
+
+        logits = self.lm_head(outputs[0])
+
+        loss = None
+        if labels is not None:
+            labels = labels.to(logits.device)
+            loss_fct = CrossEntropyLoss()
+            loss = loss_fct(logits.view(-1, self.config.vocab_size), labels.view(-1))
+
+        if not return_dict:
+            output = (logits,) + outputs[1:]
+            return (loss,) + output if loss is not None else output
+
+        return CausalLMOutputWithCrossAttentionsAndCounting(
+            loss=loss,
+            logits=logits,
+            past_key_values=outputs.past_key_values,
+            hidden_states=outputs.hidden_states,
+            attentions=outputs.attentions,
+            cross_attentions=outputs.cross_attentions,
+            counting=count_pred,
+        )
+
+    def prepare_inputs_for_generation(
+        self, input_ids, past_key_values=None, attention_mask=None, use_cache=None, **kwargs
+    ):
+        # if model is used as a decoder in encoder-decoder model, the decoder attention mask is created on the fly
+        if attention_mask is None:
+            attention_mask = input_ids.new_ones(input_ids.shape)
+
+        if past_key_values:
+            past_length = past_key_values[0][0].shape[2]
+
+            # Some generation methods already pass only the last input ID
+            if input_ids.shape[1] > past_length:
+                remove_prefix_length = past_length
+            else:
+                # Default to old behavior: keep only final ID
+                remove_prefix_length = input_ids.shape[1] - 1
+
+            input_ids = input_ids[:, remove_prefix_length:]
+        # first step, decoder_cached_states are empty
+        return {
+            "input_ids": input_ids,  # encoder_outputs is defined. input_ids not needed
+            "attention_mask": attention_mask,
+            "past_key_values": past_key_values,
+            "use_cache": use_cache,
+        }
+
+    @staticmethod
+    def _reorder_cache(past_key_values, beam_idx):
+        reordered_past = ()
+        for layer_past in past_key_values:
+            reordered_past += (
+                tuple(past_state.index_select(0, beam_idx.to(past_state.device)) for past_state in layer_past),
+            )
+        return reordered_past

+ 0 - 0
mineru/model/mfr/unimernet/unimernet_hf/unimer_mbart/tokenization_unimer_mbart.py


+ 9 - 0
mineru/model/mfr/unimernet/unimernet_hf/unimer_swin/__init__.py

@@ -0,0 +1,9 @@
+from .configuration_unimer_swin import UnimerSwinConfig
+from .modeling_unimer_swin import UnimerSwinModel
+from .image_processing_unimer_swin import UnimerSwinImageProcessor
+
+__all__ = [
+    "UnimerSwinConfig",
+    "UnimerSwinModel",
+    "UnimerSwinImageProcessor",
+]

+ 132 - 0
mineru/model/mfr/unimernet/unimernet_hf/unimer_swin/configuration_unimer_swin.py

@@ -0,0 +1,132 @@
+# coding=utf-8
+# Copyright 2022 The HuggingFace Inc. team. All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+"""Donut Swin Transformer model configuration"""
+
+from transformers.configuration_utils import PretrainedConfig
+from transformers.utils import logging
+
+
+logger = logging.get_logger(__name__)
+
+
+class UnimerSwinConfig(PretrainedConfig):
+    r"""
+    This is the configuration class to store the configuration of a [`UnimerSwinModel`]. It is used to instantiate a
+    Donut model according to the specified arguments, defining the model architecture. Instantiating a configuration
+    with the defaults will yield a similar configuration to that of the Donut
+    [naver-clova-ix/donut-base](https://huggingface.co/naver-clova-ix/donut-base) architecture.
+
+    Configuration objects inherit from [`PretrainedConfig`] and can be used to control the model outputs. Read the
+    documentation from [`PretrainedConfig`] for more information.
+
+    Args:
+        image_size (`int`, *optional*, defaults to 224):
+            The size (resolution) of each image.
+        patch_size (`int`, *optional*, defaults to 4):
+            The size (resolution) of each patch.
+        num_channels (`int`, *optional*, defaults to 3):
+            The number of input channels.
+        embed_dim (`int`, *optional*, defaults to 96):
+            Dimensionality of patch embedding.
+        depths (`list(int)`, *optional*, defaults to `[2, 2, 6, 2]`):
+            Depth of each layer in the Transformer encoder.
+        num_heads (`list(int)`, *optional*, defaults to `[3, 6, 12, 24]`):
+            Number of attention heads in each layer of the Transformer encoder.
+        window_size (`int`, *optional*, defaults to 7):
+            Size of windows.
+        mlp_ratio (`float`, *optional*, defaults to 4.0):
+            Ratio of MLP hidden dimensionality to embedding dimensionality.
+        qkv_bias (`bool`, *optional*, defaults to `True`):
+            Whether or not a learnable bias should be added to the queries, keys and values.
+        hidden_dropout_prob (`float`, *optional*, defaults to 0.0):
+            The dropout probability for all fully connected layers in the embeddings and encoder.
+        attention_probs_dropout_prob (`float`, *optional*, defaults to 0.0):
+            The dropout ratio for the attention probabilities.
+        drop_path_rate (`float`, *optional*, defaults to 0.1):
+            Stochastic depth rate.
+        hidden_act (`str` or `function`, *optional*, defaults to `"gelu"`):
+            The non-linear activation function (function or string) in the encoder. If string, `"gelu"`, `"relu"`,
+            `"selu"` and `"gelu_new"` are supported.
+        use_absolute_embeddings (`bool`, *optional*, defaults to `False`):
+            Whether or not to add absolute position embeddings to the patch embeddings.
+        initializer_range (`float`, *optional*, defaults to 0.02):
+            The standard deviation of the truncated_normal_initializer for initializing all weight matrices.
+        layer_norm_eps (`float`, *optional*, defaults to 1e-05):
+            The epsilon used by the layer normalization layers.
+
+    Example:
+
+    ```python
+    >>> from transformers import UnimerSwinConfig, UnimerSwinModel
+
+    >>> # Initializing a Donut naver-clova-ix/donut-base style configuration
+    >>> configuration = UnimerSwinConfig()
+
+    >>> # Randomly initializing a model from the naver-clova-ix/donut-base style configuration
+    >>> model = UnimerSwinModel(configuration)
+
+    >>> # Accessing the model configuration
+    >>> configuration = model.config
+    ```"""
+
+    model_type = "unimer-swin"
+
+    attribute_map = {
+        "num_attention_heads": "num_heads",
+        "num_hidden_layers": "num_layers",
+    }
+
+    def __init__(
+        self,
+        image_size=224,
+        patch_size=4,
+        num_channels=3,
+        embed_dim=96,
+        depths=[2, 2, 6, 2],
+        num_heads=[3, 6, 12, 24],
+        window_size=7,
+        mlp_ratio=4.0,
+        qkv_bias=True,
+        hidden_dropout_prob=0.0,
+        attention_probs_dropout_prob=0.0,
+        drop_path_rate=0.1,
+        hidden_act="gelu",
+        use_absolute_embeddings=False,
+        initializer_range=0.02,
+        layer_norm_eps=1e-5,
+        **kwargs,
+    ):
+        super().__init__(**kwargs)
+
+        self.image_size = image_size
+        self.patch_size = patch_size
+        self.num_channels = num_channels
+        self.embed_dim = embed_dim
+        self.depths = depths
+        self.num_layers = len(depths)
+        self.num_heads = num_heads
+        self.window_size = window_size
+        self.mlp_ratio = mlp_ratio
+        self.qkv_bias = qkv_bias
+        self.hidden_dropout_prob = hidden_dropout_prob
+        self.attention_probs_dropout_prob = attention_probs_dropout_prob
+        self.drop_path_rate = drop_path_rate
+        self.hidden_act = hidden_act
+        self.use_absolute_embeddings = use_absolute_embeddings
+        self.layer_norm_eps = layer_norm_eps
+        self.initializer_range = initializer_range
+        # we set the hidden_size attribute in order to make Swin work with VisionEncoderDecoderModel
+        # this indicates the channel dimension after the last stage of the model
+        self.hidden_size = int(embed_dim * 2 ** (len(depths) - 1))

+ 174 - 0
mineru/model/mfr/unimernet/unimernet_hf/unimer_swin/image_processing_unimer_swin.py

@@ -0,0 +1,174 @@
+from PIL import Image, ImageOps
+from transformers.image_processing_utils import BaseImageProcessor
+import numpy as np
+import cv2
+import albumentations as alb
+from albumentations.pytorch import ToTensorV2
+from torchvision.transforms.functional import resize
+
+
+# TODO: dereference cv2 if possible
+class UnimerSwinImageProcessor(BaseImageProcessor):
+    def __init__(
+            self,
+            image_size = (192, 672),
+        ):
+        self.input_size = [int(_) for _ in image_size]
+        assert len(self.input_size) == 2
+    
+        self.transform = alb.Compose(
+            [
+                alb.ToGray(),
+                alb.Normalize((0.7931, 0.7931, 0.7931), (0.1738, 0.1738, 0.1738)),
+                # alb.Sharpen()
+                ToTensorV2(),
+            ]
+        )
+
+    def __call__(self, item):
+        image = self.prepare_input(item)
+        return self.transform(image=image)['image'][:1]
+
+    @staticmethod
+    def crop_margin(img: Image.Image) -> Image.Image:
+        data = np.array(img.convert("L"))
+        data = data.astype(np.uint8)
+        max_val = data.max()
+        min_val = data.min()
+        if max_val == min_val:
+            return img
+        data = (data - min_val) / (max_val - min_val) * 255
+        gray = 255 * (data < 200).astype(np.uint8)
+
+        coords = cv2.findNonZero(gray)  # Find all non-zero points (text)
+        a, b, w, h = cv2.boundingRect(coords)  # Find minimum spanning bounding box
+        return img.crop((a, b, w + a, h + b))
+
+    @staticmethod
+    def crop_margin_numpy(img: np.ndarray) -> np.ndarray:
+        """Crop margins of image using NumPy operations"""
+        # Convert to grayscale if it's a color image
+        if len(img.shape) == 3 and img.shape[2] == 3:
+            gray = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)
+        else:
+            gray = img.copy()
+
+        # Normalize and threshold
+        if gray.max() == gray.min():
+            return img
+
+        normalized = (((gray - gray.min()) / (gray.max() - gray.min())) * 255).astype(np.uint8)
+        binary = 255 * (normalized < 200).astype(np.uint8)
+
+        # Find bounding box
+        coords = cv2.findNonZero(binary)  # Find all non-zero points (text)
+        x, y, w, h = cv2.boundingRect(coords)  # Find minimum spanning bounding box
+
+        # Return cropped image
+        return img[y:y + h, x:x + w]
+
+    def prepare_input(self, img, random_padding: bool = False):
+        """
+        Convert PIL Image or numpy array to properly sized and padded image after:
+            - crop margins
+            - resize while maintaining aspect ratio
+            - pad to target size
+        """
+        if img is None:
+            return None
+
+        # Handle numpy array
+        elif isinstance(img, np.ndarray):
+            try:
+                img = self.crop_margin_numpy(img)
+            except Exception:
+                # might throw an error for broken files
+                return None
+
+            if img.shape[0] == 0 or img.shape[1] == 0:
+                return None
+
+            # Get current dimensions
+            h, w = img.shape[:2]
+            target_h, target_w = self.input_size
+
+            # Calculate scale to preserve aspect ratio (equivalent to resize + thumbnail)
+            scale = min(target_h / h, target_w / w)
+
+            # Calculate new dimensions
+            new_h, new_w = int(h * scale), int(w * scale)
+
+            # Resize the image while preserving aspect ratio
+            resized_img = cv2.resize(img, (new_w, new_h))
+
+            # Calculate padding values using the existing method
+            delta_width = target_w - new_w
+            delta_height = target_h - new_h
+
+            pad_width, pad_height = self._get_padding_values(new_w, new_h, random_padding)
+
+            # Apply padding (convert PIL padding format to OpenCV format)
+            padding_color = [0, 0, 0] if len(img.shape) == 3 else [0]
+
+            padded_img = cv2.copyMakeBorder(
+                resized_img,
+                pad_height,  # top
+                delta_height - pad_height,  # bottom
+                pad_width,  # left
+                delta_width - pad_width,  # right
+                cv2.BORDER_CONSTANT,
+                value=padding_color
+            )
+
+            return padded_img
+
+        # Handle PIL Image
+        elif isinstance(img, Image.Image):
+            try:
+                img = self.crop_margin(img.convert("RGB"))
+            except OSError:
+                # might throw an error for broken files
+                return None
+
+            if img.height == 0 or img.width == 0:
+                return None
+
+            # Resize while preserving aspect ratio
+            img = resize(img, min(self.input_size))
+            img.thumbnail((self.input_size[1], self.input_size[0]))
+            new_w, new_h = img.width, img.height
+
+            # Calculate and apply padding
+            padding = self._calculate_padding(new_w, new_h, random_padding)
+            return np.array(ImageOps.expand(img, padding))
+
+        else:
+            return None
+
+    def _calculate_padding(self, new_w, new_h, random_padding):
+        """Calculate padding values for PIL images"""
+        delta_width = self.input_size[1] - new_w
+        delta_height = self.input_size[0] - new_h
+
+        pad_width, pad_height = self._get_padding_values(new_w, new_h, random_padding)
+
+        return (
+            pad_width,
+            pad_height,
+            delta_width - pad_width,
+            delta_height - pad_height,
+        )
+
+    def _get_padding_values(self, new_w, new_h, random_padding):
+        """Get padding values based on image dimensions and padding strategy"""
+        delta_width = self.input_size[1] - new_w
+        delta_height = self.input_size[0] - new_h
+
+        if random_padding:
+            pad_width = np.random.randint(low=0, high=delta_width + 1)
+            pad_height = np.random.randint(low=0, high=delta_height + 1)
+        else:
+            pad_width = delta_width // 2
+            pad_height = delta_height // 2
+
+        return pad_width, pad_height

+ 1084 - 0
mineru/model/mfr/unimernet/unimernet_hf/unimer_swin/modeling_unimer_swin.py

@@ -0,0 +1,1084 @@
+# coding=utf-8
+# Copyright 2022 The HuggingFace Inc. team. All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+"""PyTorch UnimerSwin Transformer model.
+
+This implementation is identical to a regular Swin Transformer, without final layer norm on top of the final hidden
+states."""
+
+import collections.abc
+import math
+from dataclasses import dataclass
+from typing import Optional, Tuple, Union
+
+import torch
+import torch.utils.checkpoint
+from torch import nn
+
+from transformers.activations import ACT2FN
+from transformers.modeling_utils import PreTrainedModel
+from transformers.pytorch_utils import find_pruneable_heads_and_indices, meshgrid, prune_linear_layer
+from transformers.utils import (
+    ModelOutput,
+    add_code_sample_docstrings,
+    add_start_docstrings,
+    add_start_docstrings_to_model_forward,
+    logging,
+    torch_int,
+)
+from .configuration_unimer_swin import UnimerSwinConfig
+
+
+logger = logging.get_logger(__name__)
+
+# General docstring
+_CONFIG_FOR_DOC = "UnimerSwinConfig"
+
+# Base docstring
+_CHECKPOINT_FOR_DOC = "https://huggingface.co/naver-clova-ix/donut-base"
+_EXPECTED_OUTPUT_SHAPE = [1, 49, 768]
+
+
+@dataclass
+# Copied from transformers.models.swin.modeling_swin.SwinEncoderOutput with Swin->UnimerSwin
+class UnimerSwinEncoderOutput(ModelOutput):
+    """
+    UnimerSwin encoder's outputs, with potential hidden states and attentions.
+
+    Args:
+        last_hidden_state (`torch.FloatTensor` of shape `(batch_size, sequence_length, hidden_size)`):
+            Sequence of hidden-states at the output of the last layer of the model.
+        hidden_states (`tuple(torch.FloatTensor)`, *optional*, returned when `output_hidden_states=True` is passed or when `config.output_hidden_states=True`):
+            Tuple of `torch.FloatTensor` (one for the output of the embeddings + one for the output of each stage) of
+            shape `(batch_size, sequence_length, hidden_size)`.
+
+            Hidden-states of the model at the output of each layer plus the initial embedding outputs.
+        attentions (`tuple(torch.FloatTensor)`, *optional*, returned when `output_attentions=True` is passed or when `config.output_attentions=True`):
+            Tuple of `torch.FloatTensor` (one for each stage) of shape `(batch_size, num_heads, sequence_length,
+            sequence_length)`.
+
+            Attentions weights after the attention softmax, used to compute the weighted average in the self-attention
+            heads.
+        reshaped_hidden_states (`tuple(torch.FloatTensor)`, *optional*, returned when `output_hidden_states=True` is passed or when `config.output_hidden_states=True`):
+            Tuple of `torch.FloatTensor` (one for the output of the embeddings + one for the output of each stage) of
+            shape `(batch_size, hidden_size, height, width)`.
+
+            Hidden-states of the model at the output of each layer plus the initial embedding outputs reshaped to
+            include the spatial dimensions.
+    """
+
+    last_hidden_state: torch.FloatTensor = None
+    hidden_states: Optional[Tuple[torch.FloatTensor, ...]] = None
+    attentions: Optional[Tuple[torch.FloatTensor, ...]] = None
+    reshaped_hidden_states: Optional[Tuple[torch.FloatTensor, ...]] = None
+
+
+@dataclass
+# Copied from transformers.models.swin.modeling_swin.SwinModelOutput with Swin->UnimerSwin
+class UnimerSwinModelOutput(ModelOutput):
+    """
+    UnimerSwin model's outputs that also contains a pooling of the last hidden states.
+
+    Args:
+        last_hidden_state (`torch.FloatTensor` of shape `(batch_size, sequence_length, hidden_size)`):
+            Sequence of hidden-states at the output of the last layer of the model.
+        pooler_output (`torch.FloatTensor` of shape `(batch_size, hidden_size)`, *optional*, returned when `add_pooling_layer=True` is passed):
+            Average pooling of the last layer hidden-state.
+        hidden_states (`tuple(torch.FloatTensor)`, *optional*, returned when `output_hidden_states=True` is passed or when `config.output_hidden_states=True`):
+            Tuple of `torch.FloatTensor` (one for the output of the embeddings + one for the output of each stage) of
+            shape `(batch_size, sequence_length, hidden_size)`.
+
+            Hidden-states of the model at the output of each layer plus the initial embedding outputs.
+        attentions (`tuple(torch.FloatTensor)`, *optional*, returned when `output_attentions=True` is passed or when `config.output_attentions=True`):
+            Tuple of `torch.FloatTensor` (one for each stage) of shape `(batch_size, num_heads, sequence_length,
+            sequence_length)`.
+
+            Attentions weights after the attention softmax, used to compute the weighted average in the self-attention
+            heads.
+        reshaped_hidden_states (`tuple(torch.FloatTensor)`, *optional*, returned when `output_hidden_states=True` is passed or when `config.output_hidden_states=True`):
+            Tuple of `torch.FloatTensor` (one for the output of the embeddings + one for the output of each stage) of
+            shape `(batch_size, hidden_size, height, width)`.
+
+            Hidden-states of the model at the output of each layer plus the initial embedding outputs reshaped to
+            include the spatial dimensions.
+    """
+
+    last_hidden_state: torch.FloatTensor = None
+    pooler_output: Optional[torch.FloatTensor] = None
+    hidden_states: Optional[Tuple[torch.FloatTensor, ...]] = None
+    attentions: Optional[Tuple[torch.FloatTensor, ...]] = None
+    reshaped_hidden_states: Optional[Tuple[torch.FloatTensor, ...]] = None
+
+
+# Copied from transformers.models.swin.modeling_swin.window_partition
+def window_partition(input_feature, window_size):
+    """
+    Partitions the given input into windows.
+    """
+    batch_size, height, width, num_channels = input_feature.shape
+    input_feature = input_feature.view(
+        batch_size, height // window_size, window_size, width // window_size, window_size, num_channels
+    )
+    windows = input_feature.permute(0, 1, 3, 2, 4, 5).contiguous().view(-1, window_size, window_size, num_channels)
+    return windows
+
+
+# Copied from transformers.models.swin.modeling_swin.window_reverse
+def window_reverse(windows, window_size, height, width):
+    """
+    Merges windows to produce higher resolution features.
+    """
+    num_channels = windows.shape[-1]
+    windows = windows.view(-1, height // window_size, width // window_size, window_size, window_size, num_channels)
+    windows = windows.permute(0, 1, 3, 2, 4, 5).contiguous().view(-1, height, width, num_channels)
+    return windows
+
+
+# Copied from transformers.models.swin.modeling_swin.SwinEmbeddings with Swin->UnimerSwin
+class UnimerSwinEmbeddings(nn.Module):
+    """
+    Construct the patch and position embeddings. Optionally, also the mask token.
+    """
+
+    def __init__(self, config, use_mask_token=False):
+        super().__init__()
+
+        self.patch_embeddings = UnimerSwinPatchEmbeddings(config)
+        num_patches = self.patch_embeddings.num_patches
+        self.patch_grid = self.patch_embeddings.grid_size
+        self.mask_token = nn.Parameter(torch.zeros(1, 1, config.embed_dim)) if use_mask_token else None
+
+        if config.use_absolute_embeddings:
+            self.position_embeddings = nn.Parameter(torch.zeros(1, num_patches + 1, config.embed_dim))
+        else:
+            self.position_embeddings = None
+
+        ### code added. ###
+        if config.use_2d_embeddings:
+            self.row_embeddings = nn.Parameter(torch.zeros(1, self.patch_grid[0] + 1, config.embed_dim))
+            self.column_embeddings = nn.Parameter(torch.zeros(1, self.patch_grid[1] + 1, config.embed_dim))
+        else:
+            self.row_embeddings = None
+            self.column_embeddings = None
+        ######
+
+        self.norm = nn.LayerNorm(config.embed_dim)
+        self.dropout = nn.Dropout(config.hidden_dropout_prob)
+
+    def interpolate_pos_encoding(self, embeddings: torch.Tensor, height: int, width: int) -> torch.Tensor:
+        """
+        This method allows to interpolate the pre-trained position encodings, to be able to use the model on higher
+        resolution images.
+
+        Source:
+        https://github.com/facebookresearch/dino/blob/de9ee3df6cf39fac952ab558447af1fa1365362a/vision_transformer.py#L174
+        """
+
+        num_patches = embeddings.shape[1] - 1
+        num_positions = self.position_embeddings.shape[1] - 1
+        if num_patches == num_positions and height == width:
+            return self.position_embeddings
+        class_pos_embed = self.position_embeddings[:, 0]
+        patch_pos_embed = self.position_embeddings[:, 1:]
+        dim = embeddings.shape[-1]
+        h0 = height // self.config.patch_size
+        w0 = width // self.config.patch_size
+        # we add a small number to avoid floating point error in the interpolation
+        # see discussion at https://github.com/facebookresearch/dino/issues/8
+        h0, w0 = h0 + 0.1, w0 + 0.1
+        patch_pos_embed = patch_pos_embed.reshape(1, int(math.sqrt(num_positions)), int(math.sqrt(num_positions)), dim)
+        patch_pos_embed = patch_pos_embed.permute(0, 3, 1, 2)
+        patch_pos_embed = nn.functional.interpolate(
+            patch_pos_embed,
+            scale_factor=(h0 / math.sqrt(num_positions), w0 / math.sqrt(num_positions)),
+            mode="bicubic",
+            align_corners=False,
+        )
+        patch_pos_embed = patch_pos_embed.permute(0, 2, 3, 1).view(1, -1, dim)
+        return torch.cat((class_pos_embed.unsqueeze(0), patch_pos_embed), dim=1)
+
+    def forward(
+        self,
+        pixel_values: Optional[torch.FloatTensor],
+        bool_masked_pos: Optional[torch.BoolTensor] = None,
+        interpolate_pos_encoding: bool = False,
+    ) -> Tuple[torch.Tensor]:
+        _, num_channels, height, width = pixel_values.shape
+        embeddings, output_dimensions = self.patch_embeddings(pixel_values)
+        embeddings = self.norm(embeddings)
+        batch_size, seq_len, _ = embeddings.size()
+
+        if bool_masked_pos is not None:
+            mask_tokens = self.mask_token.expand(batch_size, seq_len, -1)
+            # replace the masked visual tokens by mask_tokens
+            mask = bool_masked_pos.unsqueeze(-1).type_as(mask_tokens)
+            embeddings = embeddings * (1.0 - mask) + mask_tokens * mask
+
+        if self.position_embeddings is not None:
+            # if interpolate_pos_encoding:
+            #     embeddings = embeddings + self.interpolate_pos_encoding(embeddings, height, width)
+            # else:
+            #     embeddings = embeddings + self.position_embeddings
+            embeddings = embeddings + self.position_embeddings[:, :seq_len, :] # code edited.
+
+        ### code added. ###
+        if self.row_embeddings is not None and self.column_embeddings is not None:
+            # Repeat the x position embeddings across the y axis like 0, 1, 2, 3, 0, 1, 2, 3, ...
+            row_embeddings = self.row_embeddings[:, :output_dimensions[0], :].repeat_interleave(output_dimensions[1], dim=1)
+            column_embeddings = self.column_embeddings[:, :output_dimensions[1], :].repeat(1, output_dimensions[0], 1)
+            embeddings = embeddings + row_embeddings + column_embeddings
+        ######
+
+        embeddings = self.dropout(embeddings)
+
+        return embeddings, output_dimensions
+
+class StemLayer(nn.Module):
+    r""" Stem layer of InternImage
+    Args:
+        in_chans (int): number of input channels
+        out_chans (int): number of output channels
+        act_layer (str): activation layer
+        norm_layer (str): normalization layer
+    """
+
+    def __init__(self, in_chans=3, out_chans=96, act_layer=nn.GELU, norm_layer='BN'):
+        super().__init__()
+        self.conv1 = nn.Conv2d(in_chans, out_chans // 2, kernel_size=3, stride=2, padding=1)
+        self.norm1 = self.build_norm_layer(out_chans // 2, norm_layer)
+        self.act = act_layer()
+        self.conv2 = nn.Conv2d(out_chans // 2, out_chans, kernel_size=3, stride=2, padding=1)
+
+    def build_norm_layer(self, dim, norm_layer):
+        layers = []
+        if norm_layer == 'BN':
+            layers.append(nn.BatchNorm2d(dim))
+        else:
+            raise NotImplementedError(f'build_norm_layer does not support {norm_layer}')
+        return nn.Sequential(*layers)
+
+    def forward(self, x):
+        x = self.conv1(x)
+        x = self.norm1(x)
+        x = self.act(x)
+        x = self.conv2(x)
+        return x
+
+# Copied from transformers.models.swin.modeling_swin.SwinPatchEmbeddings with Swin->UnimerSwin
+class UnimerSwinPatchEmbeddings(nn.Module):
+    """
+    This class turns `pixel_values` of shape `(batch_size, num_channels, height, width)` into the initial
+    `hidden_states` (patch embeddings) of shape `(batch_size, seq_length, hidden_size)` to be consumed by a
+    Transformer.
+    """
+
+    def __init__(self, config):
+        super().__init__()
+        image_size, patch_size = config.image_size, config.patch_size
+        num_channels, hidden_size = config.num_channels, config.embed_dim
+        image_size = image_size if isinstance(image_size, collections.abc.Iterable) else (image_size, image_size)
+        patch_size = patch_size if isinstance(patch_size, collections.abc.Iterable) else (patch_size, patch_size)
+        num_patches = (image_size[1] // patch_size[1]) * (image_size[0] // patch_size[0])
+        self.image_size = image_size
+        self.patch_size = patch_size
+        self.num_channels = num_channels
+        self.num_patches = num_patches
+        self.grid_size = (image_size[0] // patch_size[0], image_size[1] // patch_size[1])
+
+        ### code edited. ###
+        # self.projection = nn.Conv2d(num_channels, hidden_size, kernel_size=patch_size, stride=patch_size)
+        self.projection = StemLayer(in_chans=num_channels, out_chans=hidden_size)
+        ###
+
+    def maybe_pad(self, pixel_values, height, width):
+        if width % self.patch_size[1] != 0:
+            pad_values = (0, self.patch_size[1] - width % self.patch_size[1])
+            pixel_values = nn.functional.pad(pixel_values, pad_values)
+        if height % self.patch_size[0] != 0:
+            pad_values = (0, 0, 0, self.patch_size[0] - height % self.patch_size[0])
+            pixel_values = nn.functional.pad(pixel_values, pad_values)
+        return pixel_values
+
+    def forward(self, pixel_values: Optional[torch.FloatTensor]) -> Tuple[torch.Tensor, Tuple[int]]:
+        _, num_channels, height, width = pixel_values.shape
+        # pad the input to be divisible by self.patch_size, if needed
+        pixel_values = self.maybe_pad(pixel_values, height, width)
+        embeddings = self.projection(pixel_values)
+        _, _, height, width = embeddings.shape
+        output_dimensions = (height, width)
+        embeddings = embeddings.flatten(2).transpose(1, 2)
+
+        return embeddings, output_dimensions
+
+
+# Copied from transformers.models.swin.modeling_swin.SwinPatchMerging
+class UnimerSwinPatchMerging(nn.Module):
+    """
+    Patch Merging Layer.
+
+    Args:
+        input_resolution (`Tuple[int]`):
+            Resolution of input feature.
+        dim (`int`):
+            Number of input channels.
+        norm_layer (`nn.Module`, *optional*, defaults to `nn.LayerNorm`):
+            Normalization layer class.
+    """
+
+    def __init__(self, input_resolution: Tuple[int], dim: int, norm_layer: nn.Module = nn.LayerNorm) -> None:
+        super().__init__()
+        self.input_resolution = input_resolution
+        self.dim = dim
+        self.reduction = nn.Linear(4 * dim, 2 * dim, bias=False)
+        self.norm = norm_layer(4 * dim)
+
+    def maybe_pad(self, input_feature, height, width):
+        should_pad = (height % 2 == 1) or (width % 2 == 1)
+        if should_pad:
+            pad_values = (0, 0, 0, width % 2, 0, height % 2)
+            input_feature = nn.functional.pad(input_feature, pad_values)
+
+        return input_feature
+
+    def forward(self, input_feature: torch.Tensor, input_dimensions: Tuple[int, int]) -> torch.Tensor:
+        height, width = input_dimensions
+        # `dim` is height * width
+        batch_size, dim, num_channels = input_feature.shape
+
+        input_feature = input_feature.view(batch_size, height, width, num_channels)
+        # pad input to be disible by width and height, if needed
+        input_feature = self.maybe_pad(input_feature, height, width)
+        # [batch_size, height/2, width/2, num_channels]
+        input_feature_0 = input_feature[:, 0::2, 0::2, :]
+        # [batch_size, height/2, width/2, num_channels]
+        input_feature_1 = input_feature[:, 1::2, 0::2, :]
+        # [batch_size, height/2, width/2, num_channels]
+        input_feature_2 = input_feature[:, 0::2, 1::2, :]
+        # [batch_size, height/2, width/2, num_channels]
+        input_feature_3 = input_feature[:, 1::2, 1::2, :]
+        # batch_size height/2 width/2 4*num_channels
+        input_feature = torch.cat([input_feature_0, input_feature_1, input_feature_2, input_feature_3], -1)
+        input_feature = input_feature.view(batch_size, -1, 4 * num_channels)  # batch_size height/2*width/2 4*C
+
+        input_feature = self.norm(input_feature)
+        input_feature = self.reduction(input_feature)
+
+        return input_feature
+
+
+# Copied from transformers.models.beit.modeling_beit.drop_path
+def drop_path(input: torch.Tensor, drop_prob: float = 0.0, training: bool = False) -> torch.Tensor:
+    """
+    Drop paths (Stochastic Depth) per sample (when applied in main path of residual blocks).
+
+    Comment by Ross Wightman: This is the same as the DropConnect impl I created for EfficientNet, etc networks,
+    however, the original name is misleading as 'Drop Connect' is a different form of dropout in a separate paper...
+    See discussion: https://github.com/tensorflow/tpu/issues/494#issuecomment-532968956 ... I've opted for changing the
+    layer and argument names to 'drop path' rather than mix DropConnect as a layer name and use 'survival rate' as the
+    argument.
+    """
+    if drop_prob == 0.0 or not training:
+        return input
+    keep_prob = 1 - drop_prob
+    shape = (input.shape[0],) + (1,) * (input.ndim - 1)  # work with diff dim tensors, not just 2D ConvNets
+    random_tensor = keep_prob + torch.rand(shape, dtype=input.dtype, device=input.device)
+    random_tensor.floor_()  # binarize
+    output = input.div(keep_prob) * random_tensor
+    return output
+
+
+# Copied from transformers.models.swin.modeling_swin.SwinDropPath
+class UnimerSwinDropPath(nn.Module):
+    """Drop paths (Stochastic Depth) per sample (when applied in main path of residual blocks)."""
+
+    def __init__(self, drop_prob: Optional[float] = None) -> None:
+        super().__init__()
+        self.drop_prob = drop_prob
+
+    def forward(self, hidden_states: torch.Tensor) -> torch.Tensor:
+        return drop_path(hidden_states, self.drop_prob, self.training)
+
+    def extra_repr(self) -> str:
+        return "p={}".format(self.drop_prob)
+
+
+# Copied from transformers.models.swin.modeling_swin.SwinSelfAttention with Swin->UnimerSwin
+class UnimerSwinSelfAttention(nn.Module):
+    def __init__(self, config, dim, num_heads, window_size):
+        super().__init__()
+        if dim % num_heads != 0:
+            raise ValueError(
+                f"The hidden size ({dim}) is not a multiple of the number of attention heads ({num_heads})"
+            )
+
+        self.num_attention_heads = num_heads
+        self.attention_head_size = int(dim / num_heads)
+        self.all_head_size = self.num_attention_heads * self.attention_head_size
+        self.window_size = (
+            window_size if isinstance(window_size, collections.abc.Iterable) else (window_size, window_size)
+        )
+
+        self.relative_position_bias_table = nn.Parameter(
+            torch.zeros((2 * self.window_size[0] - 1) * (2 * self.window_size[1] - 1), num_heads)
+        )
+
+        # get pair-wise relative position index for each token inside the window
+        coords_h = torch.arange(self.window_size[0])
+        coords_w = torch.arange(self.window_size[1])
+        coords = torch.stack(meshgrid([coords_h, coords_w], indexing="ij"))
+        coords_flatten = torch.flatten(coords, 1)
+        relative_coords = coords_flatten[:, :, None] - coords_flatten[:, None, :]
+        relative_coords = relative_coords.permute(1, 2, 0).contiguous()
+        relative_coords[:, :, 0] += self.window_size[0] - 1
+        relative_coords[:, :, 1] += self.window_size[1] - 1
+        relative_coords[:, :, 0] *= 2 * self.window_size[1] - 1
+        relative_position_index = relative_coords.sum(-1)
+        self.register_buffer("relative_position_index", relative_position_index)
+
+        self.query = nn.Linear(self.all_head_size, self.all_head_size, bias=config.qkv_bias)
+        self.key = nn.Linear(self.all_head_size, self.all_head_size, bias=config.qkv_bias)
+        self.value = nn.Linear(self.all_head_size, self.all_head_size, bias=config.qkv_bias)
+
+        self.dropout = nn.Dropout(config.attention_probs_dropout_prob)
+
+    def transpose_for_scores(self, x):
+        new_x_shape = x.size()[:-1] + (self.num_attention_heads, self.attention_head_size)
+        x = x.view(new_x_shape)
+        return x.permute(0, 2, 1, 3)
+
+    def forward(
+        self,
+        hidden_states: torch.Tensor,
+        attention_mask: Optional[torch.FloatTensor] = None,
+        head_mask: Optional[torch.FloatTensor] = None,
+        output_attentions: Optional[bool] = False,
+    ) -> Tuple[torch.Tensor]:
+        batch_size, dim, num_channels = hidden_states.shape
+        mixed_query_layer = self.query(hidden_states)
+
+        key_layer = self.transpose_for_scores(self.key(hidden_states))
+        value_layer = self.transpose_for_scores(self.value(hidden_states))
+        query_layer = self.transpose_for_scores(mixed_query_layer)
+
+        # Take the dot product between "query" and "key" to get the raw attention scores.
+        attention_scores = torch.matmul(query_layer, key_layer.transpose(-1, -2))
+
+        attention_scores = attention_scores / math.sqrt(self.attention_head_size)
+
+        relative_position_bias = self.relative_position_bias_table[self.relative_position_index.view(-1)]
+        relative_position_bias = relative_position_bias.view(
+            self.window_size[0] * self.window_size[1], self.window_size[0] * self.window_size[1], -1
+        )
+
+        relative_position_bias = relative_position_bias.permute(2, 0, 1).contiguous()
+        attention_scores = attention_scores + relative_position_bias.unsqueeze(0)
+
+        if attention_mask is not None:
+            # Apply the attention mask is (precomputed for all layers in UnimerSwinModel forward() function)
+            mask_shape = attention_mask.shape[0]
+            attention_scores = attention_scores.view(
+                batch_size // mask_shape, mask_shape, self.num_attention_heads, dim, dim
+            )
+            attention_scores = attention_scores + attention_mask.unsqueeze(1).unsqueeze(0)
+            attention_scores = attention_scores.view(-1, self.num_attention_heads, dim, dim)
+
+        # Normalize the attention scores to probabilities.
+        attention_probs = nn.functional.softmax(attention_scores, dim=-1)
+
+        # This is actually dropping out entire tokens to attend to, which might
+        # seem a bit unusual, but is taken from the original Transformer paper.
+        attention_probs = self.dropout(attention_probs)
+
+        # Mask heads if we want to
+        if head_mask is not None:
+            attention_probs = attention_probs * head_mask
+
+        context_layer = torch.matmul(attention_probs, value_layer)
+        context_layer = context_layer.permute(0, 2, 1, 3).contiguous()
+        new_context_layer_shape = context_layer.size()[:-2] + (self.all_head_size,)
+        context_layer = context_layer.view(new_context_layer_shape)
+
+        outputs = (context_layer, attention_probs) if output_attentions else (context_layer,)
+
+        return outputs
+
+
+# Copied from transformers.models.swin.modeling_swin.SwinSelfOutput
+class UnimerSwinSelfOutput(nn.Module):
+    def __init__(self, config, dim):
+        super().__init__()
+        self.dense = nn.Linear(dim, dim)
+        self.dropout = nn.Dropout(config.attention_probs_dropout_prob)
+
+    def forward(self, hidden_states: torch.Tensor, input_tensor: torch.Tensor) -> torch.Tensor:
+        hidden_states = self.dense(hidden_states)
+        hidden_states = self.dropout(hidden_states)
+
+        return hidden_states
+
+
+# Copied from transformers.models.swin.modeling_swin.SwinAttention with Swin->UnimerSwin
+class UnimerSwinAttention(nn.Module):
+    def __init__(self, config, dim, num_heads, window_size):
+        super().__init__()
+        self.self = UnimerSwinSelfAttention(config, dim, num_heads, window_size)
+        self.output = UnimerSwinSelfOutput(config, dim)
+        self.pruned_heads = set()
+
+    def prune_heads(self, heads):
+        if len(heads) == 0:
+            return
+        heads, index = find_pruneable_heads_and_indices(
+            heads, self.self.num_attention_heads, self.self.attention_head_size, self.pruned_heads
+        )
+
+        # Prune linear layers
+        self.self.query = prune_linear_layer(self.self.query, index)
+        self.self.key = prune_linear_layer(self.self.key, index)
+        self.self.value = prune_linear_layer(self.self.value, index)
+        self.output.dense = prune_linear_layer(self.output.dense, index, dim=1)
+
+        # Update hyper params and store pruned heads
+        self.self.num_attention_heads = self.self.num_attention_heads - len(heads)
+        self.self.all_head_size = self.self.attention_head_size * self.self.num_attention_heads
+        self.pruned_heads = self.pruned_heads.union(heads)
+
+    def forward(
+        self,
+        hidden_states: torch.Tensor,
+        attention_mask: Optional[torch.FloatTensor] = None,
+        head_mask: Optional[torch.FloatTensor] = None,
+        output_attentions: Optional[bool] = False,
+    ) -> Tuple[torch.Tensor]:
+        self_outputs = self.self(hidden_states, attention_mask, head_mask, output_attentions)
+        attention_output = self.output(self_outputs[0], hidden_states)
+        outputs = (attention_output,) + self_outputs[1:]  # add attentions if we output them
+        return outputs
+
+
+# Copied from transformers.models.swin.modeling_swin.SwinIntermediate
+class UnimerSwinIntermediate(nn.Module):
+    def __init__(self, config, dim):
+        super().__init__()
+        self.dense = nn.Linear(dim, int(config.mlp_ratio * dim))
+        if isinstance(config.hidden_act, str):
+            self.intermediate_act_fn = ACT2FN[config.hidden_act]
+        else:
+            self.intermediate_act_fn = config.hidden_act
+
+    def forward(self, hidden_states: torch.Tensor) -> torch.Tensor:
+        hidden_states = self.dense(hidden_states)
+        hidden_states = self.intermediate_act_fn(hidden_states)
+        return hidden_states
+
+
+# Copied from transformers.models.swin.modeling_swin.SwinOutput
+class UnimerSwinOutput(nn.Module):
+    def __init__(self, config, dim):
+        super().__init__()
+        self.dense = nn.Linear(int(config.mlp_ratio * dim), dim)
+        self.dropout = nn.Dropout(config.hidden_dropout_prob)
+
+    def forward(self, hidden_states: torch.Tensor) -> torch.Tensor:
+        hidden_states = self.dense(hidden_states)
+        hidden_states = self.dropout(hidden_states)
+        return hidden_states
+
+
+class ConvEnhance(nn.Module):
+    """Depth-wise convolution to get the positional information.
+    """
+    def __init__(self, config, dim, k=3):
+        super(ConvEnhance, self).__init__()
+        self.proj = nn.Conv2d(dim,
+                              dim,
+                              (k,k),
+                              (1,1),
+                              (k // 2,k // 2),
+                              groups=dim)
+        self.act_fn = ACT2FN[config.hidden_act]
+
+    def forward(self, x, size: Tuple[int, int]):
+        B, N, C = x.shape
+        H, W = size
+        assert N == H * W
+
+        feat = x.transpose(1, 2).view(B, C, H, W)
+        feat = self.proj(feat)
+        feat = self.act_fn(feat)
+        feat = feat.flatten(2).transpose(1, 2)
+
+        x = x + feat
+        return x
+
+
+# Copied from transformers.models.swin.modeling_swin.SwinLayer with Swin->UnimerSwin
+class UnimerSwinLayer(nn.Module):
+    def __init__(self, config, dim, input_resolution, num_heads, shift_size=0):
+        super().__init__()
+        self.chunk_size_feed_forward = config.chunk_size_feed_forward
+        self.shift_size = shift_size
+        self.window_size = config.window_size
+        self.input_resolution = input_resolution
+        self.layernorm_before = nn.LayerNorm(dim, eps=config.layer_norm_eps)
+
+        self.ce = nn.ModuleList([ConvEnhance(config, dim=dim, k=3),
+                                  ConvEnhance(config, dim=dim, k=3)])
+
+        self.attention = UnimerSwinAttention(config, dim, num_heads, window_size=self.window_size)
+        self.drop_path = UnimerSwinDropPath(config.drop_path_rate) if config.drop_path_rate > 0.0 else nn.Identity()
+        self.layernorm_after = nn.LayerNorm(dim, eps=config.layer_norm_eps)
+        self.intermediate = UnimerSwinIntermediate(config, dim)
+        self.output = UnimerSwinOutput(config, dim)
+
+    def set_shift_and_window_size(self, input_resolution):
+        if min(input_resolution) <= self.window_size:
+            # if window size is larger than input resolution, we don't partition windows
+            self.shift_size = torch_int(0)
+            self.window_size = (
+                torch.min(torch.tensor(input_resolution)) if torch.jit.is_tracing() else min(input_resolution)
+            )
+
+    def get_attn_mask(self, height, width, dtype, device):
+        if self.shift_size > 0:
+            # calculate attention mask for SW-MSA
+            img_mask = torch.zeros((1, height, width, 1), dtype=dtype, device=device)
+            height_slices = (
+                slice(0, -self.window_size),
+                slice(-self.window_size, -self.shift_size),
+                slice(-self.shift_size, None),
+            )
+            width_slices = (
+                slice(0, -self.window_size),
+                slice(-self.window_size, -self.shift_size),
+                slice(-self.shift_size, None),
+            )
+            count = 0
+            for height_slice in height_slices:
+                for width_slice in width_slices:
+                    img_mask[:, height_slice, width_slice, :] = count
+                    count += 1
+
+            mask_windows = window_partition(img_mask, self.window_size)
+            mask_windows = mask_windows.view(-1, self.window_size * self.window_size)
+            attn_mask = mask_windows.unsqueeze(1) - mask_windows.unsqueeze(2)
+            attn_mask = attn_mask.masked_fill(attn_mask != 0, float(-100.0)).masked_fill(attn_mask == 0, float(0.0))
+        else:
+            attn_mask = None
+        return attn_mask
+
+    def maybe_pad(self, hidden_states, height, width):
+        pad_right = (self.window_size - width % self.window_size) % self.window_size
+        pad_bottom = (self.window_size - height % self.window_size) % self.window_size
+        pad_values = (0, 0, 0, pad_right, 0, pad_bottom)
+        hidden_states = nn.functional.pad(hidden_states, pad_values)
+        return hidden_states, pad_values
+
+    def forward(
+        self,
+        hidden_states: torch.Tensor,
+        input_dimensions: Tuple[int, int],
+        head_mask: Optional[torch.FloatTensor] = None,
+        output_attentions: Optional[bool] = False,
+        always_partition: Optional[bool] = False,
+    ) -> Tuple[torch.Tensor, torch.Tensor]:
+        if not always_partition:
+            self.set_shift_and_window_size(input_dimensions)
+        else:
+            pass
+        height, width = input_dimensions
+        batch_size, _, channels = hidden_states.size()
+        
+
+
+        hidden_states = self.ce[0](hidden_states, input_dimensions)
+        shortcut = hidden_states
+
+
+        hidden_states = self.layernorm_before(hidden_states)
+        hidden_states = hidden_states.view(batch_size, height, width, channels)
+
+        # pad hidden_states to multiples of window size
+        hidden_states, pad_values = self.maybe_pad(hidden_states, height, width)
+
+        _, height_pad, width_pad, _ = hidden_states.shape
+        # cyclic shift
+        if self.shift_size > 0:
+            shifted_hidden_states = torch.roll(hidden_states, shifts=(-self.shift_size, -self.shift_size), dims=(1, 2))
+        else:
+            shifted_hidden_states = hidden_states
+
+        # partition windows
+        hidden_states_windows = window_partition(shifted_hidden_states, self.window_size)
+        hidden_states_windows = hidden_states_windows.view(-1, self.window_size * self.window_size, channels)
+        attn_mask = self.get_attn_mask(
+            height_pad, width_pad, dtype=hidden_states.dtype, device=hidden_states_windows.device
+        )
+
+        attention_outputs = self.attention(
+            hidden_states_windows, attn_mask, head_mask, output_attentions=output_attentions
+        )
+
+        attention_output = attention_outputs[0]
+
+        attention_windows = attention_output.view(-1, self.window_size, self.window_size, channels)
+        shifted_windows = window_reverse(attention_windows, self.window_size, height_pad, width_pad)
+
+        # reverse cyclic shift
+        if self.shift_size > 0:
+            attention_windows = torch.roll(shifted_windows, shifts=(self.shift_size, self.shift_size), dims=(1, 2))
+        else:
+            attention_windows = shifted_windows
+
+        was_padded = pad_values[3] > 0 or pad_values[5] > 0
+        if was_padded:
+            attention_windows = attention_windows[:, :height, :width, :].contiguous()
+
+        attention_windows = attention_windows.view(batch_size, height * width, channels)
+
+        hidden_states = shortcut + self.drop_path(attention_windows)
+
+
+
+        hidden_states = self.ce[1](hidden_states, input_dimensions)
+        layer_output = self.layernorm_after(hidden_states)
+        layer_output = self.intermediate(layer_output)
+        layer_output = hidden_states + self.output(layer_output)
+
+        layer_outputs = (layer_output, attention_outputs[1]) if output_attentions else (layer_output,)
+        return layer_outputs
+
+
+# Copied from transformers.models.swin.modeling_swin.SwinStage with Swin->UnimerSwin
+class UnimerSwinStage(nn.Module):
+    def __init__(self, config, dim, input_resolution, depth, num_heads, drop_path, downsample):
+        super().__init__()
+        self.config = config
+        self.dim = dim
+        self.blocks = nn.ModuleList(
+            [
+                UnimerSwinLayer(
+                    config=config,
+                    dim=dim,
+                    input_resolution=input_resolution,
+                    num_heads=num_heads,
+                    shift_size=0,
+                )
+                for i in range(depth)
+            ]
+        )
+
+        # patch merging layer
+        if downsample is not None:
+            self.downsample = downsample(input_resolution, dim=dim, norm_layer=nn.LayerNorm)
+        else:
+            self.downsample = None
+
+        self.pointing = False
+
+    def forward(
+        self,
+        hidden_states: torch.Tensor,
+        input_dimensions: Tuple[int, int],
+        head_mask: Optional[torch.FloatTensor] = None,
+        output_attentions: Optional[bool] = False,
+        always_partition: Optional[bool] = False,
+    ) -> Tuple[torch.Tensor]:
+        height, width = input_dimensions
+        for i, layer_module in enumerate(self.blocks):
+            layer_head_mask = head_mask[i] if head_mask is not None else None
+
+            layer_outputs = layer_module(
+                hidden_states, input_dimensions, layer_head_mask, output_attentions, always_partition
+            )
+
+            hidden_states = layer_outputs[0]
+
+        hidden_states_before_downsampling = hidden_states
+        if self.downsample is not None:
+            height_downsampled, width_downsampled = (height + 1) // 2, (width + 1) // 2
+            output_dimensions = (height, width, height_downsampled, width_downsampled)
+            hidden_states = self.downsample(hidden_states_before_downsampling, input_dimensions)
+        else:
+            output_dimensions = (height, width, height, width)
+
+        stage_outputs = (hidden_states, hidden_states_before_downsampling, output_dimensions)
+
+        if output_attentions:
+            stage_outputs += layer_outputs[1:]
+        return stage_outputs
+
+
+# Copied from transformers.models.swin.modeling_swin.SwinEncoder with Swin->UnimerSwin
+class UnimerSwinEncoder(nn.Module):
+    def __init__(self, config, grid_size):
+        super().__init__()
+        self.num_layers = len(config.depths)
+        self.config = config
+        dpr = [x.item() for x in torch.linspace(0, config.drop_path_rate, sum(config.depths))]
+        self.layers = nn.ModuleList(
+            [
+                UnimerSwinStage(
+                    config=config,
+                    dim=int(config.embed_dim * 2**i_layer),
+                    input_resolution=(grid_size[0] // (2**i_layer), grid_size[1] // (2**i_layer)),
+                    depth=config.depths[i_layer],
+                    num_heads=config.num_heads[i_layer],
+                    drop_path=dpr[sum(config.depths[:i_layer]) : sum(config.depths[: i_layer + 1])],
+                    downsample=UnimerSwinPatchMerging if (i_layer < self.num_layers - 1) else None,
+                )
+                for i_layer in range(self.num_layers)
+            ]
+        )
+
+        self.gradient_checkpointing = False
+
+    def forward(
+        self,
+        hidden_states: torch.Tensor,
+        input_dimensions: Tuple[int, int],
+        head_mask: Optional[torch.FloatTensor] = None,
+        output_attentions: Optional[bool] = False,
+        output_hidden_states: Optional[bool] = False,
+        output_hidden_states_before_downsampling: Optional[bool] = False,
+        always_partition: Optional[bool] = False,
+        return_dict: Optional[bool] = True,
+    ) -> Union[Tuple, UnimerSwinEncoderOutput]:
+        all_hidden_states = () if output_hidden_states else None
+        all_reshaped_hidden_states = () if output_hidden_states else None
+        all_self_attentions = () if output_attentions else None
+
+        if output_hidden_states:
+            batch_size, _, hidden_size = hidden_states.shape
+            # rearrange b (h w) c -> b c h w
+            reshaped_hidden_state = hidden_states.view(batch_size, *input_dimensions, hidden_size)
+            reshaped_hidden_state = reshaped_hidden_state.permute(0, 3, 1, 2)
+            all_hidden_states += (hidden_states,)
+            all_reshaped_hidden_states += (reshaped_hidden_state,)
+
+        for i, layer_module in enumerate(self.layers):
+            layer_head_mask = head_mask[i] if head_mask is not None else None
+
+            if self.gradient_checkpointing and self.training:
+                layer_outputs = self._gradient_checkpointing_func(
+                    layer_module.__call__,
+                    hidden_states,
+                    input_dimensions,
+                    layer_head_mask,
+                    output_attentions,
+                    always_partition,
+                )
+            else:
+                layer_outputs = layer_module(
+                    hidden_states, input_dimensions, layer_head_mask, output_attentions, always_partition
+                )
+
+            hidden_states = layer_outputs[0]
+            hidden_states_before_downsampling = layer_outputs[1]
+            output_dimensions = layer_outputs[2]
+
+            input_dimensions = (output_dimensions[-2], output_dimensions[-1])
+
+            if output_hidden_states and output_hidden_states_before_downsampling:
+                batch_size, _, hidden_size = hidden_states_before_downsampling.shape
+                # rearrange b (h w) c -> b c h w
+                # here we use the original (not downsampled) height and width
+                reshaped_hidden_state = hidden_states_before_downsampling.view(
+                    batch_size, *(output_dimensions[0], output_dimensions[1]), hidden_size
+                )
+                reshaped_hidden_state = reshaped_hidden_state.permute(0, 3, 1, 2)
+                all_hidden_states += (hidden_states_before_downsampling,)
+                all_reshaped_hidden_states += (reshaped_hidden_state,)
+            elif output_hidden_states and not output_hidden_states_before_downsampling:
+                batch_size, _, hidden_size = hidden_states.shape
+                # rearrange b (h w) c -> b c h w
+                reshaped_hidden_state = hidden_states.view(batch_size, *input_dimensions, hidden_size)
+                reshaped_hidden_state = reshaped_hidden_state.permute(0, 3, 1, 2)
+                all_hidden_states += (hidden_states,)
+                all_reshaped_hidden_states += (reshaped_hidden_state,)
+
+            if output_attentions:
+                all_self_attentions += layer_outputs[3:]
+
+        if not return_dict:
+            return tuple(v for v in [hidden_states, all_hidden_states, all_self_attentions] if v is not None)
+
+        return UnimerSwinEncoderOutput(
+            last_hidden_state=hidden_states,
+            hidden_states=all_hidden_states,
+            attentions=all_self_attentions,
+            reshaped_hidden_states=all_reshaped_hidden_states,
+        )
+
+
+# Copied from transformers.models.swin.modeling_swin.SwinPreTrainedModel with Swin->UnimerSwin
+class UnimerSwinPreTrainedModel(PreTrainedModel):
+    """
+    An abstract class to handle weights initialization and a simple interface for downloading and loading pretrained
+    models.
+    """
+
+    config_class = UnimerSwinConfig
+    base_model_prefix = "unimer-swin"
+    main_input_name = "pixel_values"
+    supports_gradient_checkpointing = True
+    _no_split_modules = ["UnimerSwinStage"]
+
+    def _init_weights(self, module):
+        """Initialize the weights"""
+        if isinstance(module, (nn.Linear, nn.Conv2d)):
+            # Slightly different from the TF version which uses truncated_normal for initialization
+            # cf https://github.com/pytorch/pytorch/pull/5617
+            module.weight.data.normal_(mean=0.0, std=self.config.initializer_range)
+            if module.bias is not None:
+                module.bias.data.zero_()
+        elif isinstance(module, nn.LayerNorm):
+            module.bias.data.zero_()
+            module.weight.data.fill_(1.0)
+
+
+SWIN_START_DOCSTRING = r"""
+    This model is a PyTorch [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) sub-class. Use
+    it as a regular PyTorch Module and refer to the PyTorch documentation for all matter related to general usage and
+    behavior.
+
+    Parameters:
+        config ([`UnimerSwinConfig`]): Model configuration class with all the parameters of the model.
+            Initializing with a config file does not load the weights associated with the model, only the
+            configuration. Check out the [`~PreTrainedModel.from_pretrained`] method to load the model weights.
+"""
+
+SWIN_INPUTS_DOCSTRING = r"""
+    Args:
+        pixel_values (`torch.FloatTensor` of shape `(batch_size, num_channels, height, width)`):
+            Pixel values. Pixel values can be obtained using [`AutoImageProcessor`]. See
+            [`DonutImageProcessor.__call__`] for details.
+        head_mask (`torch.FloatTensor` of shape `(num_heads,)` or `(num_layers, num_heads)`, *optional*):
+            Mask to nullify selected heads of the self-attention modules. Mask values selected in `[0, 1]`:
+
+            - 1 indicates the head is **not masked**,
+            - 0 indicates the head is **masked**.
+
+        output_attentions (`bool`, *optional*):
+            Whether or not to return the attentions tensors of all attention layers. See `attentions` under returned
+            tensors for more detail.
+        output_hidden_states (`bool`, *optional*):
+            Whether or not to return the hidden states of all layers. See `hidden_states` under returned tensors for
+            more detail.
+        interpolate_pos_encoding (`bool`, *optional*, defaults to `False`):
+            Whether to interpolate the pre-trained position encodings.
+        return_dict (`bool`, *optional*):
+            Whether or not to return a [`~utils.ModelOutput`] instead of a plain tuple.
+"""
+
+
+@add_start_docstrings(
+    "The bare UnimerSwin Model transformer outputting raw hidden-states without any specific head on top.",
+    SWIN_START_DOCSTRING,
+)
+class UnimerSwinModel(UnimerSwinPreTrainedModel):
+    def __init__(self, config, add_pooling_layer=True, use_mask_token=False):
+        super().__init__(config)
+        self.config = config
+        self.num_layers = len(config.depths)
+        self.num_features = int(config.embed_dim * 2 ** (self.num_layers - 1))
+
+        self.embeddings = UnimerSwinEmbeddings(config, use_mask_token=use_mask_token)
+        self.encoder = UnimerSwinEncoder(config, self.embeddings.patch_grid)
+        self.pooler = nn.AdaptiveAvgPool1d(1) if add_pooling_layer else None
+
+        # Initialize weights and apply final processing
+        self.post_init()
+
+    def get_input_embeddings(self):
+        return self.embeddings.patch_embeddings
+
+    def _prune_heads(self, heads_to_prune):
+        """
+        Prunes heads of the model. heads_to_prune: dict of {layer_num: list of heads to prune in this layer} See base
+        class PreTrainedModel
+        """
+        for layer, heads in heads_to_prune.items():
+            self.encoder.layer[layer].attention.prune_heads(heads)
+
+    @add_start_docstrings_to_model_forward(SWIN_INPUTS_DOCSTRING)
+    @add_code_sample_docstrings(
+        checkpoint=_CHECKPOINT_FOR_DOC,
+        output_type=UnimerSwinModelOutput,
+        config_class=_CONFIG_FOR_DOC,
+        modality="vision",
+        expected_output=_EXPECTED_OUTPUT_SHAPE,
+    )
+    def forward(
+        self,
+        pixel_values: Optional[torch.FloatTensor] = None,
+        bool_masked_pos: Optional[torch.BoolTensor] = None,
+        head_mask: Optional[torch.FloatTensor] = None,
+        output_attentions: Optional[bool] = None,
+        output_hidden_states: Optional[bool] = None,
+        interpolate_pos_encoding: bool = False,
+        return_dict: Optional[bool] = None,
+    ) -> Union[Tuple, UnimerSwinModelOutput]:
+        r"""
+        bool_masked_pos (`torch.BoolTensor` of shape `(batch_size, num_patches)`):
+            Boolean masked positions. Indicates which patches are masked (1) and which aren't (0).
+        """
+        output_attentions = output_attentions if output_attentions is not None else self.config.output_attentions
+        output_hidden_states = (
+            output_hidden_states if output_hidden_states is not None else self.config.output_hidden_states
+        )
+        return_dict = return_dict if return_dict is not None else self.config.use_return_dict
+
+        if pixel_values is None:
+            raise ValueError("You have to specify pixel_values")
+
+        # Prepare head mask if needed
+        # 1.0 in head_mask indicate we keep the head
+        # attention_probs has shape bsz x n_heads x N x N
+        # input head_mask has shape [num_heads] or [num_hidden_layers x num_heads]
+        # and head_mask is converted to shape [num_hidden_layers x batch x num_heads x seq_length x seq_length]
+        head_mask = self.get_head_mask(head_mask, len(self.config.depths))
+
+        embedding_output, input_dimensions = self.embeddings(
+            pixel_values, bool_masked_pos=bool_masked_pos, interpolate_pos_encoding=interpolate_pos_encoding
+        )
+
+        encoder_outputs = self.encoder(
+            embedding_output,
+            input_dimensions,
+            head_mask=head_mask,
+            output_attentions=output_attentions,
+            output_hidden_states=output_hidden_states,
+            return_dict=return_dict,
+        )
+
+        sequence_output = encoder_outputs[0]
+
+        pooled_output = None
+        if self.pooler is not None:
+            pooled_output = self.pooler(sequence_output.transpose(1, 2))
+            pooled_output = torch.flatten(pooled_output, 1)
+
+        if not return_dict:
+            output = (sequence_output, pooled_output) + encoder_outputs[1:]
+
+            return output
+
+        return UnimerSwinModelOutput(
+            last_hidden_state=sequence_output,
+            pooler_output=pooled_output,
+            hidden_states=encoder_outputs.hidden_states,
+            attentions=encoder_outputs.attentions,
+            reshaped_hidden_states=encoder_outputs.reshaped_hidden_states,
+        )

+ 338 - 0
mineru/model/mfr/utils.py

@@ -0,0 +1,338 @@
+import re
+
+LEFT_PATTERN = re.compile(r'(\\left)(\S*)')
+RIGHT_PATTERN = re.compile(r'(\\right)(\S*)')
+LEFT_COUNT_PATTERN = re.compile(r'\\left(?![a-zA-Z])')
+RIGHT_COUNT_PATTERN = re.compile(r'\\right(?![a-zA-Z])')
+LEFT_RIGHT_REMOVE_PATTERN = re.compile(r'\\left\.?|\\right\.?')
+
+def fix_latex_left_right(s, fix_delimiter=True):
+    """
+    修复LaTeX中的\\left和\\right命令
+    1. 确保它们后面跟有效分隔符
+    2. 平衡\\left和\\right的数量
+    """
+    # 白名单分隔符
+    valid_delims_list = [r'(', r')', r'[', r']', r'{', r'}', r'/', r'|',
+                         r'\{', r'\}', r'\lceil', r'\rceil', r'\lfloor',
+                         r'\rfloor', r'\backslash', r'\uparrow', r'\downarrow',
+                         r'\Uparrow', r'\Downarrow', r'\|', r'\.']
+
+    # 为\left后缺失有效分隔符的情况添加点
+    def fix_delim(match, is_left=True):
+        cmd = match.group(1)  # \left 或 \right
+        rest = match.group(2) if len(match.groups()) > 1 else ""
+        if not rest or rest not in valid_delims_list:
+            return cmd + "."
+        return match.group(0)
+
+    # 使用更精确的模式匹配\left和\right命令
+    # 确保它们是独立的命令,不是其他命令的一部分
+    # 使用预编译正则和统一回调函数
+    if fix_delimiter:
+        s = LEFT_PATTERN.sub(lambda m: fix_delim(m, True), s)
+        s = RIGHT_PATTERN.sub(lambda m: fix_delim(m, False), s)
+
+    # 更精确地计算\left和\right的数量
+    left_count = len(LEFT_COUNT_PATTERN.findall(s))  # 不匹配\lefteqn等
+    right_count = len(RIGHT_COUNT_PATTERN.findall(s))  # 不匹配\rightarrow等
+
+    if left_count == right_count:
+        # 如果数量相等,检查是否在同一组
+        return fix_left_right_pairs(s)
+        # return s
+    else:
+        # 如果数量不等,移除所有\left和\right
+        # logger.debug(f"latex:{s}")
+        # logger.warning(f"left_count: {left_count}, right_count: {right_count}")
+        return LEFT_RIGHT_REMOVE_PATTERN.sub('', s)
+
+
+def fix_left_right_pairs(latex_formula):
+    """
+    检测并修复LaTeX公式中\\left和\\right不在同一组的情况
+
+    Args:
+        latex_formula (str): 输入的LaTeX公式
+
+    Returns:
+        str: 修复后的LaTeX公式
+    """
+    # 用于跟踪花括号嵌套层级
+    brace_stack = []
+    # 用于存储\left信息: (位置, 深度, 分隔符)
+    left_stack = []
+    # 存储需要调整的\right信息: (开始位置, 结束位置, 目标位置)
+    adjustments = []
+
+    i = 0
+    while i < len(latex_formula):
+        # 检查是否是转义字符
+        if i > 0 and latex_formula[i - 1] == '\\':
+            backslash_count = 0
+            j = i - 1
+            while j >= 0 and latex_formula[j] == '\\':
+                backslash_count += 1
+                j -= 1
+
+            if backslash_count % 2 == 1:
+                i += 1
+                continue
+
+        # 检测\left命令
+        if i + 5 < len(latex_formula) and latex_formula[i:i + 5] == "\\left" and i + 5 < len(latex_formula):
+            delimiter = latex_formula[i + 5]
+            left_stack.append((i, len(brace_stack), delimiter))
+            i += 6  # 跳过\left和分隔符
+            continue
+
+        # 检测\right命令
+        elif i + 6 < len(latex_formula) and latex_formula[i:i + 6] == "\\right" and i + 6 < len(latex_formula):
+            delimiter = latex_formula[i + 6]
+
+            if left_stack:
+                left_pos, left_depth, left_delim = left_stack.pop()
+
+                # 如果\left和\right不在同一花括号深度
+                if left_depth != len(brace_stack):
+                    # 找到\left所在花括号组的结束位置
+                    target_pos = find_group_end(latex_formula, left_pos, left_depth)
+                    if target_pos != -1:
+                        # 记录需要移动的\right
+                        adjustments.append((i, i + 7, target_pos))
+
+            i += 7  # 跳过\right和分隔符
+            continue
+
+        # 处理花括号
+        if latex_formula[i] == '{':
+            brace_stack.append(i)
+        elif latex_formula[i] == '}':
+            if brace_stack:
+                brace_stack.pop()
+
+        i += 1
+
+    # 应用调整,从后向前处理以避免索引变化
+    if not adjustments:
+        return latex_formula
+
+    result = list(latex_formula)
+    adjustments.sort(reverse=True, key=lambda x: x[0])
+
+    for start, end, target in adjustments:
+        # 提取\right部分
+        right_part = result[start:end]
+        # 从原位置删除
+        del result[start:end]
+        # 在目标位置插入
+        result.insert(target, ''.join(right_part))
+
+    return ''.join(result)
+
+
+def find_group_end(text, pos, depth):
+    """查找特定深度的花括号组的结束位置"""
+    current_depth = depth
+    i = pos
+
+    while i < len(text):
+        if text[i] == '{' and (i == 0 or not is_escaped(text, i)):
+            current_depth += 1
+        elif text[i] == '}' and (i == 0 or not is_escaped(text, i)):
+            current_depth -= 1
+            if current_depth < depth:
+                return i
+        i += 1
+
+    return -1  # 未找到对应结束位置
+
+
+def is_escaped(text, pos):
+    """检查字符是否被转义"""
+    backslash_count = 0
+    j = pos - 1
+    while j >= 0 and text[j] == '\\':
+        backslash_count += 1
+        j -= 1
+
+    return backslash_count % 2 == 1
+
+
+def fix_unbalanced_braces(latex_formula):
+    """
+    检测LaTeX公式中的花括号是否闭合,并删除无法配对的花括号
+
+    Args:
+        latex_formula (str): 输入的LaTeX公式
+
+    Returns:
+        str: 删除无法配对的花括号后的LaTeX公式
+    """
+    stack = []  # 存储左括号的索引
+    unmatched = set()  # 存储不匹配括号的索引
+    i = 0
+
+    while i < len(latex_formula):
+        # 检查是否是转义的花括号
+        if latex_formula[i] in ['{', '}']:
+            # 计算前面连续的反斜杠数量
+            backslash_count = 0
+            j = i - 1
+            while j >= 0 and latex_formula[j] == '\\':
+                backslash_count += 1
+                j -= 1
+
+            # 如果前面有奇数个反斜杠,则该花括号是转义的,不参与匹配
+            if backslash_count % 2 == 1:
+                i += 1
+                continue
+
+            # 否则,该花括号参与匹配
+            if latex_formula[i] == '{':
+                stack.append(i)
+            else:  # latex_formula[i] == '}'
+                if stack:  # 有对应的左括号
+                    stack.pop()
+                else:  # 没有对应的左括号
+                    unmatched.add(i)
+
+        i += 1
+
+    # 所有未匹配的左括号
+    unmatched.update(stack)
+
+    # 构建新字符串,删除不匹配的括号
+    return ''.join(char for i, char in enumerate(latex_formula) if i not in unmatched)
+
+
+def process_latex(input_string):
+    """
+        处理LaTeX公式中的反斜杠:
+        1. 如果\后跟特殊字符(#$%&~_^\\{})或空格,保持不变
+        2. 如果\后跟两个小写字母,保持不变
+        3. 其他情况,在\后添加空格
+
+        Args:
+            input_string (str): 输入的LaTeX公式
+
+        Returns:
+            str: 处理后的LaTeX公式
+        """
+
+    def replace_func(match):
+        # 获取\后面的字符
+        next_char = match.group(1)
+
+        # 如果是特殊字符或空格,保持不变
+        if next_char in "#$%&~_^|\\{} \t\n\r\v\f":
+            return match.group(0)
+
+        # 如果是字母,检查下一个字符
+        if 'a' <= next_char <= 'z' or 'A' <= next_char <= 'Z':
+            pos = match.start() + 2  # \x后的位置
+            if pos < len(input_string) and ('a' <= input_string[pos] <= 'z' or 'A' <= input_string[pos] <= 'Z'):
+                # 下一个字符也是字母,保持不变
+                return match.group(0)
+
+        # 其他情况,在\后添加空格
+        return '\\' + ' ' + next_char
+
+    # 匹配\后面跟一个字符的情况
+    pattern = r'\\(.)'
+
+    return re.sub(pattern, replace_func, input_string)
+
+# 常见的在KaTeX/MathJax中可用的数学环境
+ENV_TYPES = ['array', 'matrix', 'pmatrix', 'bmatrix', 'vmatrix',
+             'Bmatrix', 'Vmatrix', 'cases', 'aligned', 'gathered', 'align', 'align*']
+ENV_BEGIN_PATTERNS = {env: re.compile(r'\\begin\{' + env + r'\}') for env in ENV_TYPES}
+ENV_END_PATTERNS = {env: re.compile(r'\\end\{' + env + r'\}') for env in ENV_TYPES}
+ENV_FORMAT_PATTERNS = {env: re.compile(r'\\begin\{' + env + r'\}\{([^}]*)\}') for env in ENV_TYPES}
+
+def fix_latex_environments(s):
+    """
+    检测LaTeX中环境(如array)的\\begin和\\end是否匹配
+    1. 如果缺少\\begin标签则在开头添加
+    2. 如果缺少\\end标签则在末尾添加
+    """
+    for env in ENV_TYPES:
+        begin_count = len(ENV_BEGIN_PATTERNS[env].findall(s))
+        end_count = len(ENV_END_PATTERNS[env].findall(s))
+
+        if begin_count != end_count:
+            if end_count > begin_count:
+                format_match = ENV_FORMAT_PATTERNS[env].search(s)
+                default_format = '{c}' if env == 'array' else ''
+                format_str = '{' + format_match.group(1) + '}' if format_match else default_format
+
+                missing_count = end_count - begin_count
+                begin_command = '\\begin{' + env + '}' + format_str + ' '
+                s = begin_command * missing_count + s
+            else:
+                missing_count = begin_count - end_count
+                s = s + (' \\end{' + env + '}') * missing_count
+
+    return s
+
+
+REPLACEMENTS_PATTERNS = {
+    re.compile(r'\\underbar'): r'\\underline',
+    re.compile(r'\\Bar'): r'\\hat',
+    re.compile(r'\\Hat'): r'\\hat',
+    re.compile(r'\\Tilde'): r'\\tilde',
+    re.compile(r'\\slash'): r'/',
+    re.compile(r'\\textperthousand'): r'‰',
+    re.compile(r'\\sun'): r'☉',
+    re.compile(r'\\textunderscore'): r'\\_',
+    re.compile(r'\\fint'): r'⨏',
+    re.compile(r'\\up '): r'\\ ',
+    re.compile(r'\\vline = '): r'\\models ',
+    re.compile(r'\\vDash '): r'\\models ',
+    re.compile(r'\\sq \\sqcup '): r'\\square ',
+    re.compile(r'\\copyright'): r'©',
+}
+QQUAD_PATTERN = re.compile(r'\\qquad(?!\s)')
+
+
+def remove_up_commands(s: str):
+    """Remove unnecessary up commands from LaTeX code."""
+    UP_PATTERN = re.compile(r'\\up([a-zA-Z]+)')
+    s = UP_PATTERN.sub(
+        lambda m: m.group(0) if m.group(1) in ["arrow", "downarrow", "lus", "silon"] else f"\\{m.group(1)}", s
+    )
+    return s
+
+
+def remove_unsupported_commands(s: str):
+    """Remove unsupported LaTeX commands."""
+    COMMANDS_TO_REMOVE_PATTERN = re.compile(
+        r'\\(?:lefteqn|boldmath|ensuremath|centering|textsubscript|sides|textsl|textcent|emph|protect|null)')
+    s = COMMANDS_TO_REMOVE_PATTERN.sub('', s)
+    return s
+
+
+def latex_rm_whitespace(s: str):
+    """Remove unnecessary whitespace from LaTeX code."""
+    s = fix_unbalanced_braces(s)
+    s = fix_latex_left_right(s)
+    s = fix_latex_environments(s)
+
+    s = remove_up_commands(s)
+    s = remove_unsupported_commands(s)
+
+    # 应用所有替换
+    for pattern, replacement in REPLACEMENTS_PATTERNS.items():
+        s = pattern.sub(replacement, s)
+
+    # 处理LaTeX中的反斜杠和空格
+    s = process_latex(s)
+
+    # \qquad后补空格
+    s = QQUAD_PATTERN.sub(r'\\qquad ', s)
+
+    # 如果字符串以反斜杠结尾,去掉最后的反斜杠
+    while s.endswith('\\'):
+        s = s[:-1]
+
+    return s

+ 1 - 0
mineru/model/ocr/__init__.py

@@ -0,0 +1 @@
+# Copyright (c) Opendatalab. All rights reserved.

+ 300 - 0
mineru/model/ocr/pytorch_paddle.py

@@ -0,0 +1,300 @@
+# Copyright (c) Opendatalab. All rights reserved.
+import copy
+import os
+import warnings
+from pathlib import Path
+
+import cv2
+import numpy as np
+import yaml
+from loguru import logger
+
+from mineru.utils.config_reader import get_device
+from mineru.utils.enum_class import ModelPath
+from mineru.utils.models_download_utils import auto_download_and_get_model_root_path
+from mineru.utils.ocr_utils import check_img, preprocess_image, sorted_boxes, merge_det_boxes, update_det_boxes, get_rotate_crop_image
+from mineru.model.utils.tools.infer.predict_system import TextSystem
+from mineru.model.utils.tools.infer import pytorchocr_utility as utility
+import argparse
+
+
+latin_lang = [
+        "af",
+        "az",
+        "bs",
+        "cs",
+        "cy",
+        "da",
+        "de",
+        "es",
+        "et",
+        "fr",
+        "ga",
+        "hr",
+        "hu",
+        "id",
+        "is",
+        "it",
+        "ku",
+        "la",
+        "lt",
+        "lv",
+        "mi",
+        "ms",
+        "mt",
+        "nl",
+        "no",
+        "oc",
+        "pi",
+        "pl",
+        "pt",
+        "ro",
+        "rs_latin",
+        "sk",
+        "sl",
+        "sq",
+        "sv",
+        "sw",
+        "tl",
+        "tr",
+        "uz",
+        "vi",
+        "french",
+        "german",
+        "fi",
+        "eu",
+        "gl",
+        "lb",
+        "rm",
+        "ca",
+        "qu",
+]
+arabic_lang = ["ar", "fa", "ug", "ur", "ps", "ku", "sd", "bal"]
+cyrillic_lang = [
+        "ru",
+        "rs_cyrillic",
+        "be",
+        "bg",
+        "uk",
+        "mn",
+        "abq",
+        "ady",
+        "kbd",
+        "ava",
+        "dar",
+        "inh",
+        "che",
+        "lbe",
+        "lez",
+        "tab",
+        "kk",
+        "ky",
+        "tg",
+        "mk",
+        "tt",
+        "cv",
+        "ba",
+        "mhr",
+        "mo",
+        "udm",
+        "kv",
+        "os",
+        "bua",
+        "xal",
+        "tyv",
+        "sah",
+        "kaa",
+]
+east_slavic_lang = ["ru", "be", "uk"]
+devanagari_lang = [
+        "hi",
+        "mr",
+        "ne",
+        "bh",
+        "mai",
+        "ang",
+        "bho",
+        "mah",
+        "sck",
+        "new",
+        "gom",
+        "sa",
+        "bgc",
+]
+
+
+def get_model_params(lang, config):
+    if lang in config['lang']:
+        params = config['lang'][lang]
+        det = params.get('det')
+        rec = params.get('rec')
+        dict_file = params.get('dict')
+        return det, rec, dict_file
+    else:
+        raise Exception (f'Language {lang} not supported')
+
+
+root_dir = os.path.join(Path(__file__).resolve().parent.parent, 'utils')
+
+
+class PytorchPaddleOCR(TextSystem):
+    def __init__(self, *args, **kwargs):
+        parser = utility.init_args()
+        args = parser.parse_args(args)
+
+        self.lang = kwargs.get('lang', 'ch')
+        self.enable_merge_det_boxes = kwargs.get("enable_merge_det_boxes", True)
+
+        device = get_device()
+        if device == 'cpu' and self.lang in ['ch', 'ch_server', 'japan', 'chinese_cht']:
+            # logger.warning("The current device in use is CPU. To ensure the speed of parsing, the language is automatically switched to ch_lite.")
+            self.lang = 'ch_lite'
+
+        if self.lang in latin_lang:
+            self.lang = 'latin'
+        elif self.lang in east_slavic_lang:
+            self.lang = 'east_slavic'
+        elif self.lang in arabic_lang:
+            self.lang = 'arabic'
+        elif self.lang in cyrillic_lang:
+            self.lang = 'cyrillic'
+        elif self.lang in devanagari_lang:
+            self.lang = 'devanagari'
+        else:
+            pass
+
+        models_config_path = os.path.join(root_dir, 'pytorchocr', 'utils', 'resources', 'models_config.yml')
+        with open(models_config_path) as file:
+            config = yaml.safe_load(file)
+            det, rec, dict_file = get_model_params(self.lang, config)
+        ocr_models_dir = ModelPath.pytorch_paddle
+
+        det_model_path = f"{ocr_models_dir}/{det}"
+        det_model_path = os.path.join(auto_download_and_get_model_root_path(det_model_path), det_model_path)
+        rec_model_path = f"{ocr_models_dir}/{rec}"
+        rec_model_path = os.path.join(auto_download_and_get_model_root_path(rec_model_path), rec_model_path)
+        kwargs['det_model_path'] = det_model_path
+        kwargs['rec_model_path'] = rec_model_path
+        kwargs['rec_char_dict_path'] = os.path.join(root_dir, 'pytorchocr', 'utils', 'resources', 'dict', dict_file)
+        kwargs['rec_batch_num'] = 6
+
+        kwargs['device'] = device
+
+        default_args = vars(args)
+        default_args.update(kwargs)
+        args = argparse.Namespace(**default_args)
+
+        super().__init__(args)
+
+    def ocr(self,
+            img,
+            det=True,
+            rec=True,
+            mfd_res=None,
+            tqdm_enable=False,
+            tqdm_desc="OCR-rec Predict",
+            ):
+        assert isinstance(img, (np.ndarray, list, str, bytes))
+        if isinstance(img, list) and det == True:
+            logger.error('When input a list of images, det must be false')
+            exit(0)
+        img = check_img(img)
+        imgs = [img]
+        with warnings.catch_warnings():
+            warnings.simplefilter("ignore", category=RuntimeWarning)
+            if det and rec:
+                ocr_res = []
+                for img in imgs:
+                    img = preprocess_image(img)
+                    dt_boxes, rec_res = self.__call__(img, mfd_res=mfd_res)
+                    if not dt_boxes and not rec_res:
+                        ocr_res.append(None)
+                        continue
+                    tmp_res = [[box.tolist(), res] for box, res in zip(dt_boxes, rec_res)]
+                    ocr_res.append(tmp_res)
+                return ocr_res
+            elif det and not rec:
+                ocr_res = []
+                for img in imgs:
+                    img = preprocess_image(img)
+                    dt_boxes, elapse = self.text_detector(img)
+                    # logger.debug("dt_boxes num : {}, elapsed : {}".format(len(dt_boxes), elapse))
+                    if dt_boxes is None:
+                        ocr_res.append(None)
+                        continue
+                    dt_boxes = sorted_boxes(dt_boxes)
+                    # merge_det_boxes 和 update_det_boxes 都会把poly转成bbox再转回poly,因此需要过滤所有倾斜程度较大的文本框
+                    if self.enable_merge_det_boxes:
+                        dt_boxes = merge_det_boxes(dt_boxes)
+                    if mfd_res:
+                        dt_boxes = update_det_boxes(dt_boxes, mfd_res)
+                    tmp_res = [box.tolist() for box in dt_boxes]
+                    ocr_res.append(tmp_res)
+                return ocr_res
+            elif not det and rec:
+                ocr_res = []
+                for img in imgs:
+                    if not isinstance(img, list):
+                        img = preprocess_image(img)
+                        img = [img]
+                    rec_res, elapse = self.text_recognizer(img, tqdm_enable=tqdm_enable, tqdm_desc=tqdm_desc)
+                    # logger.debug("rec_res num  : {}, elapsed : {}".format(len(rec_res), elapse))
+                    ocr_res.append(rec_res)
+                return ocr_res
+
+    def __call__(self, img, mfd_res=None):
+
+        if img is None:
+            logger.debug("no valid image provided")
+            return None, None
+
+        ori_im = img.copy()
+        dt_boxes, elapse = self.text_detector(img)
+
+        if dt_boxes is None:
+            logger.debug("no dt_boxes found, elapsed : {}".format(elapse))
+            return None, None
+        else:
+            pass
+            # logger.debug("dt_boxes num : {}, elapsed : {}".format(len(dt_boxes), elapse))
+        img_crop_list = []
+
+        dt_boxes = sorted_boxes(dt_boxes)
+
+        # merge_det_boxes 和 update_det_boxes 都会把poly转成bbox再转回poly,因此需要过滤所有倾斜程度较大的文本框
+        if self.enable_merge_det_boxes:
+            dt_boxes = merge_det_boxes(dt_boxes)
+
+        if mfd_res:
+            dt_boxes = update_det_boxes(dt_boxes, mfd_res)
+
+        for bno in range(len(dt_boxes)):
+            tmp_box = copy.deepcopy(dt_boxes[bno])
+            img_crop = get_rotate_crop_image(ori_im, tmp_box)
+            img_crop_list.append(img_crop)
+
+        rec_res, elapse = self.text_recognizer(img_crop_list)
+        # logger.debug("rec_res num  : {}, elapsed : {}".format(len(rec_res), elapse))
+
+        filter_boxes, filter_rec_res = [], []
+        for box, rec_result in zip(dt_boxes, rec_res):
+            text, score = rec_result
+            if score >= self.drop_score:
+                filter_boxes.append(box)
+                filter_rec_res.append(rec_result)
+
+        return filter_boxes, filter_rec_res
+
+if __name__ == '__main__':
+    pytorch_paddle_ocr = PytorchPaddleOCR()
+    img = cv2.imread("/Users/myhloli/Downloads/screenshot-20250326-194348.png")
+    dt_boxes, rec_res = pytorch_paddle_ocr(img)
+    ocr_res = []
+    if not dt_boxes and not rec_res:
+        ocr_res.append(None)
+    else:
+        tmp_res = [[box.tolist(), res] for box, res in zip(dt_boxes, rec_res)]
+        ocr_res.append(tmp_res)
+    print(ocr_res)
+
+

+ 1 - 0
mineru/model/ori_cls/__init__.py

@@ -0,0 +1 @@
+# Copyright (c) Opendatalab. All rights reserved.

+ 282 - 0
mineru/model/ori_cls/paddle_ori_cls.py

@@ -0,0 +1,282 @@
+# Copyright (c) Opendatalab. All rights reserved.
+import os
+
+from PIL import Image
+from collections import defaultdict
+from typing import List, Dict
+from tqdm import tqdm
+import cv2
+import numpy as np
+import onnxruntime
+
+from mineru.utils.enum_class import ModelPath
+from mineru.utils.models_download_utils import auto_download_and_get_model_root_path
+
+
+class PaddleOrientationClsModel:
+    def __init__(self, ocr_engine):
+        self.sess = onnxruntime.InferenceSession(
+            os.path.join(auto_download_and_get_model_root_path(ModelPath.paddle_orientation_classification), ModelPath.paddle_orientation_classification)
+        )
+        self.ocr_engine = ocr_engine
+        self.less_length = 256
+        self.cw, self.ch = 224, 224
+        self.std = [0.229, 0.224, 0.225]
+        self.scale = 0.00392156862745098
+        self.mean = [0.485, 0.456, 0.406]
+        self.labels = ["0", "90", "180", "270"]
+
+    def preprocess(self, input_img):
+        # 放大图片,使其最短边长为256
+        h, w = input_img.shape[:2]
+        scale = 256 / min(h, w)
+        h_resize = round(h * scale)
+        w_resize = round(w * scale)
+        img = cv2.resize(input_img, (w_resize, h_resize), interpolation=1)
+        # 调整为224*224的正方形
+        h, w = img.shape[:2]
+        cw, ch = 224, 224
+        x1 = max(0, (w - cw) // 2)
+        y1 = max(0, (h - ch) // 2)
+        x2 = min(w, x1 + cw)
+        y2 = min(h, y1 + ch)
+        if w < cw or h < ch:
+            raise ValueError(
+                f"Input image ({w}, {h}) smaller than the target size ({cw}, {ch})."
+            )
+        img = img[y1:y2, x1:x2, ...]
+        # 正则化
+        split_im = list(cv2.split(img))
+        std = [0.229, 0.224, 0.225]
+        scale = 0.00392156862745098
+        mean = [0.485, 0.456, 0.406]
+        alpha = [scale / std[i] for i in range(len(std))]
+        beta = [-mean[i] / std[i] for i in range(len(std))]
+        for c in range(img.shape[2]):
+            split_im[c] = split_im[c].astype(np.float32)
+            split_im[c] *= alpha[c]
+            split_im[c] += beta[c]
+        img = cv2.merge(split_im)
+        # 5. 转换为 CHW 格式
+        img = img.transpose((2, 0, 1))
+        imgs = [img]
+        x = np.stack(imgs, axis=0).astype(dtype=np.float32, copy=False)
+        return x
+
+    def predict(self, input_img):
+        rotate_label = "0"  # Default to 0 if no rotation detected or not portrait
+        if isinstance(input_img, Image.Image):
+            np_img = np.asarray(input_img)
+        elif isinstance(input_img, np.ndarray):
+            np_img = input_img
+        else:
+            raise ValueError("Input must be a pillow object or a numpy array.")
+        bgr_image = cv2.cvtColor(np_img, cv2.COLOR_RGB2BGR)
+        # First check the overall image aspect ratio (height/width)
+        img_height, img_width = bgr_image.shape[:2]
+        img_aspect_ratio = img_height / img_width if img_width > 0 else 1.0
+        img_is_portrait = img_aspect_ratio > 1.2
+
+        if img_is_portrait:
+
+            det_res = self.ocr_engine.ocr(bgr_image, rec=False)[0]
+            # Check if table is rotated by analyzing text box aspect ratios
+            if det_res:
+                vertical_count = 0
+                is_rotated = False
+
+                for box_ocr_res in det_res:
+                    p1, p2, p3, p4 = box_ocr_res
+
+                    # Calculate width and height
+                    width = p3[0] - p1[0]
+                    height = p3[1] - p1[1]
+
+                    aspect_ratio = width / height if height > 0 else 1.0
+
+                    # Count vertical vs horizontal text boxes
+                    if aspect_ratio < 0.8:  # Taller than wide - vertical text
+                        vertical_count += 1
+                    # elif aspect_ratio > 1.2:  # Wider than tall - horizontal text
+                    #     horizontal_count += 1
+
+                if vertical_count >= len(det_res) * 0.28 and vertical_count >= 3:
+                    is_rotated = True
+                # logger.debug(f"Text orientation analysis: vertical={vertical_count}, det_res={len(det_res)}, rotated={is_rotated}")
+
+                # If we have more vertical text boxes than horizontal ones,
+                # and vertical ones are significant, table might be rotated
+                if is_rotated:
+                    x = self.preprocess(np_img)
+                    (result,) = self.sess.run(None, {"x": x})
+                    rotate_label = self.labels[np.argmax(result)]
+                    # logger.debug(f"Orientation classification result: {label}")
+
+        return rotate_label
+
+    def list_2_batch(self, img_list, batch_size=16):
+        """
+        将任意长度的列表按照指定的batch size分成多个batch
+
+        Args:
+            img_list: 输入的列表
+            batch_size: 每个batch的大小,默认为16
+
+        Returns:
+            一个包含多个batch的列表,每个batch都是原列表的一个子列表
+        """
+        batches = []
+        for i in range(0, len(img_list), batch_size):
+            batch = img_list[i : min(i + batch_size, len(img_list))]
+            batches.append(batch)
+        return batches
+
+    def batch_preprocess(self, imgs):
+        res_imgs = []
+        for img_info in imgs:
+            img = np.asarray(img_info["table_img"])
+            # 放大图片,使其最短边长为256
+            h, w = img.shape[:2]
+            scale = 256 / min(h, w)
+            h_resize = round(h * scale)
+            w_resize = round(w * scale)
+            img = cv2.resize(img, (w_resize, h_resize), interpolation=1)
+            # 调整为224*224的正方形
+            h, w = img.shape[:2]
+            cw, ch = 224, 224
+            x1 = max(0, (w - cw) // 2)
+            y1 = max(0, (h - ch) // 2)
+            x2 = min(w, x1 + cw)
+            y2 = min(h, y1 + ch)
+            if w < cw or h < ch:
+                raise ValueError(
+                    f"Input image ({w}, {h}) smaller than the target size ({cw}, {ch})."
+                )
+            img = img[y1:y2, x1:x2, ...]
+            # 正则化
+            split_im = list(cv2.split(img))
+            std = [0.229, 0.224, 0.225]
+            scale = 0.00392156862745098
+            mean = [0.485, 0.456, 0.406]
+            alpha = [scale / std[i] for i in range(len(std))]
+            beta = [-mean[i] / std[i] for i in range(len(std))]
+            for c in range(img.shape[2]):
+                split_im[c] = split_im[c].astype(np.float32)
+                split_im[c] *= alpha[c]
+                split_im[c] += beta[c]
+            img = cv2.merge(split_im)
+            # 5. 转换为 CHW 格式
+            img = img.transpose((2, 0, 1))
+            res_imgs.append(img)
+        x = np.stack(res_imgs, axis=0).astype(dtype=np.float32, copy=False)
+        return x
+
+    def batch_predict(
+        self, imgs: List[Dict], det_batch_size: int, batch_size: int = 16
+    ) -> None:
+
+        import torch
+        from packaging import version
+        if version.parse(torch.__version__) >= version.parse("2.8.0"):
+            return None
+
+        """
+        批量预测传入的包含图片信息列表的旋转信息,并且将旋转过的图片正确地旋转回来
+        """
+        RESOLUTION_GROUP_STRIDE = 128
+        # 跳过长宽比小于1.2的图片
+        resolution_groups = defaultdict(list)
+        for img in imgs:
+            # RGB图像转换BGR
+            bgr_img: np.ndarray = cv2.cvtColor(np.asarray(img["table_img"]), cv2.COLOR_RGB2BGR)
+            img["table_img_bgr"] = bgr_img
+            img_height, img_width = bgr_img.shape[:2]
+            img_aspect_ratio = img_height / img_width if img_width > 0 else 1.0
+            if img_aspect_ratio > 1.2:
+                # 归一化尺寸到RESOLUTION_GROUP_STRIDE的倍数
+                normalized_h = ((img_height + RESOLUTION_GROUP_STRIDE) // RESOLUTION_GROUP_STRIDE) * RESOLUTION_GROUP_STRIDE  # 向上取整到RESOLUTION_GROUP_STRIDE的倍数
+                normalized_w = ((img_width + RESOLUTION_GROUP_STRIDE) // RESOLUTION_GROUP_STRIDE) * RESOLUTION_GROUP_STRIDE
+                group_key = (normalized_h, normalized_w)
+                resolution_groups[group_key].append(img)
+
+        # 对每个分辨率组进行批处理
+        rotated_imgs = []
+        for group_key, group_imgs in tqdm(resolution_groups.items(), desc="Table-ori cls stage1 predict", disable=True):
+            # 计算目标尺寸(组内最大尺寸,向上取整到RESOLUTION_GROUP_STRIDE的倍数)
+            max_h = max(img["table_img_bgr"].shape[0] for img in group_imgs)
+            max_w = max(img["table_img_bgr"].shape[1] for img in group_imgs)
+            target_h = ((max_h + RESOLUTION_GROUP_STRIDE - 1) // RESOLUTION_GROUP_STRIDE) * RESOLUTION_GROUP_STRIDE
+            target_w = ((max_w + RESOLUTION_GROUP_STRIDE - 1) // RESOLUTION_GROUP_STRIDE) * RESOLUTION_GROUP_STRIDE
+
+            # 对所有图像进行padding到统一尺寸
+            batch_images = []
+            for img in group_imgs:
+                bgr_img = img["table_img_bgr"]
+                h, w = bgr_img.shape[:2]
+                # 创建目标尺寸的白色背景
+                padded_img = np.ones((target_h, target_w, 3), dtype=np.uint8) * 255
+                # 将原图像粘贴到左上角
+                padded_img[:h, :w] = bgr_img
+                batch_images.append(padded_img)
+
+            # 批处理检测
+            batch_results = self.ocr_engine.text_detector.batch_predict(
+                batch_images, min(len(batch_images), det_batch_size)
+            )
+
+            # 根据批处理结果检测图像是否旋转,旋转的图像放入列表中,继续进行旋转角度的预测
+
+            for index, (img_info, (dt_boxes, elapse)) in enumerate(
+                zip(group_imgs, batch_results)
+            ):
+                vertical_count = 0
+                for box_ocr_res in dt_boxes:
+                    p1, p2, p3, p4 = box_ocr_res
+
+                    # Calculate width and height
+                    width = p3[0] - p1[0]
+                    height = p3[1] - p1[1]
+
+                    aspect_ratio = width / height if height > 0 else 1.0
+
+                    # Count vertical text boxes
+                    if aspect_ratio < 0.8:  # Taller than wide - vertical text
+                        vertical_count += 1
+
+                if vertical_count >= len(dt_boxes) * 0.28 and vertical_count >= 3:
+                    rotated_imgs.append(img_info)
+
+        # 对旋转的图片进行旋转角度预测
+        if len(rotated_imgs) > 0:
+            imgs = self.list_2_batch(rotated_imgs, batch_size=batch_size)
+            with tqdm(total=len(rotated_imgs), desc="Table-ori cls stage2 predict", disable=True) as pbar:
+                for img_batch in imgs:
+                    x = self.batch_preprocess(img_batch)
+                    results = self.sess.run(None, {"x": x})
+                    for img_info, res in zip(rotated_imgs, results[0]):
+                        label = self.labels[np.argmax(res)]
+                        self.img_rotate(img_info, label)
+                        pbar.update(1)
+
+    def img_rotate(self, img_info, label):
+        if label == "270":
+            img_info["table_img"] = cv2.rotate(
+                np.asarray(img_info["table_img"]),
+                cv2.ROTATE_90_CLOCKWISE,
+            )
+            img_info["wired_table_img"] = cv2.rotate(
+                np.asarray(img_info["wired_table_img"]),
+                cv2.ROTATE_90_CLOCKWISE,
+            )
+        elif label == "90":
+            img_info["table_img"] = cv2.rotate(
+                np.asarray(img_info["table_img"]),
+                cv2.ROTATE_90_COUNTERCLOCKWISE,
+            )
+            img_info["wired_table_img"] = cv2.rotate(
+                np.asarray(img_info["wired_table_img"]),
+                cv2.ROTATE_90_COUNTERCLOCKWISE,
+            )
+        else:
+            # 180度和0度不做处理
+            pass

+ 1 - 0
mineru/model/reading_order/__init__.py

@@ -0,0 +1 @@
+# Copyright (c) Opendatalab. All rights reserved.

+ 125 - 0
mineru/model/reading_order/layout_reader.py

@@ -0,0 +1,125 @@
+from collections import defaultdict
+from typing import List, Dict
+
+import torch
+from transformers import LayoutLMv3ForTokenClassification
+
+MAX_LEN = 510
+CLS_TOKEN_ID = 0
+UNK_TOKEN_ID = 3
+EOS_TOKEN_ID = 2
+
+
+class DataCollator:
+    def __call__(self, features: List[dict]) -> Dict[str, torch.Tensor]:
+        bbox = []
+        labels = []
+        input_ids = []
+        attention_mask = []
+
+        # clip bbox and labels to max length, build input_ids and attention_mask
+        for feature in features:
+            _bbox = feature["source_boxes"]
+            if len(_bbox) > MAX_LEN:
+                _bbox = _bbox[:MAX_LEN]
+            _labels = feature["target_index"]
+            if len(_labels) > MAX_LEN:
+                _labels = _labels[:MAX_LEN]
+            _input_ids = [UNK_TOKEN_ID] * len(_bbox)
+            _attention_mask = [1] * len(_bbox)
+            assert len(_bbox) == len(_labels) == len(_input_ids) == len(_attention_mask)
+            bbox.append(_bbox)
+            labels.append(_labels)
+            input_ids.append(_input_ids)
+            attention_mask.append(_attention_mask)
+
+        # add CLS and EOS tokens
+        for i in range(len(bbox)):
+            bbox[i] = [[0, 0, 0, 0]] + bbox[i] + [[0, 0, 0, 0]]
+            labels[i] = [-100] + labels[i] + [-100]
+            input_ids[i] = [CLS_TOKEN_ID] + input_ids[i] + [EOS_TOKEN_ID]
+            attention_mask[i] = [1] + attention_mask[i] + [1]
+
+        # padding to max length
+        max_len = max(len(x) for x in bbox)
+        for i in range(len(bbox)):
+            bbox[i] = bbox[i] + [[0, 0, 0, 0]] * (max_len - len(bbox[i]))
+            labels[i] = labels[i] + [-100] * (max_len - len(labels[i]))
+            input_ids[i] = input_ids[i] + [EOS_TOKEN_ID] * (max_len - len(input_ids[i]))
+            attention_mask[i] = attention_mask[i] + [0] * (
+                max_len - len(attention_mask[i])
+            )
+
+        ret = {
+            "bbox": torch.tensor(bbox),
+            "attention_mask": torch.tensor(attention_mask),
+            "labels": torch.tensor(labels),
+            "input_ids": torch.tensor(input_ids),
+        }
+        # set label > MAX_LEN to -100, because original labels may be > MAX_LEN
+        ret["labels"][ret["labels"] > MAX_LEN] = -100
+        # set label > 0 to label-1, because original labels are 1-indexed
+        ret["labels"][ret["labels"] > 0] -= 1
+        return ret
+
+
+def boxes2inputs(boxes: List[List[int]]) -> Dict[str, torch.Tensor]:
+    bbox = [[0, 0, 0, 0]] + boxes + [[0, 0, 0, 0]]
+    input_ids = [CLS_TOKEN_ID] + [UNK_TOKEN_ID] * len(boxes) + [EOS_TOKEN_ID]
+    attention_mask = [1] + [1] * len(boxes) + [1]
+    return {
+        "bbox": torch.tensor([bbox]),
+        "attention_mask": torch.tensor([attention_mask]),
+        "input_ids": torch.tensor([input_ids]),
+    }
+
+
+def prepare_inputs(
+    inputs: Dict[str, torch.Tensor], model: LayoutLMv3ForTokenClassification
+) -> Dict[str, torch.Tensor]:
+    ret = {}
+    for k, v in inputs.items():
+        v = v.to(model.device)
+        if torch.is_floating_point(v):
+            v = v.to(model.dtype)
+        ret[k] = v
+    return ret
+
+
+def parse_logits(logits: torch.Tensor, length: int) -> List[int]:
+    """
+    parse logits to orders
+
+    :param logits: logits from model
+    :param length: input length
+    :return: orders
+    """
+    logits = logits[1 : length + 1, :length]
+    orders = logits.argsort(descending=False).tolist()
+    ret = [o.pop() for o in orders]
+    while True:
+        order_to_idxes = defaultdict(list)
+        for idx, order in enumerate(ret):
+            order_to_idxes[order].append(idx)
+        # filter idxes len > 1
+        order_to_idxes = {k: v for k, v in order_to_idxes.items() if len(v) > 1}
+        if not order_to_idxes:
+            break
+        # filter
+        for order, idxes in order_to_idxes.items():
+            # find original logits of idxes
+            idxes_to_logit = {}
+            for idx in idxes:
+                idxes_to_logit[idx] = logits[idx, order]
+            idxes_to_logit = sorted(
+                idxes_to_logit.items(), key=lambda x: x[1], reverse=True
+            )
+            # keep the highest logit as order, set others to next candidate
+            for idx, _ in idxes_to_logit[1:]:
+                ret[idx] = orders[idx].pop()
+
+    return ret
+
+
+def check_duplicate(a: List[int]) -> bool:
+    return len(a) != len(set(a))

+ 242 - 0
mineru/model/reading_order/xycut.py

@@ -0,0 +1,242 @@
+from typing import List
+import cv2
+import numpy as np
+
+
+def projection_by_bboxes(boxes: np.array, axis: int) -> np.ndarray:
+    """
+     通过一组 bbox 获得投影直方图,最后以 per-pixel 形式输出
+
+    Args:
+        boxes: [N, 4]
+        axis: 0-x坐标向水平方向投影, 1-y坐标向垂直方向投影
+
+    Returns:
+        1D 投影直方图,长度为投影方向坐标的最大值(我们不需要图片的实际边长,因为只是要找文本框的间隔)
+
+    """
+    assert axis in [0, 1]
+    length = np.max(boxes[:, axis::2])
+    res = np.zeros(length, dtype=int)
+    # TODO: how to remove for loop?
+    for start, end in boxes[:, axis::2]:
+        res[start:end] += 1
+    return res
+
+
+# from: https://dothinking.github.io/2021-06-19-%E9%80%92%E5%BD%92%E6%8A%95%E5%BD%B1%E5%88%86%E5%89%B2%E7%AE%97%E6%B3%95/#:~:text=%E9%80%92%E5%BD%92%E6%8A%95%E5%BD%B1%E5%88%86%E5%89%B2%EF%BC%88Recursive%20XY,%EF%BC%8C%E5%8F%AF%E4%BB%A5%E5%88%92%E5%88%86%E6%AE%B5%E8%90%BD%E3%80%81%E8%A1%8C%E3%80%82
+def split_projection_profile(arr_values: np.array, min_value: float, min_gap: float):
+    """Split projection profile:
+
+    ```
+                              ┌──┐
+         arr_values           │  │       ┌─┐───
+             ┌──┐             │  │       │ │ |
+             │  │             │  │ ┌───┐ │ │min_value
+             │  │<- min_gap ->│  │ │   │ │ │ |
+         ────┴──┴─────────────┴──┴─┴───┴─┴─┴─┴───
+         0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
+    ```
+
+    Args:
+        arr_values (np.array): 1-d array representing the projection profile.
+        min_value (float): Ignore the profile if `arr_value` is less than `min_value`.
+        min_gap (float): Ignore the gap if less than this value.
+
+    Returns:
+        tuple: Start indexes and end indexes of split groups.
+    """
+    # all indexes with projection height exceeding the threshold
+    arr_index = np.where(arr_values > min_value)[0]
+    if not len(arr_index):
+        return
+
+    # find zero intervals between adjacent projections
+    # |  |                    ||
+    # ||||<- zero-interval -> |||||
+    arr_diff = arr_index[1:] - arr_index[0:-1]
+    arr_diff_index = np.where(arr_diff > min_gap)[0]
+    arr_zero_intvl_start = arr_index[arr_diff_index]
+    arr_zero_intvl_end = arr_index[arr_diff_index + 1]
+
+    # convert to index of projection range:
+    # the start index of zero interval is the end index of projection
+    arr_start = np.insert(arr_zero_intvl_end, 0, arr_index[0])
+    arr_end = np.append(arr_zero_intvl_start, arr_index[-1])
+    arr_end += 1  # end index will be excluded as index slice
+
+    return arr_start, arr_end
+
+
+def recursive_xy_cut(boxes: np.ndarray, indices: List[int], res: List[int]):
+    """
+
+    Args:
+        boxes: (N, 4)
+        indices: 递归过程中始终表示 box 在原始数据中的索引
+        res: 保存输出结果
+
+    """
+    # 向 y 轴投影
+    assert len(boxes) == len(indices)
+
+    _indices = boxes[:, 1].argsort()
+    y_sorted_boxes = boxes[_indices]
+    y_sorted_indices = indices[_indices]
+
+    # debug_vis(y_sorted_boxes, y_sorted_indices)
+
+    y_projection = projection_by_bboxes(boxes=y_sorted_boxes, axis=1)
+    pos_y = split_projection_profile(y_projection, 0, 1)
+    if not pos_y:
+        return
+
+    arr_y0, arr_y1 = pos_y
+    for r0, r1 in zip(arr_y0, arr_y1):
+        # [r0, r1] 表示按照水平切分,有 bbox 的区域,对这些区域会再进行垂直切分
+        _indices = (r0 <= y_sorted_boxes[:, 1]) & (y_sorted_boxes[:, 1] < r1)
+
+        y_sorted_boxes_chunk = y_sorted_boxes[_indices]
+        y_sorted_indices_chunk = y_sorted_indices[_indices]
+
+        _indices = y_sorted_boxes_chunk[:, 0].argsort()
+        x_sorted_boxes_chunk = y_sorted_boxes_chunk[_indices]
+        x_sorted_indices_chunk = y_sorted_indices_chunk[_indices]
+
+        # 往 x 方向投影
+        x_projection = projection_by_bboxes(boxes=x_sorted_boxes_chunk, axis=0)
+        pos_x = split_projection_profile(x_projection, 0, 1)
+        if not pos_x:
+            continue
+
+        arr_x0, arr_x1 = pos_x
+        if len(arr_x0) == 1:
+            # x 方向无法切分
+            res.extend(x_sorted_indices_chunk)
+            continue
+
+        # x 方向上能分开,继续递归调用
+        for c0, c1 in zip(arr_x0, arr_x1):
+            _indices = (c0 <= x_sorted_boxes_chunk[:, 0]) & (
+                x_sorted_boxes_chunk[:, 0] < c1
+            )
+            recursive_xy_cut(
+                x_sorted_boxes_chunk[_indices], x_sorted_indices_chunk[_indices], res
+            )
+
+
+def points_to_bbox(points):
+    assert len(points) == 8
+
+    # [x1,y1,x2,y2,x3,y3,x4,y4]
+    left = min(points[::2])
+    right = max(points[::2])
+    top = min(points[1::2])
+    bottom = max(points[1::2])
+
+    left = max(left, 0)
+    top = max(top, 0)
+    right = max(right, 0)
+    bottom = max(bottom, 0)
+    return [left, top, right, bottom]
+
+
+def bbox2points(bbox):
+    left, top, right, bottom = bbox
+    return [left, top, right, top, right, bottom, left, bottom]
+
+
+def vis_polygon(img, points, thickness=2, color=None):
+    br2bl_color = color
+    tl2tr_color = color
+    tr2br_color = color
+    bl2tl_color = color
+    cv2.line(
+        img,
+        (points[0][0], points[0][1]),
+        (points[1][0], points[1][1]),
+        color=tl2tr_color,
+        thickness=thickness,
+    )
+
+    cv2.line(
+        img,
+        (points[1][0], points[1][1]),
+        (points[2][0], points[2][1]),
+        color=tr2br_color,
+        thickness=thickness,
+    )
+
+    cv2.line(
+        img,
+        (points[2][0], points[2][1]),
+        (points[3][0], points[3][1]),
+        color=br2bl_color,
+        thickness=thickness,
+    )
+
+    cv2.line(
+        img,
+        (points[3][0], points[3][1]),
+        (points[0][0], points[0][1]),
+        color=bl2tl_color,
+        thickness=thickness,
+    )
+    return img
+
+
+def vis_points(
+    img: np.ndarray, points, texts: List[str] = None, color=(0, 200, 0)
+) -> np.ndarray:
+    """
+
+    Args:
+        img:
+        points: [N, 8]  8: x1,y1,x2,y2,x3,y3,x3,y4
+        texts:
+        color:
+
+    Returns:
+
+    """
+    points = np.array(points)
+    if texts is not None:
+        assert len(texts) == points.shape[0]
+
+    for i, _points in enumerate(points):
+        vis_polygon(img, _points.reshape(-1, 2), thickness=2, color=color)
+        bbox = points_to_bbox(_points)
+        left, top, right, bottom = bbox
+        cx = (left + right) // 2
+        cy = (top + bottom) // 2
+
+        txt = texts[i]
+        font = cv2.FONT_HERSHEY_SIMPLEX
+        cat_size = cv2.getTextSize(txt, font, 0.5, 2)[0]
+
+        img = cv2.rectangle(
+            img,
+            (cx - 5 * len(txt), cy - cat_size[1] - 5),
+            (cx - 5 * len(txt) + cat_size[0], cy - 5),
+            color,
+            -1,
+        )
+
+        img = cv2.putText(
+            img,
+            txt,
+            (cx - 5 * len(txt), cy - 5),
+            font,
+            0.5,
+            (255, 255, 255),
+            thickness=1,
+            lineType=cv2.LINE_AA,
+        )
+
+    return img
+
+
+def vis_polygons_with_index(image, points):
+    texts = [str(i) for i in range(len(points))]
+    res_img = vis_points(image.copy(), points, texts)
+    return res_img

+ 1 - 0
mineru/model/table/__init__.py

@@ -0,0 +1 @@
+# Copyright (c) Opendatalab. All rights reserved.

+ 1 - 0
mineru/model/table/cls/__init__.py

@@ -0,0 +1 @@
+# Copyright (c) Opendatalab. All rights reserved.

+ 148 - 0
mineru/model/table/cls/paddle_table_cls.py

@@ -0,0 +1,148 @@
+import os
+
+from PIL import Image
+import cv2
+import numpy as np
+import onnxruntime
+from loguru import logger
+from tqdm import tqdm
+
+from mineru.backend.pipeline.model_list import AtomicModel
+from mineru.utils.enum_class import ModelPath
+from mineru.utils.models_download_utils import auto_download_and_get_model_root_path
+
+
+class PaddleTableClsModel:
+    def __init__(self):
+        self.sess = onnxruntime.InferenceSession(
+            os.path.join(auto_download_and_get_model_root_path(ModelPath.paddle_table_cls), ModelPath.paddle_table_cls)
+        )
+        self.less_length = 256
+        self.cw, self.ch = 224, 224
+        self.std = [0.229, 0.224, 0.225]
+        self.scale = 0.00392156862745098
+        self.mean = [0.485, 0.456, 0.406]
+        self.labels = [AtomicModel.WiredTable, AtomicModel.WirelessTable]
+
+    def preprocess(self, input_img):
+        # 放大图片,使其最短边长为256
+        h, w = input_img.shape[:2]
+        scale = 256 / min(h, w)
+        h_resize = round(h * scale)
+        w_resize = round(w * scale)
+        img = cv2.resize(input_img, (w_resize, h_resize), interpolation=1)
+        # 调整为224*224的正方形
+        h, w = img.shape[:2]
+        cw, ch = 224, 224
+        x1 = max(0, (w - cw) // 2)
+        y1 = max(0, (h - ch) // 2)
+        x2 = min(w, x1 + cw)
+        y2 = min(h, y1 + ch)
+        if w < cw or h < ch:
+            raise ValueError(
+                f"Input image ({w}, {h}) smaller than the target size ({cw}, {ch})."
+            )
+        img = img[y1:y2, x1:x2, ...]
+        # 正则化
+        split_im = list(cv2.split(img))
+        std = [0.229, 0.224, 0.225]
+        scale = 0.00392156862745098
+        mean = [0.485, 0.456, 0.406]
+        alpha = [scale / std[i] for i in range(len(std))]
+        beta = [-mean[i] / std[i] for i in range(len(std))]
+        for c in range(img.shape[2]):
+            split_im[c] = split_im[c].astype(np.float32)
+            split_im[c] *= alpha[c]
+            split_im[c] += beta[c]
+        img = cv2.merge(split_im)
+        # 5. 转换为 CHW 格式
+        img = img.transpose((2, 0, 1))
+        imgs = [img]
+        x = np.stack(imgs, axis=0).astype(dtype=np.float32, copy=False)
+        return x
+
+    def predict(self, input_img):
+        if isinstance(input_img, Image.Image):
+            np_img = np.asarray(input_img)
+        elif isinstance(input_img, np.ndarray):
+            np_img = input_img
+        else:
+            raise ValueError("Input must be a pillow object or a numpy array.")
+        x = self.preprocess(np_img)
+        result = self.sess.run(None, {"x": x})
+        idx = np.argmax(result)
+        conf = float(np.max(result))
+        return self.labels[idx], conf
+
+    def list_2_batch(self, img_list, batch_size=16):
+        """
+        将任意长度的列表按照指定的batch size分成多个batch
+
+        Args:
+            img_list: 输入的列表
+            batch_size: 每个batch的大小,默认为16
+
+        Returns:
+            一个包含多个batch的列表,每个batch都是原列表的一个子列表
+        """
+        batches = []
+        for i in range(0, len(img_list), batch_size):
+            batch = img_list[i : min(i + batch_size, len(img_list))]
+            batches.append(batch)
+        return batches
+
+    def batch_preprocess(self, imgs):
+        res_imgs = []
+        for img in imgs:
+            img = np.asarray(img)
+            # 放大图片,使其最短边长为256
+            h, w = img.shape[:2]
+            scale = 256 / min(h, w)
+            h_resize = round(h * scale)
+            w_resize = round(w * scale)
+            img = cv2.resize(img, (w_resize, h_resize), interpolation=1)
+            # 调整为224*224的正方形
+            h, w = img.shape[:2]
+            cw, ch = 224, 224
+            x1 = max(0, (w - cw) // 2)
+            y1 = max(0, (h - ch) // 2)
+            x2 = min(w, x1 + cw)
+            y2 = min(h, y1 + ch)
+            if w < cw or h < ch:
+                raise ValueError(
+                    f"Input image ({w}, {h}) smaller than the target size ({cw}, {ch})."
+                )
+            img = img[y1:y2, x1:x2, ...]
+            # 正则化
+            split_im = list(cv2.split(img))
+            std = [0.229, 0.224, 0.225]
+            scale = 0.00392156862745098
+            mean = [0.485, 0.456, 0.406]
+            alpha = [scale / std[i] for i in range(len(std))]
+            beta = [-mean[i] / std[i] for i in range(len(std))]
+            for c in range(img.shape[2]):
+                split_im[c] = split_im[c].astype(np.float32)
+                split_im[c] *= alpha[c]
+                split_im[c] += beta[c]
+            img = cv2.merge(split_im)
+            # 5. 转换为 CHW 格式
+            img = img.transpose((2, 0, 1))
+            res_imgs.append(img)
+        x = np.stack(res_imgs, axis=0).astype(dtype=np.float32, copy=False)
+        return x
+    def batch_predict(self, img_info_list, batch_size=16):
+        imgs = [item["wired_table_img"] for item in img_info_list]
+        imgs = self.list_2_batch(imgs, batch_size=batch_size)
+        label_res = []
+        with tqdm(total=len(img_info_list), desc="Table-wired/wireless cls predict", disable=True) as pbar:
+            for img_batch in imgs:
+                x = self.batch_preprocess(img_batch)
+                result = self.sess.run(None, {"x": x})
+                for img_res in result[0]:
+                    idx = np.argmax(img_res)
+                    conf = float(np.max(img_res))
+                    label_res.append((self.labels[idx],conf))
+                pbar.update(len(img_batch))
+            for img_info, (label, conf) in zip(img_info_list, label_res):
+                img_info['table_res']["cls_label"] = label
+                img_info['table_res']["cls_score"] = round(conf, 3)

+ 154 - 0
mineru/model/table/rec/RapidTable.py

@@ -0,0 +1,154 @@
+import html
+import os
+import time
+from pathlib import Path
+from typing import List
+
+import cv2
+import numpy as np
+from loguru import logger
+from rapid_table import ModelType, RapidTable, RapidTableInput
+from rapid_table.utils import RapidTableOutput
+from tqdm import tqdm
+
+from mineru.model.ocr.pytorch_paddle import PytorchPaddleOCR
+from mineru.utils.enum_class import ModelPath
+from mineru.utils.models_download_utils import auto_download_and_get_model_root_path
+
+
+def escape_html(input_string):
+    """Escape HTML Entities."""
+    return html.escape(input_string)
+
+
+class CustomRapidTable(RapidTable):
+    def __init__(self, cfg: RapidTableInput):
+        import logging
+        # 通过环境变量控制日志级别
+        logging.disable(logging.INFO)
+        super().__init__(cfg)
+    def __call__(self, img_contents, ocr_results=None, batch_size=1):
+        if not isinstance(img_contents, list):
+            img_contents = [img_contents]
+
+        s = time.perf_counter()
+
+        results = RapidTableOutput()
+
+        total_nums = len(img_contents)
+
+        with tqdm(total=total_nums, desc="Table-wireless Predict") as pbar:
+            for start_i in range(0, total_nums, batch_size):
+                end_i = min(total_nums, start_i + batch_size)
+
+                imgs = self._load_imgs(img_contents[start_i:end_i])
+
+                pred_structures, cell_bboxes = self.table_structure(imgs)
+                logic_points = self.table_matcher.decode_logic_points(pred_structures)
+
+                dt_boxes, rec_res = self.get_ocr_results(imgs, start_i, end_i, ocr_results)
+                pred_htmls = self.table_matcher(
+                    pred_structures, cell_bboxes, dt_boxes, rec_res
+                )
+
+                results.pred_htmls.extend(pred_htmls)
+                # 更新进度条
+                pbar.update(end_i - start_i)
+
+        elapse = time.perf_counter() - s
+        results.elapse = elapse / total_nums
+        return results
+
+
+class RapidTableModel():
+    def __init__(self, ocr_engine):
+        slanet_plus_model_path = os.path.join(
+            auto_download_and_get_model_root_path(ModelPath.slanet_plus),
+            ModelPath.slanet_plus,
+        )
+        input_args = RapidTableInput(
+            model_type=ModelType.SLANETPLUS,
+            model_dir_or_path=slanet_plus_model_path,
+            use_ocr=False
+        )
+        self.table_model = CustomRapidTable(input_args)
+        self.ocr_engine = ocr_engine
+
+    def predict(self, image, ocr_result=None):
+        bgr_image = cv2.cvtColor(np.asarray(image), cv2.COLOR_RGB2BGR)
+        # Continue with OCR on potentially rotated image
+
+        if not ocr_result:
+            raw_ocr_result = self.ocr_engine.ocr(bgr_image)[0]
+            # 分离边界框、文本和置信度
+            boxes = []
+            texts = []
+            scores = []
+            for item in raw_ocr_result:
+                if len(item) == 3:
+                    boxes.append(item[0])
+                    texts.append(escape_html(item[1]))
+                    scores.append(item[2])
+                elif len(item) == 2 and isinstance(item[1], tuple):
+                    boxes.append(item[0])
+                    texts.append(escape_html(item[1][0]))
+                    scores.append(item[1][1])
+            # 按照 rapid_table 期望的格式构建 ocr_results
+            ocr_result = [(boxes, texts, scores)]
+
+        if ocr_result:
+            try:
+                table_results = self.table_model(img_contents=np.asarray(image), ocr_results=ocr_result)
+                html_code = table_results.pred_htmls
+                table_cell_bboxes = table_results.cell_bboxes
+                logic_points = table_results.logic_points
+                elapse = table_results.elapse
+                return html_code, table_cell_bboxes, logic_points, elapse
+            except Exception as e:
+                logger.exception(e)
+
+        return None, None, None, None
+
+    def batch_predict(self, table_res_list: List[dict], batch_size: int = 4):
+        not_none_table_res_list = []
+        for table_res in table_res_list:
+            if table_res.get("ocr_result", None):
+                not_none_table_res_list.append(table_res)
+
+        if not_none_table_res_list:
+            img_contents = [table_res["table_img"] for table_res in not_none_table_res_list]
+            ocr_results = []
+            # ocr_results需要按照rapid_table期望的格式构建
+            for table_res in not_none_table_res_list:
+                raw_ocr_result = table_res["ocr_result"]
+                boxes = []
+                texts = []
+                scores = []
+                for item in raw_ocr_result:
+                    if len(item) == 3:
+                        boxes.append(item[0])
+                        texts.append(escape_html(item[1]))
+                        scores.append(item[2])
+                    elif len(item) == 2 and isinstance(item[1], tuple):
+                        boxes.append(item[0])
+                        texts.append(escape_html(item[1][0]))
+                        scores.append(item[1][1])
+                ocr_results.append((boxes, texts, scores))
+            table_results = self.table_model(img_contents=img_contents, ocr_results=ocr_results, batch_size=batch_size)
+
+            for i, result in enumerate(table_results.pred_htmls):
+                if result:
+                    not_none_table_res_list[i]['table_res']['html'] = result
+
+if __name__ == '__main__':
+    ocr_engine= PytorchPaddleOCR(
+            det_db_box_thresh=0.5,
+            det_db_unclip_ratio=1.6,
+            enable_merge_det_boxes=False,
+    )
+    table_model = RapidTableModel(ocr_engine)
+    img_path = Path(r"D:\project\20240729ocrtest\pythonProject\images\601c939cc6dabaf07af763e2f935f54896d0251f37cc47beb7fc6b069353455d.jpg")
+    image = cv2.imread(str(img_path))
+    html_code, table_cell_bboxes, logic_points, elapse = table_model.predict(image)
+    print(html_code)
+

+ 1 - 0
mineru/model/table/rec/__init__.py

@@ -0,0 +1 @@
+# Copyright (c) Opendatalab. All rights reserved.

+ 0 - 0
mineru/model/table/rec/slanet_plus/__init__.py


+ 212 - 0
mineru/model/table/rec/slanet_plus/main.py

@@ -0,0 +1,212 @@
+import os
+import copy
+import time
+import html
+from dataclasses import asdict, dataclass
+from pathlib import Path
+from typing import Dict, List, Optional, Tuple, Union
+
+import cv2
+import numpy as np
+from loguru import logger
+from tqdm import tqdm
+
+from .matcher import TableMatch
+from .table_structure import TableStructurer
+from mineru.utils.enum_class import ModelPath
+from mineru.utils.models_download_utils import auto_download_and_get_model_root_path
+
+
+@dataclass
+class RapidTableInput:
+    model_type: Optional[str] = "slanet_plus"
+    model_path: Union[str, Path, None, Dict[str, str]] = None
+    use_cuda: bool = False
+    device: str = "cpu"
+
+
+@dataclass
+class RapidTableOutput:
+    pred_html: Optional[str] = None
+    cell_bboxes: Optional[np.ndarray] = None
+    logic_points: Optional[np.ndarray] = None
+    elapse: Optional[float] = None
+
+
+class RapidTable:
+    def __init__(self, config: RapidTableInput):
+        self.table_structure = TableStructurer(asdict(config))
+        self.table_matcher = TableMatch()
+
+    def predict(
+        self,
+        img: np.ndarray,
+        ocr_result: List[Union[List[List[float]], str, str]] = None,
+    ) -> RapidTableOutput:
+        if ocr_result is None:
+            raise ValueError("OCR result is None")
+
+        s = time.perf_counter()
+        h, w = img.shape[:2]
+
+        dt_boxes, rec_res = self.get_boxes_recs(ocr_result, h, w)
+
+        pred_structures, cell_bboxes, _ = self.table_structure.process(
+            copy.deepcopy(img)
+        )
+
+        # 适配slanet-plus模型输出的box缩放还原
+        cell_bboxes = self.adapt_slanet_plus(img, cell_bboxes)
+
+        pred_html = self.table_matcher(pred_structures, cell_bboxes, dt_boxes, rec_res)
+
+        # 过滤掉占位的bbox
+        mask = ~np.all(cell_bboxes == 0, axis=1)
+        cell_bboxes = cell_bboxes[mask]
+
+        logic_points = self.table_matcher.decode_logic_points(pred_structures)
+        elapse = time.perf_counter() - s
+        return RapidTableOutput(pred_html, cell_bboxes, logic_points, elapse)
+
+    def batch_predict(
+        self,
+        images: List[np.ndarray],
+        ocr_results: List[List[Union[List[List[float]], str, str]]],
+        batch_size: int = 4,
+    ) -> List[RapidTableOutput]:
+        """批量处理图像"""
+        s = time.perf_counter()
+
+        batch_dt_boxes = []
+        batch_rec_res = []
+
+        for i, img in enumerate(images):
+            h, w = img.shape[:2]
+            dt_boxes, rec_res = self.get_boxes_recs(ocr_results[i], h, w)
+            batch_dt_boxes.append(dt_boxes)
+            batch_rec_res.append(rec_res)
+
+        # 批量表格结构识别
+        batch_results = self.table_structure.batch_process(images)
+
+        output_results = []
+        for i, (img, ocr_result, (pred_structures, cell_bboxes, _)) in enumerate(
+            zip(images, ocr_results, batch_results)
+        ):
+            # 适配slanet-plus模型输出的box缩放还原
+            cell_bboxes = self.adapt_slanet_plus(img, cell_bboxes)
+            pred_html = self.table_matcher(
+                pred_structures, cell_bboxes, batch_dt_boxes[i], batch_rec_res[i]
+            )
+            # 过滤掉占位的bbox
+            mask = ~np.all(cell_bboxes == 0, axis=1)
+            cell_bboxes = cell_bboxes[mask]
+
+            logic_points = self.table_matcher.decode_logic_points(pred_structures)
+            result = RapidTableOutput(pred_html, cell_bboxes, logic_points, 0)
+            output_results.append(result)
+
+        total_elapse = time.perf_counter() - s
+        for result in output_results:
+            result.elapse = total_elapse / len(output_results)
+
+        return output_results
+
+    def get_boxes_recs(
+        self, ocr_result: List[Union[List[List[float]], str, str]], h: int, w: int
+    ) -> Tuple[np.ndarray, Tuple[str, str]]:
+        dt_boxes, rec_res, scores = list(zip(*ocr_result))
+        rec_res = list(zip(rec_res, scores))
+
+        r_boxes = []
+        for box in dt_boxes:
+            box = np.array(box)
+            x_min = max(0, box[:, 0].min() - 1)
+            x_max = min(w, box[:, 0].max() + 1)
+            y_min = max(0, box[:, 1].min() - 1)
+            y_max = min(h, box[:, 1].max() + 1)
+            box = [x_min, y_min, x_max, y_max]
+            r_boxes.append(box)
+        dt_boxes = np.array(r_boxes)
+        return dt_boxes, rec_res
+
+    def adapt_slanet_plus(self, img: np.ndarray, cell_bboxes: np.ndarray) -> np.ndarray:
+        h, w = img.shape[:2]
+        resized = 488
+        ratio = min(resized / h, resized / w)
+        w_ratio = resized / (w * ratio)
+        h_ratio = resized / (h * ratio)
+        cell_bboxes[:, 0::2] *= w_ratio
+        cell_bboxes[:, 1::2] *= h_ratio
+        return cell_bboxes
+
+
+def escape_html(input_string):
+    """Escape HTML Entities."""
+    return html.escape(input_string)
+
+
+class RapidTableModel(object):
+    def __init__(self, ocr_engine):
+        slanet_plus_model_path = os.path.join(
+            auto_download_and_get_model_root_path(ModelPath.slanet_plus),
+            ModelPath.slanet_plus,
+        )
+        input_args = RapidTableInput(
+            model_type="slanet_plus", model_path=slanet_plus_model_path
+        )
+        self.table_model = RapidTable(input_args)
+        self.ocr_engine = ocr_engine
+
+    def predict(self, image, ocr_result=None):
+        bgr_image = cv2.cvtColor(np.asarray(image), cv2.COLOR_RGB2BGR)
+        # Continue with OCR on potentially rotated image
+
+        if not ocr_result:
+            ocr_result = self.ocr_engine.ocr(bgr_image)[0]
+            ocr_result = [
+                [item[0], escape_html(item[1][0]), item[1][1]]
+                for item in ocr_result
+                if len(item) == 2 and isinstance(item[1], tuple)
+            ]
+
+        if ocr_result:
+            try:
+                table_results = self.table_model.predict(np.asarray(image), ocr_result)
+                html_code = table_results.pred_html
+                table_cell_bboxes = table_results.cell_bboxes
+                logic_points = table_results.logic_points
+                elapse = table_results.elapse
+                return html_code, table_cell_bboxes, logic_points, elapse
+            except Exception as e:
+                logger.exception(e)
+
+        return None, None, None, None
+
+    def batch_predict(self, table_res_list: List[Dict], batch_size: int = 4) -> None:
+        """对传入的字典列表进行批量预测,无返回值"""
+
+        not_none_table_res_list = []
+        for table_res in table_res_list:
+            if table_res.get("ocr_result", None):
+                not_none_table_res_list.append(table_res)
+
+        with tqdm(total=len(not_none_table_res_list), desc="Table-wireless Predict") as pbar:
+            for index in range(0, len(not_none_table_res_list), batch_size):
+                batch_imgs = [
+                    cv2.cvtColor(np.asarray(not_none_table_res_list[i]["table_img"]), cv2.COLOR_RGB2BGR)
+                    for i in range(index, min(index + batch_size, len(not_none_table_res_list)))
+                ]
+                batch_ocrs = [
+                    not_none_table_res_list[i]["ocr_result"]
+                    for i in range(index, min(index + batch_size, len(not_none_table_res_list)))
+                ]
+                results = self.table_model.batch_predict(
+                    batch_imgs, batch_ocrs, batch_size=batch_size
+                )
+                for i, result in enumerate(results):
+                    if result.pred_html:
+                        not_none_table_res_list[index + i]['table_res']['html'] = result.pred_html
+
+                # 更新进度条
+                pbar.update(len(results))

Some files were not shown because too many files changed in this diff