gpts-builder


Namegpts-builder JSON
Version 0.1.15 PyPI version JSON
download
home_pagehttps://github.com/yancyuu/gpts_builder.git
SummaryA Python library for quickly building applications with large language models.
upload_time2024-05-02 18:35:29
maintainerNone
docs_urlNone
authoryancyyu
requires_python>=3.6
licenseMIT
keywords gpt large language models ai application builder
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # GPTS Builder

GPTS Builder 是一个高度模块化的 Python 库,专为快速构建和部署基于大型语言模型(如 GPT-3 或 GPT-4)的应用而设计。它提供了一系列工具,使开发者能够轻松管理会话、创建提示词模板、构建对话流程,并进行配置管理。

## 特点

- **上下文管理器**:有效管理对话状态,支持多种存储模式。
- **提示词模板构建器**:快速生成和管理提示词模板,提高对话生成的效率和质量。
- **大模型对话构建器**:继承自提示词模板构建器,提供高效的对话管理。
- **配置管理器**:灵活配置模型参数,包括模型名称和最大 Token 数量。
- **存储模式支持**:支持全局变量和 Redis 存储,确保灵活性和扩展性。

## 架构概览

GPTS Builder 采用模块化设计,主要包括以下四个核心组件:

1. **上下文管理器**:管理用户会话和状态,支持全局变量和 Redis 存储模式。
2. **提示词模板构建器**:构建和维护用于生成模型提示词的模板。
3. **大模型对话构建器**:基于提示词模板生成对话,支持快速部署和测试模型应用。
4. **配置管理器**:中心化管理所有模型和应用配置。

## 开发计划

| 功能                           | 状态        |
| ------------------------------ | ----------- |
| 上下文管理器                   | ✅           |
| 提示词模板构建器               | ✅           |
| 大模型对话构建器               | ✅           |
| 配置管理器                     | ✅           |
| Redis 存储模式支持             | ✅           |
| 全局变量存储模式               | ✅           |
| 支持流式输出                   | ☐           |
| 知识库集成                     | ☐           |
| GPTS缓存                       | ☐           |

> 知识库集成:将提供与大型知识库的集成,增强模型的应答能力。
> GPTS缓存:为了提高响应速度和减少API调用成本,将实现请求结果的缓存机制。

### 大模型对话构建器

大模型对话构建器继承自提示词模板构建器,集成模板管理与对话生成的功能,支持复杂的对话流程控制,使得生成的对话更加自然和流畅。

#### 可用类:
- `LLM`: 大模型对话管理。
- `LLMAsync`:  异步大模型对话管理。

```python
from gpts_builder.builder import LLM
```

### 上下文管理器

上下文管理器负责维护对话状态,确保跨会话的数据持久化和状态管理。支持以下存储模式:

- **全局变量模式**:适用于单用户或不需持久化的简单应用。
- **Redis 存储模式**:适用于分布式应用和需要高可用性及可扩展性的企业级应用。

#### 可用类:

- `SessionManager`: 标准会话管理。
- `SessionManagerAsync`: 异步会话管理,适用于异步应用。
- `RedisStorage`: 为使用 Redis 提供的会话存储解决方案。
- `RedisStorageAsync`: 异步Redis存储实现。

```python
from gpts_builder.session_manager import SessionManager
from gpts_builder.session_manager import SessionManagerAsync
from gpts_builder.session_manager.storage.redis_storage import RedisStorage
from gpts_builder.session_manager.storage.redis_storage_async import RedisStorageAsync
```

### 插件构建器
提示词模板构建器允许开发者快速创建和管理用于生成模型提示的模板,极大地提高对话内容的生成效率和质量。

#### 可用类:
- `BasePluginBuilder`: 构建插件基类。
- `KbPluginBuilder`: 知识插件构建器。

```python
from gpts_builder.builder.plugin.base_builder import BasePluginBuilder
from gpts_builder.builder.plugin.kb_builder import KbPluginBuilder
```

