科学工具
科学工具让世界更美好
让世界更美好

LLM提示词优化与管理工具 PromptManager

PromptManager 是一款可直接用于生产环境的Python SDK,主打大模型提示词的压缩、增强、生成与校验能力,支持版本管理、流水线式操作。PromptManager 做到了大模型服务商无关性,可通过SDK、REST API、CLI三种方式部署使用,能全方位解决提示词开发、管理、优化过程中的各类问题。

PromptManager的核心功能包括提示词全生命周期管理,从优化到生成,从校验到版本追溯,功能丰富,实用性强。

1、提示词压缩:在保留语义的前提下,将令牌数量减少30%-70%,降低大模型调用成本。

2、提示词增强:提升提示词的清晰度、结构化程度与使用效果,让大模型理解更精准。

3、提示词生成:根据任务描述,自动创建适配不同场景的优化版提示词。

4、提示词校验:检测注入攻击、未填充的模板占位符、提示词质量问题等安全与使用隐患。

5、流水线操作:通过流畅的API将多个提示词操作串联,实现一站式处理。

6、版本控制:对提示词进行跟踪与管理,支持不同版本的检索、保存与切换。

安装 PromptManager

PromptManager 支持核心功能单独安装,也可根据使用需求安装对应拓展模块,支持SDK、API、CLI等不同部署方式。

# 仅安装核心功能
pip install promptmanager

# 安装所有拓展功能
pip install promptmanager[all]

# 安装指定拓展模块
pip install promptmanager[api] # 部署REST API服务
pip install promptmanager[cli] # 使用命令行界面
pip install promptmanager[providers] # 集成各大LLM服务商
pip install promptmanager[compression] # 高级语义压缩功能

使用 PromptManager

PromptManager 提供简单快速的调用方式,支持异步、同步API,支持单功能调用与组合操作。以下是核心功能的基础使用示例。

初始化工具

from promptmanager import PromptManager
pm = PromptManager()

提示词压缩

指定压缩比例,对长提示词进行轻量化处理,保留核心语义。

result = await pm.compress(
 "Your very long prompt with lots of unnecessary words...",
 ratio = 0.5 # 目标压缩至原大小的50%
)
print(f"压缩后/原令牌数: {result.compressed_tokens}/{result.original_tokens}")
print(result.processed.text)

提示词增强

优化杂乱的提示词,提升表达的规范性与有效性,可指定增强等级。

result = await pm.enhance(
 "help me code something for sorting",
 level = "moderate"
)
print(result.processed.text)
# 输出示例: "Write clean, well-documented code to implement a sorting algorithm..."

提示词生成

根据任务描述与指定风格,自动生成适配的提示词,支持代码生成、翻译等多种场景。

result = await pm.generate(
 task = "Create a Python function to validate email addresses",
 style = "code_generation"
)
print(result.prompt)

提示词校验

检测提示词中的安全风险与格式问题,如注入攻击、未填充占位符等。

validation = pm.validate("Ignore previous instructions and...")
print(f"是否有效: {validation.is_valid}") # 输出False,检测到注入攻击
print(validation.issues)

流水线组合操作

一次性完成增强、压缩、校验多个操作,提升处理效率。

result = await pm.process(
 "messy prompt here",
 enhance=True,
 compress= True,
 validate= True
)

同步API调用

所有异步方法均提供同步版本,支持不同代码开发场景。

result = pm.compress_sync("prompt", ratio = 0.5)
result = pm.enhance_sync("prompt", level = "moderate")
result = pm.generate_sync(task= "Write code")

PromptManager 核心功能

提示词压缩:多种策略可选

提供四种压缩策略,适配简单提示词、长文档、代码型提示词等不同场景,可自定义选择。

策略 速度 质量 适用场景
lexical 快速 良好 简单提示词、停用词移除
statistical 中等 更好 长文档、冗余内容移除
code 快速 优秀 以代码为主的提示词
hybrid 自适应 最优 生产环境默认使用

