Skip to main content

pylmkit: Help users quickly build practical large model applications!

Project description

PyLMKit

README(English version)

pylmkit 是一个旨在构建或集成具有实际价值的大模型(LM)应用程序的项目,旨在帮助用户快速构建符合其业务需求的应用程序。

快速安装

pip install -U pylmkit

文档

功能

  • 1.角色扮演:通过设置角色模板并结合在线搜索、记忆和知识库功能,实现了典型的对话类的功能应用。RolePlay角色扮演是一种基础功能,也是重要的功能。现在在各大大模型企业的APP中可以看到很多关于短视频文案、小红书文案、讲故事等这些功能的底层逻辑是基于角色扮演中设置不同的角色模板实现的。

PyLMKit RolePlay

  • 2.RAG(Retrieval-Augmented Generation,检索增强生成)是一种利用知识库检索的方法,提供与用户查询相关的内容,从而增强模型答案的准确性和特异性。RAG包括本地知识库、基于网络的知识库、记忆知识库和数据库知识库。

PyLMKit RAG

  • 其他功能正在更新中……

快速开始

PyLMKit QuickStart(English version)

PyLMKit 快速开始教程 (简体中文版)

LLM模型使用

PyLMKit目前集成了LLM模型分为:

  • API付费调用型
  • 本地开源模型下载部署

API 调用型

(1)首先配置好 API KEY,便于调用LLM模型。

一个方便的方法是创建一个新的.env文件,并在其中配置所有的API密钥信息,从而方便地使用不同的模型。.env文件的格式如下:

openai_api_key = ""  # OpenAI

QIANFAN_AK = ""  # 百度-千帆
QIANFAN_SK = ""

DASHSCOPE_API_KEY = ""  # 阿里-通义

spark_appid = ""  # 科大讯飞-星火
spark_apikey = ""
spark_apisecret = ""
spark_domain = "generalv3"  # generalv2

zhipu_apikey = ""  # 清华-智谱AI

baichuan_api_key = ""  # 百川
baichuan_secret_key = ""

hunyuan_app_id = ""  # 腾讯-混元
hunyuan_secret_id = ""
hunyuan_secret_key = ""

(2)LLM模型有两种调用方式:

  • 普通模式:invoke(query)
  • 流式模式:stream(query)

其中,query表示用户输入内容,简单例子如下:

from pylmkit.llms import ChatQianfan  # 百度-千帆
from pylmkit.llms import ChatSpark  # 讯飞-星火
from pylmkit.llms import ChatZhipu  # 清华-智谱
from pylmkit.llms import ChatHunyuan  # 腾讯-混元
from pylmkit.llms import ChatBaichuan  # 百川
from pylmkit.llms import ChatTongyi  # 阿里-通义
from pylmkit.llms import ChatOpenAI  # OpenAI
from dotenv import load_dotenv


# 加载 .env
load_dotenv()
# 加载模型
model = ChatQianfan()

# 普通模式
res = model.invoke(query="如何学习python?")
print(res)

# 流式模式
res = model.stream(query="如何学习python?")
for i in res:
    print(i)

本地开源模型部署和调用

预先安装 modelscope 依赖包

pip install modelscope
  • (1)开源模型下载

本案例采用一个很小的模型作为例子,让大多数人都能成功运行这个Demo。这个Demo在CPU环境也能成功运行,并且内存占用小,模型名称为 Qwen/Qwen-1_8B-Chat,更多 模型名称,可以去魔搭社区去找相应的模型,链接:魔搭社区-文本生成

from pylmkit.llms import LocalLLMModel

LocalLLMModel(model_path='Qwen/Qwen-1_8B-Chat',  # 模型名称
              tokenizer_kwargs={"revision": 'master'},  
              model_kwargs={"revision": 'master'},
              language='zh',  # zh 表示使用国内环境下载,速度快
)

下载好的效果如下:

local_model_download.png

  • (2)将下载模型及文件拷贝到自己想要的位置

一般采用上述下载方式,模型都会下载缓存到 C 盘,缓存的位置一般在:C:\Users\你的用户名\.cache\modelscope\hub, 将刚刚下载的qwen/Qwen-1_8B-Chat文件夹剪切保存到 D:/mycode_llm/ (这里举个例子,可以自定义)路径下,主要避免文件太大占满 C 盘。

  • (3)安装该开源模型的依赖库

这一步骤很重要,一方面要保证你的CUDA环境配置正确、内存足够,即硬件资源得够(当然,CPU环境也可以跑一些模型);另一方面则需要到开源模型的github或者根据其它教程,安装依赖包和推理加速等依赖文件。

一般在下载的模型文件夹里,会有一个README.md文件,这是一个关于模型基本信息和安装的说明书,不懂安装依赖库的同学可以详细参照着这个教程来安装,比如Qwen/Qwen-1_8B-Chat文件夹内容截图如下:

local_model_readme.png

这个步骤做好了,下一步骤才能正确运行模型,不然可能会遇到大量BUG,那么这个时候就需要一个一个排查和解决。

  • (4)加载本地模型并使用
from pylmkit.llms import LocalLLMModel


model = LocalLLMModel(model_path='D:/mycode_llm/qwen/Qwen-1_8B-Chat',  # 前面保存的模型文件路径
                      tokenizer_kwargs={"revision": 'master'},
                      model_kwargs={"revision": 'master'},
                      language='zh'
                      )

# 普通模式
res = model.invoke(query="如何学习python?")
print(">>>invoke ", res)

# 流式模式
res = model.stream(query="如何学习python?")
for i in res:
    print(">>>stream ", i)

效果如下

local_model_output.png

开源协议

Apache License Version 2.0

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pylmkit-0.0.18.tar.gz (33.9 kB view details)

Uploaded Source

File details

Details for the file pylmkit-0.0.18.tar.gz.

File metadata

  • Download URL: pylmkit-0.0.18.tar.gz
  • Upload date:
  • Size: 33.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.5

File hashes

Hashes for pylmkit-0.0.18.tar.gz
Algorithm Hash digest
SHA256 d6dada2f37668791ab7fe1b718eb47d2114343a7fc604ad8640541d0d763c805
MD5 8dce9ec8beb75caf74763b0066782f09
BLAKE2b-256 30ce40389037f8c7306fd522dcfd518fba16dd89ed2034726a4cf04a0ea470c0

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page