PyLMKit(6):大模型使用(API型和本地开源模型)

日期:2023-12-6

PyLMKit目前集成了LLM模型有两种类型:

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

1.API型LLM模型使用教程

1.1.申请 API KEY

根据你想使用的大模型的官网,注册账号,并申请API KEY,如果需要付费调用,那么还需要进行充值或开通相应服务。

1.2.配置 API KEY

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

python 复制代码
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 = ""

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

python 复制代码
from dotenv import load_dotenv

# load .env
load_dotenv()

(2)另一种方法是通过os.environ进行配置,下面是一个例子:

python 复制代码
import os


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

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

1.3.模型调用

PyLMKit支持两种调用方式:

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

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

python 复制代码
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)

2.本地开源LLM模型部署和调用

2.1.开源模型下载

本案例采用一个很小的模型作为例子,让大多数人都能成功运行这个Demo。这个Demo在CPU环境也能成功运行,并且内存占用小,模型名称为 Qwen/Qwen-1_8B-Chat,更多

模型名称,可以去魔搭社区去找相应的模型,链接:魔搭社区-文本生成

预先安装 modelscope 依赖包

bash 复制代码
pip install modelscope

下载指定开源模型

python 复制代码
from pylmkit.llms import LocalLLMModel

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

下载好的效果如下:

2.2.拷贝文件夹到指定位置

将下载模型及文件拷贝到自己想要的位置。一般采用上述下载方式,模型都会下载缓存到 C 盘,缓存的位置一般在:C:\Users\你的用户名\.cache\modelscope\hub

将刚刚下载的qwen/Qwen-1_8B-Chat文件夹剪切保存到 D:/mycode_llm/ (这里举个例子,可以自定义)路径下,主要避免文件太大占满 C 盘。

2.3.安装该开源模型的依赖库

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

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

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

2.4.加载本地模型并使用

python 复制代码
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)

效果如下

相关推荐
遇码27 分钟前
大语言模型开发框架——LangChain
人工智能·语言模型·langchain·llm·大模型开发·智能体
*星星之火*3 小时前
【GPT入门】第33 课 一文吃透 LangChain:chain 结合 with_fallbacks ([]) 的实战指南
gpt·langchain
你一定走了很远的路吧4 小时前
DeepSeek与ChatGPT的优势对比:选择合适的工具来提升工作效率
ai·chatgpt
碧海饮冰13 小时前
LangChain/Eliza框架在使用场景上的异同,Eliza通过配置实现功能扩展的例子
langchain·eliza
碣石潇湘无限路15 小时前
【奇点时刻】GPT-4o新生图特性深度洞察报告
人工智能·经验分享·chatgpt·gpt4o·新生图特性
姚瑞南17 小时前
从模糊感知到量化评估:构建一个Prompt打分工具
人工智能·自然语言处理·chatgpt·prompt·aigc
鹿导的通天塔20 小时前
「两步式AI阅读法」:让ChatGPT成为你的专属摘要助手
chatgpt
网络研究院21 小时前
ChatGPT 的新图像生成器非常擅长伪造收据
网络·人工智能·安全·chatgpt·风险·技术·欺诈
HeteroCat1 天前
OpenAI 官方学院 -- 提示词课程要点
人工智能·chatgpt
白雪讲堂2 天前
AISEO (GEO )中的知识图谱
人工智能·chatgpt·知识图谱