### 配置管理器

配置管理器提供一个中心化的接口来管理所有相关配置,支持实时更新配置如模型选择和 Token 数量限制等,确保所有依赖组件能即时反映这些更改。


- `ConfigManager`:  配置管理。

```python
from gpts_builder.config.config_manager import ConfigManager
```

## 安装

安装 GPTS Builder 非常简单,只需以下几步:

```bash
pip install gpts_builder
```
## 快速开始
以下是一个简单的示例,展示如何使用 GPTS Builder 来创建一个基于 GPT 模型的对话应用:

```python
Copy code
from gpts_builder.builder.llm.llm_builder import LLM
from gpts_builder.builder.plugin.kb_builder import KbPluginBuilder
from gpts_builder.config import config_manager

# 初始化配置

config_manager.base_url = "https://www.lazygpt.cn/api【改成你的大模型请求地址】"
config_manager.apikey = "写你的apikey"

# 初始化大模型对话构建器



llm = LLM(model="gpt-3.5-turbo")
llm.set_system("你是一个AI助理").set_prompt("测试回复").chat_completions()
```

## 贡献
欢迎通过 GitHub 提交 Pull Requests 或开 Issue 来贡献代码或提出功能请求。

## 许可证
本项目采用 MIT 许可证,详情请查阅 LICENSE 文件。


            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/yancyuu/gpts_builder.git",
    "name": "gpts-builder",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.6",
    "maintainer_email": null,
    "keywords": "GPT, large language models, AI, application builder",
    "author": "yancyyu",
    "author_email": "yancyyu.ok@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/53/cd/167d4acb154f9b6e8b525810cebcfb8e8b79e55a8da35b0c6e2c926acc0c/gpts_builder-0.1.15.tar.gz",
    "platform": null,
    "description": "# GPTS Builder\r\n\r\nGPTS Builder \u662f\u4e00\u4e2a\u9ad8\u5ea6\u6a21\u5757\u5316\u7684 Python \u5e93\uff0c\u4e13\u4e3a\u5feb\u901f\u6784\u5efa\u548c\u90e8\u7f72\u57fa\u4e8e\u5927\u578b\u8bed\u8a00\u6a21\u578b\uff08\u5982 GPT-3 \u6216 GPT-4\uff09\u7684\u5e94\u7528\u800c\u8bbe\u8ba1\u3002\u5b83\u63d0\u4f9b\u4e86\u4e00\u7cfb\u5217\u5de5\u5177\uff0c\u4f7f\u5f00\u53d1\u8005\u80fd\u591f\u8f7b\u677e\u7ba1\u7406\u4f1a\u8bdd\u3001\u521b\u5efa\u63d0\u793a\u8bcd\u6a21\u677f\u3001\u6784\u5efa\u5bf9\u8bdd\u6d41\u7a0b\uff0c\u5e76\u8fdb\u884c\u914d\u7f6e\u7ba1\u7406\u3002\r\n\r\n## \u7279\u70b9\r\n\r\n- **\u4e0a\u4e0b\u6587\u7ba1\u7406\u5668**\uff1a\u6709\u6548\u7ba1\u7406\u5bf9\u8bdd\u72b6\u6001\uff0c\u652f\u6301\u591a\u79cd\u5b58\u50a8\u6a21\u5f0f\u3002\r\n- **\u63d0\u793a\u8bcd\u6a21\u677f\u6784\u5efa\u5668**\uff1a\u5feb\u901f\u751f\u6210\u548c\u7ba1\u7406\u63d0\u793a\u8bcd\u6a21\u677f\uff0c\u63d0\u9ad8\u5bf9\u8bdd\u751f\u6210\u7684\u6548\u7387\u548c\u8d28\u91cf\u3002\r\n- **\u5927\u6a21\u578b\u5bf9\u8bdd\u6784\u5efa\u5668**\uff1a\u7ee7\u627f\u81ea\u63d0\u793a\u8bcd\u6a21\u677f\u6784\u5efa\u5668\uff0c\u63d0\u4f9b\u9ad8\u6548\u7684\u5bf9\u8bdd\u7ba1\u7406\u3002\r\n- **\u914d\u7f6e\u7ba1\u7406\u5668**\uff1a\u7075\u6d3b\u914d\u7f6e\u6a21\u578b\u53c2\u6570\uff0c\u5305\u62ec\u6a21\u578b\u540d\u79f0\u548c\u6700\u5927 Token \u6570\u91cf\u3002\r\n- **\u5b58\u50a8\u6a21\u5f0f\u652f\u6301**\uff1a\u652f\u6301\u5168\u5c40\u53d8\u91cf\u548c Redis \u5b58\u50a8\uff0c\u786e\u4fdd\u7075\u6d3b\u6027\u548c\u6269\u5c55\u6027\u3002\r\n\r\n## \u67b6\u6784\u6982\u89c8\r\n\r\nGPTS Builder \u91c7\u7528\u6a21\u5757\u5316\u8bbe\u8ba1\uff0c\u4e3b\u8981\u5305\u62ec\u4ee5\u4e0b\u56db\u4e2a\u6838\u5fc3\u7ec4\u4ef6\uff1a\r\n\r\n1. **\u4e0a\u4e0b\u6587\u7ba1\u7406\u5668**\uff1a\u7ba1\u7406\u7528\u6237\u4f1a\u8bdd\u548c\u72b6\u6001\uff0c\u652f\u6301\u5168\u5c40\u53d8\u91cf\u548c Redis \u5b58\u50a8\u6a21\u5f0f\u3002\r\n2. **\u63d0\u793a\u8bcd\u6a21\u677f\u6784\u5efa\u5668**\uff1a\u6784\u5efa\u548c\u7ef4\u62a4\u7528\u4e8e\u751f\u6210\u6a21\u578b\u63d0\u793a\u8bcd\u7684\u6a21\u677f\u3002\r\n3. **\u5927\u6a21\u578b\u5bf9\u8bdd\u6784\u5efa\u5668**\uff1a\u57fa\u4e8e\u63d0\u793a\u8bcd\u6a21\u677f\u751f\u6210\u5bf9\u8bdd\uff0c\u652f\u6301\u5feb\u901f\u90e8\u7f72\u548c\u6d4b\u8bd5\u6a21\u578b\u5e94\u7528\u3002\r\n4. **\u914d\u7f6e\u7ba1\u7406\u5668**\uff1a\u4e2d\u5fc3\u5316\u7ba1\u7406\u6240\u6709\u6a21\u578b\u548c\u5e94\u7528\u914d\u7f6e\u3002\r\n\r\n## \u5f00\u53d1\u8ba1\u5212\r\n\r\n| \u529f\u80fd                           | \u72b6\u6001        |\r\n| ------------------------------ | ----------- |\r\n| \u4e0a\u4e0b\u6587\u7ba1\u7406\u5668                   | \u2705           |\r\n| \u63d0\u793a\u8bcd\u6a21\u677f\u6784\u5efa\u5668               | \u2705           |\r\n| \u5927\u6a21\u578b\u5bf9\u8bdd\u6784\u5efa\u5668               | \u2705           |\r\n| \u914d\u7f6e\u7ba1\u7406\u5668                     | \u2705           |\r\n| Redis \u5b58\u50a8\u6a21\u5f0f\u652f\u6301             | \u2705           |\r\n| \u5168\u5c40\u53d8\u91cf\u5b58\u50a8\u6a21\u5f0f               | \u2705           |\r\n| \u652f\u6301\u6d41\u5f0f\u8f93\u51fa                   | \u2610           |\r\n| \u77e5\u8bc6\u5e93\u96c6\u6210                     | \u2610           |\r\n| GPTS\u7f13\u5b58                       | \u2610           |\r\n\r\n> \u77e5\u8bc6\u5e93\u96c6\u6210\uff1a\u5c06\u63d0\u4f9b\u4e0e\u5927\u578b\u77e5\u8bc6\u5e93\u7684\u96c6\u6210\uff0c\u589e\u5f3a\u6a21\u578b\u7684\u5e94\u7b54\u80fd\u529b\u3002\r\n> GPTS\u7f13\u5b58\uff1a\u4e3a\u4e86\u63d0\u9ad8\u54cd\u5e94\u901f\u5ea6\u548c\u51cf\u5c11API\u8c03\u7528\u6210\u672c\uff0c\u5c06\u5b9e\u73b0\u8bf7\u6c42\u7ed3\u679c\u7684\u7f13\u5b58\u673a\u5236\u3002\r\n\r\n### \u5927\u6a21\u578b\u5bf9\u8bdd\u6784\u5efa\u5668\r\n\r\n\u5927\u6a21\u578b\u5bf9\u8bdd\u6784\u5efa\u5668\u7ee7\u627f\u81ea\u63d0\u793a\u8bcd\u6a21\u677f\u6784\u5efa\u5668\uff0c\u96c6\u6210\u6a21\u677f\u7ba1\u7406\u4e0e\u5bf9\u8bdd\u751f\u6210\u7684\u529f\u80fd\uff0c\u652f\u6301\u590d\u6742\u7684\u5bf9\u8bdd\u6d41\u7a0b\u63a7\u5236\uff0c\u4f7f\u5f97\u751f\u6210\u7684\u5bf9\u8bdd\u66f4\u52a0\u81ea\u7136\u548c\u6d41\u7545\u3002\r\n\r\n#### \u53ef\u7528\u7c7b\uff1a\r\n- `LLM`: \u5927\u6a21\u578b\u5bf9\u8bdd\u7ba1\u7406\u3002\r\n- `LLMAsync`:  \u5f02\u6b65\u5927\u6a21\u578b\u5bf9\u8bdd\u7ba1\u7406\u3002\r\n\r\n```python\r\nfrom gpts_builder.builder import LLM\r\n```\r\n\r\n### \u4e0a\u4e0b\u6587\u7ba1\u7406\u5668\r\n\r\n\u4e0a\u4e0b\u6587\u7ba1\u7406\u5668\u8d1f\u8d23\u7ef4\u62a4\u5bf9\u8bdd\u72b6\u6001\uff0c\u786e\u4fdd\u8de8\u4f1a\u8bdd\u7684\u6570\u636e\u6301\u4e45\u5316\u548c\u72b6\u6001\u7ba1\u7406\u3002\u652f\u6301\u4ee5\u4e0b\u5b58\u50a8\u6a21\u5f0f\uff1a\r\n\r\n- **\u5168\u5c40\u53d8\u91cf\u6a21\u5f0f**\uff1a\u9002\u7528\u4e8e\u5355\u7528\u6237\u6216\u4e0d\u9700\u6301\u4e45\u5316\u7684\u7b80\u5355\u5e94\u7528\u3002\r\n- **Redis \u5b58\u50a8\u6a21\u5f0f**\uff1a\u9002\u7528\u4e8e\u5206\u5e03\u5f0f\u5e94\u7528\u548c\u9700\u8981\u9ad8\u53ef\u7528\u6027\u53ca\u53ef\u6269\u5c55\u6027\u7684\u4f01\u4e1a\u7ea7\u5e94\u7528\u3002\r\n\r\n#### \u53ef\u7528\u7c7b\uff1a\r\n\r\n- `SessionManager`: \u6807\u51c6\u4f1a\u8bdd\u7ba1\u7406\u3002\r\n- `SessionManagerAsync`: \u5f02\u6b65\u4f1a\u8bdd\u7ba1\u7406\uff0c\u9002\u7528\u4e8e\u5f02\u6b65\u5e94\u7528\u3002\r\n- `RedisStorage`: \u4e3a\u4f7f\u7528 Redis \u63d0\u4f9b\u7684\u4f1a\u8bdd\u5b58\u50a8\u89e3\u51b3\u65b9\u6848\u3002\r\n- `RedisStorageAsync`: \u5f02\u6b65Redis\u5b58\u50a8\u5b9e\u73b0\u3002\r\n\r\n```python\r\nfrom gpts_builder.session_manager import SessionManager\r\nfrom gpts_builder.session_manager import SessionManagerAsync\r\nfrom gpts_builder.session_manager.storage.redis_storage import RedisStorage\r\nfrom gpts_builder.session_manager.storage.redis_storage_async import RedisStorageAsync\r\n```\r\n\r\n### \u63d2\u4ef6\u6784\u5efa\u5668\r\n\u63d0\u793a\u8bcd\u6a21\u677f\u6784\u5efa\u5668\u5141\u8bb8\u5f00\u53d1\u8005\u5feb\u901f\u521b\u5efa\u548c\u7ba1\u7406\u7528\u4e8e\u751f\u6210\u6a21\u578b\u63d0\u793a\u7684\u6a21\u677f\uff0c\u6781\u5927\u5730\u63d0\u9ad8\u5bf9\u8bdd\u5185\u5bb9\u7684\u751f\u6210\u6548\u7387\u548c\u8d28\u91cf\u3002\r\n\r\n#### \u53ef\u7528\u7c7b\uff1a\r\n- `BasePluginBuilder`: \u6784\u5efa\u63d2\u4ef6\u57fa\u7c7b\u3002\r\n- `KbPluginBuilder`: \u77e5\u8bc6\u63d2\u4ef6\u6784\u5efa\u5668\u3002\r\n\r\n```python\r\nfrom gpts_builder.builder.plugin.base_builder import BasePluginBuilder\r\nfrom gpts_builder.builder.plugin.kb_builder import KbPluginBuilder\r\n```\r\n\r\n### \u914d\u7f6e\u7ba1\u7406\u5668\r\n\r\n\u914d\u7f6e\u7ba1\u7406\u5668\u63d0\u4f9b\u4e00\u4e2a\u4e2d\u5fc3\u5316\u7684\u63a5\u53e3\u6765\u7ba1\u7406\u6240\u6709\u76f8\u5173\u914d\u7f6e\uff0c\u652f\u6301\u5b9e\u65f6\u66f4\u65b0\u914d\u7f6e\u5982\u6a21\u578b\u9009\u62e9\u548c Token \u6570\u91cf\u9650\u5236\u7b49\uff0c\u786e\u4fdd\u6240\u6709\u4f9d\u8d56\u7ec4\u4ef6\u80fd\u5373\u65f6\u53cd\u6620\u8fd9\u4e9b\u66f4\u6539\u3002\r\n\r\n\r\n- `ConfigManager`:  \u914d\u7f6e\u7ba1\u7406\u3002\r\n\r\n```python\r\nfrom gpts_builder.config.config_manager import ConfigManager\r\n```\r\n\r\n## \u5b89\u88c5\r\n\r\n\u5b89\u88c5 GPTS Builder \u975e\u5e38\u7b80\u5355\uff0c\u53ea\u9700\u4ee5\u4e0b\u51e0\u6b65\uff1a\r\n\r\n```bash\r\npip install gpts_builder\r\n```\r\n## \u5feb\u901f\u5f00\u59cb\r\n\u4ee5\u4e0b\u662f\u4e00\u4e2a\u7b80\u5355\u7684\u793a\u4f8b\uff0c\u5c55\u793a\u5982\u4f55\u4f7f\u7528 GPTS Builder \u6765\u521b\u5efa\u4e00\u4e2a\u57fa\u4e8e GPT \u6a21\u578b\u7684\u5bf9\u8bdd\u5e94\u7528\uff1a\r\n\r\n```python\r\nCopy code\r\nfrom gpts_builder.builder.llm.llm_builder import LLM\r\nfrom gpts_builder.builder.plugin.kb_builder import KbPluginBuilder\r\nfrom gpts_builder.config import config_manager\r\n\r\n# \u521d\u59cb\u5316\u914d\u7f6e\r\n\r\nconfig_manager.base_url = \"https://www.lazygpt.cn/api\u3010\u6539\u6210\u4f60\u7684\u5927\u6a21\u578b\u8bf7\u6c42\u5730\u5740\u3011\"\r\nconfig_manager.apikey = \"\u5199\u4f60\u7684apikey\"\r\n\r\n# \u521d\u59cb\u5316\u5927\u6a21\u578b\u5bf9\u8bdd\u6784\u5efa\u5668\r\n\r\n\r\n\r\nllm = LLM(model=\"gpt-3.5-turbo\")\r\nllm.set_system(\"\u4f60\u662f\u4e00\u4e2aAI\u52a9\u7406\").set_prompt(\"\u6d4b\u8bd5\u56de\u590d\").chat_completions()\r\n```\r\n\r\n## \u8d21\u732e\r\n\u6b22\u8fce\u901a\u8fc7 GitHub \u63d0\u4ea4 Pull Requests \u6216\u5f00 Issue \u6765\u8d21\u732e\u4ee3\u7801\u6216\u63d0\u51fa\u529f\u80fd\u8bf7\u6c42\u3002\r\n\r\n## \u8bb8\u53ef\u8bc1\r\n\u672c\u9879\u76ee\u91c7\u7528 MIT \u8bb8\u53ef\u8bc1\uff0c\u8be6\u60c5\u8bf7\u67e5\u9605 LICENSE \u6587\u4ef6\u3002\r\n\r\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "A Python library for quickly building applications with large language models.",
    "version": "0.1.15",
    "project_urls": {
        "Homepage": "https://github.com/yancyuu/gpts_builder.git"
    },
    "split_keywords": [
        "gpt",
        " large language models",
        " ai",
        " application builder"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2549acb4c57271694eece7452fa49efdef9910d1599d2023d296245b9d13a30d",
                "md5": "9d396060b19fb5851689d5cb69b2c003",
                "sha256": "5779776e73e432459981f8bcf7b6b63b06590f1d66773f7dbe24a367c5a3f9a4"
            },
            "downloads": -1,
            "filename": "gpts_builder-0.1.15-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "9d396060b19fb5851689d5cb69b2c003",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.6",
            "size": 30620,
            "upload_time": "2024-05-02T18:35:27",
            "upload_time_iso_8601": "2024-05-02T18:35:27.051797Z",
            "url": "https://files.pythonhosted.org/packages/25/49/acb4c57271694eece7452fa49efdef9910d1599d2023d296245b9d13a30d/gpts_builder-0.1.15-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "53cd167d4acb154f9b6e8b525810cebcfb8e8b79e55a8da35b0c6e2c926acc0c",
                "md5": "8ed42dc40682a040d5690b9c3be2337e",
                "sha256": "9107cb3d675f1fcc2652aa91c97d439c269acd64504c2e442d21d6502934b4ad"
            },
            "downloads": -1,
            "filename": "gpts_builder-0.1.15.tar.gz",
            "has_sig": false,
            "md5_digest": "8ed42dc40682a040d5690b9c3be2337e",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.6",
            "size": 22955,
            "upload_time": "2024-05-02T18:35:29",
            "upload_time_iso_8601": "2024-05-02T18:35:29.421882Z",
            "url": "https://files.pythonhosted.org/packages/53/cd/167d4acb154f9b6e8b525810cebcfb8e8b79e55a8da35b0c6e2c926acc0c/gpts_builder-0.1.15.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-05-02 18:35:29",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "yancyuu",
    "github_project": "gpts_builder",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "gpts-builder"
}
        
Elapsed time: 0.24190s