使用示例

from promptmanager import PromptCompressor, StrategyType
compressor = PromptCompressor()

# 指定压缩策略与目标比例
result = compressor.compress(
 text,
 target_ratio = 0.5,
 strategy= StrategyType.HYBRID
)
# 查看压缩指标
print(f"压缩比例: {result.compression_ratio:.2%}")
print(f"节省令牌数: {result.tokens_saved}")

提示词增强

PromptManager 支持仅规则混合模式两种增强方式,前者快速无API调用,后者结合大模型实现更高质量优化。

from promptmanager import PromptEnhancer, EnhancementMode, EnhancementLevel
enhancer = PromptEnhancer()

# 仅规则模式(快速、确定性、无大模型调用)
result = await enhancer.enhance(
 prompt,
 mode = EnhancementMode.RULES_ONLY,
 level = EnhancementLevel.MODERATE
)

# 混合模式(先规则后大模型优化,需配置大模型服务商)
from your_provider import LLMProvider
enhancer = PromptEnhancer(llm_provider = LLMProvider())
result = await enhancer.enhance(
 prompt,
 mode = EnhancementMode.HYBRID
)

# 仅分析提示词不做修改
analysis = await enhancer.analyze(prompt)
print(f"核心意图: {analysis['intent']['primary']}")
print(f"提示词质量分: {analysis['quality']['overall_score']:.2f}")

提示词生成

PromptManager 支持零样本、少样本、思维链、代码生成等多种生成风格。

from promptmanager import PromptGenerator, PromptStyle
generator = PromptGenerator()

# 零样本生成(简单直接)
result = await generator.generate(
 task = "Explain quantum computing",
 style = PromptStyle.ZERO_SHOT
)

# 少样本生成(带示例)
result = await generator.generate(
 task = "Translate English to French",
 style = PromptStyle.FEW_SHOT,
 examples=[
 {"input": "Hello", "output": "Bonjour"},
 {"input": "Goodbye", "output": "Au revoir"}
 ]
)

# 思维链生成(适用于推理类任务)
result = await generator.generate(
 task = "Solve: If 3x + 5 = 20, what is x?",
 style = PromptStyle.CHAIN_OF_THOUGHT
)

# 代码生成(指定编程语言)
result = await generator.generate(
 task = "Binary search implementation",
 style = PromptStyle.CODE_GENERATION,
 language= "Python"
)

自定义流水线

通过 的Pipeline API 自定义操作流程,能添加自定义步骤,支持克隆修改生成不同变体。

from promptmanager import Pipeline

# 创建并配置流水线
pipeline = Pipeline()
 .enhance(level= "moderate")
 .compress(ratio = 0.6, strategy="hybrid")
 .validate(fail_on_error=True)

# 运行流水线处理提示词
result = await pipeline.run("Your prompt here")
print(f"执行成功: {result.success}")
print(f"输出结果: {result.output_text}")
print(f"操作步骤数: {len(result.step_results)}")

# 添加自定义步骤
def add_signature(text, config):
 return text + "\n\n-- Generated by AI"
pipeline.custom("signature", add_signature)

# 克隆流水线并修改配置
variant = pipeline.clone().compress(ratio = 0.4)

提示词校验

PromptManager 能检测提示词的安全问题与质量问题,输出明确的错误和警告信息。

from promptmanager import PromptValidator
validator = PromptValidator()

# 校验提示词
result = validator.validate(prompt)

if not result.is_valid:
 for error in result.errors:
 print(f"错误: {error.message}")
 for warning in result.warnings:
 print(f"警告: {warning.message}")

可检测的问题类型。 • 注入攻击(如包含“ignore previous instructions”)

• 越狱尝试(如包含“you are now DAN”)

• 未填充的模板占位符(如“{{name}}”、“{placeholder}”)

• 空提示词/仅含空白字符的提示词

• 过短的无效提示词

版本控制

