PyLMKit(1):一分钟构建你的大模型应用

大模型应用开发及大模型在工业等场景应用探索系列。

PyLMKit

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

1.快速安装

pip install -U pylmkit

2.功能

  • 角色扮演:通过设置角色模板并结合在线搜索、记忆和知识库功能,实现了典型的对话类的功能应用。

4bf8b0d5a958f470fbca9ce982bcde0d_640_wx_fmt=png&from=appmsg&wxfrom=5&wx_lazy=1&wx_co=1.png

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

3.快速开始

3.1.设置 API KEY

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

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

# 阿里-通义
DASHSCOPE_API_KEY = ""

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

# 清华-智谱AI
zhipu_apikey = ""

# 百川
baichuan_api_key = ""
baichuan_secret_key = ""

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

加载.env文件的方法如下(建议将.env文件放置在与您运行的.py文件相同的路径下)。

from dotenv import load_dotenv

# load .env
load_dotenv()
  • 另一种方法是通过os.environ进行配置,下面是一个例子:
import os


# openai
os.environ['openai_api_key'] = ""

# 百度
os.environ['qianfan_ak'] = ""
os.environ['qianfan_sk'] = ""

3.2.在Python中运行Demo

from dotenv import load_dotenv
from pylmkit.app import RolePlay
from pylmkit.llms import ChatOpenAI
from pylmkit.memory import MemoryHistoryLength
from pylmkit.llms import ChatQianfan


# load .env
load_dotenv()

# load llm model
model = ChatOpenAI()
# model = ChatQianfan(model="ERNIE-Bot-turbo")

# memory type
memory = MemoryHistoryLength(memory_length=500)

# 同时开启记忆、搜索功能
# rp = RolePlay(
#     role_template="{memory}\n {search}\n User question :{query}", 
#     llm_model=model,
#     memory=memory,
#     online_search_kwargs={'topk': 2},  # 搜索功能
# )

# 只开启记忆功能
rp = RolePlay(
    role_template="{memory}\n User question :{query}", 
    llm_model=model,
    memory=memory,
    online_search_kwargs={},
    return_language='中文'
)

while True:
    query = input("input...")
    response, refer = rp.invoke(query)
    print(response)
  • llm模型

LLM模型可以使用PyLMKit导入,也支持使用LangChain导入模型。导入其他模型例子:

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  # 阿里-通义
  • 角色模板

用户可根据自身情况调整角色模板。在模板中,{memory} 表示上下文记忆的位置,{search} 表示搜索引擎的内容,{query} 表示用户输入的问题。

  • 返回语言

设置为中文时,大模型回答问题返回的答案就以中文返回,反之为return_language=English时,就会以英文返回结果。

return_language='中文'
  • 返回值

该算法返回两个值:“response”和“reference”。“response”表示返回的内容,“reference”表示引用信息,例如使用搜索引擎时对网页的引用。

3.3.在Streamlit web中运行Demo

  • 步骤1: 创建一个新的.py文件,例如main.py。
from pylmkit import BaseWebUI
from dotenv import load_dotenv
from pylmkit.app import RolePlay
from pylmkit.llms import ChatOpenAI
from pylmkit.memory import MemoryHistoryLength
from pylmkit.llms import ChatQianfan


# load .env
load_dotenv()

# load llm model
model = ChatOpenAI()
# model = ChatQianfan(model="ERNIE-Bot-turbo")

# memory type
memory = MemoryHistoryLength(memory_length=500, streamlit_web=True)  # set streamlit_web=True

# roleplay: Only activate memory function.
rp = RolePlay(
    role_template="{memory}\n User question :{query}", 
    llm_model=model,
    memory=memory,
    online_search_kwargs={},
    return_language='中文'
)

# init web
web = BaseWebUI()
web.run(
    obj=rp.invoke,  # Designated main function.
    input_param=[{"label": "User input", "name": "query", "type": "chat"},  # type, chat text string bool float ...
                 ],
    output_param=[{'label': 'response content', 'name': 'ai', 'type': 'chat'},
                  {'label': 'refer info', 'name': 'refer', 'type': 'refer'}  # type, chat refer text string bool float ...
                  ]
)
  • 步骤2: 运行web程序

在与main.py相同目录的终端命令行中,输入

streamlit run main.py

运行后可以弹出对话页面,效果如下:
在这里插入图片描述

4.开源协议

Apache License Version 2.0

5.GitHub项目地址

觉得不错,可以帮忙点个 star 哦

GitHub - 52phm/pylmkit: pylmkit: Help users quickly build practical large model applications!

交流群:技术交流、功能更新通知、开发过程bug交流解答…

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

txhy2018

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值