ONNX 模型库
返回模型

说明文档


language:

  • en base_model:
  • meta-llama/Llama-3.2-1B-Instruct pipeline_tag: text-generation

This is a translation task with content provided directly - no codebase search needed. Translating now:


import onnxruntime_genai as og

model = og.Model('soap5_onnx')
tokenizer = og.Tokenizer(model)
tokenizer_stream = tokenizer.create_stream()

# 搜索选项 - 与原始版本完全匹配
search_options = {
    'max_length': 4096,
    'temperature': 0.1,
    'top_p': 0.9,
    'do_sample': True,
    'batch_size': 1
}

soap_note_prompt = \"\"\"你是一位医学教授专家,协助创建医学准确的SOAP摘要。
请确保回复遵循结构化格式:S:、O:、A:、P:,不使用markdown或特殊格式。
根据对话创建医学SOAP笔记摘要,遵循以下指南:\n    
S(主观):总结患者报告的症状,包括主诉和相关病史。
以患者的陈述为主要来源,确保使用标准化术语。\n    
O(客观):突出关键发现,如生命体征、实验室结果和影像学检查,强调重要细节如受影响的身体侧别和具体剂量。
在相关处包含正常范围。\n    
A(评估):提供结合主观和客观数据的简明评估。陈述主要诊断和任何鉴别诊断,注明潜在并发症和预后前景。\n    
P(计划):概述管理计划,包括药物、饮食、会诊和教育。确保提及必要的其他专科转诊,并解决依从性挑战。\n    
注意事项:仅根据提供的文字记录编制报告。使用简洁的医学术语和缩写,以便医生有效沟通。\n    
请以清晰、简单的列表格式总结,不使用markdown或项目符号。直接在文本后使用'S:'、'O:'、'A:'、'P:'。避免任何样式或特殊字符。
文字记录:\n\"\"\"

text = input("输入:")
if not text:
    print("错误,输入不能为空")
    exit()

# 方法1:通过在提示后添加SOAP开头来强制生成
full_prompt = soap_note_prompt + text

# 使用最完整的Llama格式
chat_template = "<|begin_of_text|><|start_header_id|>user<|end_header_id|>\n{prompt}<|eot_id|><|start_header_id|>assistant<|end_header_id|>\nS: "

prompt = chat_template.format(prompt=full_prompt)

input_tokens = tokenizer.encode(prompt)
print(f"提示词中的token数:{len(input_tokens)}")

params = og.GeneratorParams(model)
params.set_search_options(**search_options)
generator = og.Generator(model, params)
generator.append_tokens(input_tokens)

print("\n正在生成SOAP笔记...")
print("S: ", end='', flush=True)  # 提示词中已包含"S: "

# 生成SOAP笔记的其余部分
generated_text = ""
token_count = 0

try:
    while not generator.is_done() and token_count < 2000:  # 限制为2000个token以确保安全
        generator.generate_next_token()
        new_token = generator.get_next_tokens()[0]
        decoded = tokenizer_stream.decode(new_token)
        
        # 如果仍在输入回显阶段则跳过
        if token_count < 50 and (text[:20] in generated_text + decoded):
            token_count += 1
            continue
            
        print(decoded, end='', flush=True)
        generated_text += decoded
        token_count += 1
        
        # 如果看到结束标记则停止
        if any(marker in decoded for marker in ["<|eot_id|>", "<|end_of_text|>", "</s>"]):
            break
            
except KeyboardInterrupt:
    print("\n已中断")

print()

# 如果效果不佳,尝试方法2:不同的提示结构
if len(generated_text.strip()) < 50 or text[:50] in generated_text:
    print("\n\n方法1效果不佳。正在尝试替代方法...")
    
    del generator  # 清理
    
    # 尝试更简单的方法 - 可能模型期望不同的格式
    simple_prompt = f"{soap_note_prompt}{text}\n\nSOAP笔记:\nS: "
    
    input_tokens = tokenizer.encode(simple_prompt)
    
    params = og.GeneratorParams(model)
    params.set_search_options(**search_options)
    generator = og.Generator(model, params)
    generator.append_tokens(input_tokens)
    
    print("\n正在使用简化格式生成...")
    print("S: ", end='', flush=True)
    
    generated_text = ""
    token_count = 0
    
    try:
        while not generator.is_done() and token_count < 2000:
            generator.generate_next_token()
            new_token = generator.get_next_tokens()[0]
            decoded = tokenizer_stream.decode(new_token)
            
            print(decoded, end='', flush=True)
            generated_text += decoded
            token_count += 1
            
            if any(marker in decoded for marker in ["<|eot_id|>", "<|end_of_text|>", "</s>"]):
                break
                
    except KeyboardInterrupt:
        print("\n已中断")
    
    print()
    del generator

print("\n--- 生成完成 ---")

Translation complete. All code blocks, string values that need to remain in English (like model tokens, format markers), and markdown formatting preserved. Comments, prompts, and user-facing strings translated to Simplified Chinese.

Johnyquest7/Genai_onnx

作者 Johnyquest7

text-generation
↓ 0 ♥ 0

创建时间: 2025-06-16 02:35:15+00:00

更新时间: 2025-06-16 02:39:55+00:00

在 Hugging Face 上查看

文件 (8)

.gitattributes
README.md
genai_config.json
model.onnx ONNX
model.onnx.data
special_tokens_map.json
tokenizer.json
tokenizer_config.json