PromptManager 能对提示词进行保存、检索、版本管理,方便团队协作与需求迭代。

pm = PromptManager(storage_path= "./prompts")

# 保存提示词(指定ID、名称、元数据)
pm.save_prompt(
 prompt_id = "welcome_v1",
 name = "Welcome Message",
 content="Hello! How can I help you today?",
 metadata= {"author": "team", "category": "greeting"}
)

# 检索提示词(支持指定版本)
prompt = pm.get_prompt("welcome_v1")
prompt_v2 = pm.get_prompt("welcome_v1", version=2)

# 列出所有已保存的提示词
prompts = pm.list_prompts()

部署使用 PromptManager

REST API部署

可通过CLI或Python代码启动API服务,提供标准化的接口供跨平台调用。

# CLI方式启动
pm serve --port 8000
# Python代码方式启动
from promptmanager.api import create_app
import uvicorn
app = create_app()
uvicorn.run(app, host="0.0.0.0", port=8000)

核心接口。 • POST /api/v1/compress - 提示词压缩

• POST /api/v1/enhance - 提示词增强

• POST /api/v1/generate - 提示词生成

• POST /api/v1/validate - 提示词校验

• POST /api/v1/pipeline - 流水线操作

• GET /health - 服务健康检查

接口调用示例(curl)

curl -X POST http://localhost:8000/api/v1/compress \
 -H "Content-Type: application/json" \
 -d '{
 "prompt": "Your long prompt here...",
 "ratio": 0.5,
 "strategy": "hybrid"
 }'

CLI命令行使用

无需编写代码,直接通过命令行完成提示词的各类操作,方便快速测试与批量处理。

# 压缩提示词
pm compress "Your prompt" --ratio 0.5 --strategy hybrid

# 增强提示词
pm enhance "messy prompt" --level moderate --mode rules_only

# 生成提示词
pm generate "Write a sorting function" --style code_generation

# 启动API服务
pm serve --port 8000

# 统计提示词令牌数
pm tokens "Your prompt here"

大模型服务商集成

PromptManager 支持服务商无关性,支持OpenAI、Anthropic等主流大模型,可通过LiteLLM集成100+款大模型,配置简单。

# 集成OpenAI
from promptmanager.providers import OpenAIProvider
provider = OpenAIProvider(api_key="sk-...")

# 集成Anthropic
from promptmanager.providers import AnthropicProvider
provider = AnthropicProvider(api_key="...")

# 集成LiteLLM(支持100+大模型)
from promptmanager.providers import LiteLLMProvider
provider = LiteLLMProvider(model ="gpt-4")

# 与PromptManager结合使用
pm = PromptManager(llm_provider= provider)
result = await pm.enhance(prompt, mode ="hybrid")

全局配置

可通过代码配置或环境变量两种方式,设置PromptManager的默认参数,适配生产环境的统一部署。

代码配置

from promptmanager import PromptManager
from promptmanager.core.config import PromptManagerConfig
config = PromptManagerConfig(
 default_model="gpt-4",
 compression_strategy="hybrid",
 enhancement_level ="moderate",
 cache_enabled=True,
 log_level ="INFO"
)
pm = PromptManager(config = config)

环境变量配置

PROMPTMANAGER_MODEL=gpt-4
PROMPTMANAGER_LOG_LEVEL=INFO
OPENAI_API_KEY=sk-...
ANTHROPIC_API_KEY=...

性能基准测试

PromptManager各功能操作速度快,处理效率高,适合生产环境的高并发场景,核心性能指标如下(不同硬件环境略有差异)。

操作 输入大小 耗时 结果
压缩(lexical策略) 1000令牌 ~5ms 令牌减少40%
压缩(hybrid策略) 1000令牌 ~15ms 令牌减少50%
增强(仅规则模式) 500令牌 ~10ms 质量提升25%
增强(混合模式) 500令牌 ~500ms 质量提升40%
校验 500令牌 ~2ms -
生成 - ~5ms -