Skip to content

deku0818/langprompt-python

Repository files navigation

LangPrompt Python SDK

LangPrompt Python SDK 是 LangPrompt 的 Python 客户端库,提供简洁易用的 API 来管理和使用 AI Prompt。

项目简介

励志为开发者打造的 AI 友好型提示词管理一站式解决方案

提供提示词的版本管理、创建、迭代、批量测试与对比等完整工具链,让提示词工程像代码开发一样规范高效。

🎯 核心特性

  • 🔄 类 Git 版本控制 - 完整的提示词版本管理机制,每次修改可追溯
  • 🔐 企业级权限体系 - 多层级角色权限控制(Owner/Admin/Editor/Viewer)
  • 🚀 高性能 API - 异步架构,支持大规模并发请求
  • 📊 灵活元数据管理 - 支持自定义配置和标签系统
  • 🏷️ 多环境标签 - 内置 production/staging/development 环境管理
  • 🤖 AI 原生设计 - 为 AI 工作流深度优化

🔮 即将推出

结合大模型与 AI 编程工具(Claude Code、Codex 等),实现:

  • ✨ 自动化提示词优化建议
  • 📈 帮助模型以数据驱动的迭代决策
  • 🔍 每次改进有迹可循、有理可依
  • 🛠️ MCP 协议支持,无缝集成测试与创建工作流

核心概念

数据层级结构

项目 (Project)
 └── 提示词 (Prompt)
      └── 版本 (Version)

版本管理特性

LangPrompt 采用类似 Git 的版本管理机制:

  • 不可变字段contentversioncommit_messagecreated_at 一旦创建不可修改
  • 可变字段labelsmetadata 可以动态更新
  • 标签唯一性:同一提示词下,每个标签只能标记一个版本
  • 版本递增:自动管理版本号,确保历史完整性

权限体系

角色 权限范围
Owner 项目所有者,拥有所有权限包括项目删除
Admin 项目管理员,可管理成员和所有读写操作
Editor 编辑者,可创建和编辑提示词及版本
Viewer 查看者,仅可查看项目和提示词

安装

# 使用 pip 安装
pip install langprompt-python

# 使用 uv 安装(推荐)
uv pip install langprompt-python

快速开始

基础使用

from langprompt import LangPrompt

# 初始化客户端
client = LangPrompt(
    project_name="my-project",
    api_key="your-api-key"
)

# 获取提示词内容
content = client.prompts.get_prompt(
    prompt_name="greeting",
    label="production"
)

print(content)

异步使用

from langprompt import AsyncLangPrompt
import asyncio

async def main():
    # 直接创建客户端,无需 async with
    client = AsyncLangPrompt(
        project_name="my-project",
        api_key="your-api-key"
    )

    content = await client.prompts.get_prompt(
        prompt_name="greeting",
        label="production"
    )
    print(content)

    # 可选:显式关闭(自动清理会在程序退出时处理)
    # await client.close()

asyncio.run(main())

环境变量配置

export LANGPROMPT_PROJECT_NAME=my-project
export LANGPROMPT_API_KEY=your-api-key

然后无需参数初始化:

client = LangPrompt()  # 自动从环境变量读取配置

使用示例

获取项目信息

project = client.projects.get()
print(f"项目名称: {project.name}")

列出提示词

# 列出所有提示词(分页)
prompts = client.prompts.list(limit=20, offset=0)
print(f"总共 {prompts.total} 个提示词")

for prompt in prompts.items:
    print(f"- {prompt.name}")

按标签获取提示词

# 获取生产版本
version = client.prompts.get(
    prompt_name="greeting",
    label="production"
)

print(f"版本号: {version.version}")
print(f"内容: {version.content}")

按版本号获取

version = client.prompts.get(
    prompt_name="greeting",
    version=5
)

错误处理

from langprompt.exceptions import (
    NotFoundError,
    AuthenticationError,
    PermissionError,
)

try:
    content = client.prompts.get_prompt("greeting", label="production")
except NotFoundError:
    print("提示词不存在")
except AuthenticationError:
    print("认证失败")
except PermissionError:
    print("权限不足")

启用缓存

client = LangPrompt(
    project_name="my-project",
    api_key="your-api-key",
    enable_cache=True,    # 启用缓存(默认:False)
    cache_ttl=3600       # 缓存时间(秒)
)

开发指南

环境准备

# 克隆项目
git clone https://github.com/langprompt/langprompt-python.git
cd langprompt-python

# 安装依赖(使用 uv)
uv sync

# 或使用 pip
pip install -e ".[dev]"

运行测试

# 运行所有测试
pytest

# 运行特定测试
pytest tests/test_projects.py

# 查看覆盖率
pytest --cov=langprompt --cov-report=html

代码规范

# 格式化代码
ruff format .

# 代码检查
ruff check .

# 类型检查
mypy langprompt

贡献指南

欢迎贡献!请查看 CONTRIBUTING.md 了解详情。

贡献流程

  1. Fork 本项目
  2. 创建特性分支 (git checkout -b feature/amazing-feature)
  3. 提交更改 (git commit -m 'Add amazing feature')
  4. 推送到分支 (git push origin feature/amazing-feature)
  5. 提交 Pull Request

许可证

本项目采用 MIT 许可证 - 详见 LICENSE 文件

相关链接

⚠️注意

本项目是源于探索Vibe Coding的产物,超过99%的代码由AI编写。

此项目存在非常早期的阶段,请勿用于生产环境。

如有问题或建议,欢迎提交 Issue 或 Pull Request。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages