首页 > Python资料 博客日记
全民上手大模型--ollama+langchain+通义千问零费用java+python跑通本机大模型
2024-07-28 19:00:05Python资料围观169次
前言
写本篇文章是因为我经历过了各种付费+测试之后很艰难想入手大模型,国内的同学学技术还是太困难了,但是看到市面上各种火爆,实在有按捺不住想体验,终于迎来了一个契机。
在此之前,应该大家都了解OpenAPI,确实强大,但是国内用户来说,有以下问题:
一、网络不通,这里还不是简单的翻墙的问题,是他的网站都不对中国大陆开放,政治因素就不谈了
二、贵这玩意其实是按调用次数收费的,厉害点的功能其实都要收费,还是美元
三、其实中文方面还是没有那么强了
基于这些因素,导致大模型的事情总是少数人在玩,没意思,今天我们要把价格打到零!!
契机
开源大模型运行平台
Ollama,这是是一个开源的大语言模型平台,它允许用户在本地环境中运行、创建和共享大型语言模型。Ollama提供了丰富的功能和特性,使得用户可以在自己的计算机上轻松地部署和运行大型语言模型。注意啦,是自己的机器就可以哦!
上链接 https://ollama.com/
中文大模型
阿里巴巴的通义千问,开源国产的,听得懂中文
上链接 https://github.com/QwenLM
用户友好API接口
langchain其实是一套规范化的API,实现了标准化对模型的集成、接入、组件化等工作,通过langchain用户可以很轻松打造属于自己的大模型产品。langchain很早就出来了,大模型出来的时候,因为对使用大模型的定制做了封装,也是一下子火爆起来了。
上链接 https://github.com/langchain-ai/langchain
到此为止,其实万事俱备,我们就是要通过ollama+langchain+通义千问搞一把自己的大模型。
安装ollama
下载并安装
现在官网其实没有那么多乱七八糟的,直接一进去就是一个下载按钮,点就是了
点进去下载安装包,即可mac,linux,windows都行
我的是苹果系统,上面提到说要升级macOS 11,我的是10.15.7没影响,可以运行。下载之后就是安装了,没啥门槛。
下载模型
进入终端
ollama run + 模型名
模型在官网上直接罗列了一批,每个模型都要点硬盘,大家按照自己的需求下载,没有列出来的,可以在模型仓库里面找
https://ollama.com/library
我们这次是要下载通义千问,可以去仓库里面搜索到
ollama run qwen
这个命令其实是运行对应模型的意思。在运行之前,如果本机没有下载的话会去仓库上下载模型,需要等等。
使用模型-调戏大模型
下载之后会帮我们运行起来,是一个命令行模式的交互式接口,我们就可以开始调戏我们的大模型啦。大概就是下面这样,
B:~ zhuxuemin$ ollama run qwen
>>> 你是谁呀
我是通义千问,是由阿里云开发的语言模型。我被设计成能够回答各种问题、提供信息和进行对话。如果您有任何问题或需要帮助,请随时告诉我,我会尽力提供支持。
>>> 给我做一首关于春天的诗,要求是7言律诗
春天的阳光明媚,
绿草如茵,鲜花盛开。
春风吹过田野,
稻谷摇曳生姿。
小鸟在树梢上欢快地歌唱,
春风轻轻地吹拂着它们的羽毛
不满意,再来一下
>>> 给我做一首关于春天的诗,要求是7言律诗
春风拂面轻,
绿草如茵春意浓。
桃花笑映朝霞红,
小鸟欢歌春色正。
春风吹过田野广,
稻谷摇曳生姿显。
春天是希望的季节,
让我们一起感受春的气息,感受生活的美好。
使用langchain跑起来
langchain是python的库,我们其实是希望按照我们的程序跑起来啦,这样子我们才可以放到微信里面,钉钉里面,或者嵌入到网站上面,变成美女客服啦。
环境准备
python开发要养成习惯,尽量使用隔离的环境去做项目,不然很多乱七八糟的报错说不清楚。
--安装虚拟环境
# 创建一个名为 llvm 的虚拟环境
python3 -m venv llvm
# 激活虚拟环境
source llvm/bin/activate
安装库
其实有了langchain就好了,但是后面运行代码的时候会提示你升级,一起给出来好了
pip install langchain
pip install -U langchain-community
注意了,其实我安装的时候毕竟慢,我就会尝试使用阿里云的pip仓库,但是我又不想改掉默认的配置,可以这样子安装:
pip install langchain --index-url https://mirrors.aliyun.com/pypi/simple
当然,我安装实际也没有那么完美,还是报了错greenlet包安装失败,我就手工安装一把。
pip install greenlet
代码跑起来
代码到还好,来一个例子跑起来:
from langchain.prompts import PromptTemplate
from langchain.chains import LLMChain
from langchain_community.llms import Ollama
prompt_template = "请写一首关于{product}的诗,我希望是七言律诗"
ollama_llm = Ollama(model="qwen:latest")
llm_chain = LLMChain(
llm = ollama_llm,
prompt = PromptTemplate.from_template(prompt_template)
)
result=llm_chain.invoke("春天")
print(result)
输出:
{'product': '春天', 'text': '春光融宇宙,万物皆春色。\n\n鸟语花香中,一树桃花映日红。\n'}
这样子一就整个流程跑通啦~~
使用langchain-java跑起来
我可是Java程序员,我知道看我博客的人肯定是Java同学比较多,大家看完之后肯定恨不得立马在自己的Spring项目里面run起来,可是搞来搞去都是python的,不慌,我们就用java跑起来。
当然,使用的项目自然是对应的java版本,想多研究的可以直接去看源码
上链接 https://github.com/HamaWhiteGG/langchain-java
构建maven工程
主要核心点是引入包,官网也说了,项目运行是建议jdk17以上,我们就直接在maven中指定好,我给出完整的文件,主打一个方便抄:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>llvm_client</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>io.github.hamawhitegg</groupId>
<artifactId>langchain-core</artifactId>
<version>0.2.1</version>
</dependency>
</dependencies>
</project>
例子源码里面都有的啦,拿过来稍微改改即可,上代码:
public class OllamaExample {
public static void main(String[] args) {
var llm = Ollama.builder()
.baseUrl("http://localhost:11434")
.model("qwen:latest")
.temperature(0f)
.build()
.init();
var result = llm.predict("给我写一首关于春天的诗,我希望是七言律诗");
System.out.println(result);
}
}
跑起来,嗯,效果还行:
后记
当然这个只是初步,我其实还测试了定制自己的大模型,后面加文章哈,如果中间碰到问题的话可以留言联系我,我都好说的,就这样~~
标签:
相关文章
最新发布
- 【Python】selenium安装+Microsoft Edge驱动器下载配置流程
- Python 中自动打开网页并点击[自动化脚本],Selenium
- Anaconda基础使用
- 【Python】成功解决 TypeError: ‘<‘ not supported between instances of ‘str’ and ‘int’
- manim边学边做--三维的点和线
- CPython是最常用的Python解释器之一,也是Python官方实现。它是用C语言编写的,旨在提供一个高效且易于使用的Python解释器。
- Anaconda安装配置Jupyter(2024最新版)
- Python中读取Excel最快的几种方法!
- Python某城市美食商家爬虫数据可视化分析和推荐查询系统毕业设计论文开题报告
- 如何使用 Python 批量检测和转换 JSONL 文件编码为 UTF-8
点击排行
- 版本匹配指南:Numpy版本和Python版本的对应关系
- 版本匹配指南:PyTorch版本、torchvision 版本和Python版本的对应关系
- Python 可视化 web 神器:streamlit、Gradio、dash、nicegui;低代码 Python Web 框架:PyWebIO
- 相关性分析——Pearson相关系数+热力图(附data和Python完整代码)
- Anaconda版本和Python版本对应关系(持续更新...)
- Python与PyTorch的版本对应
- Windows上安装 Python 环境并配置环境变量 (超详细教程)
- Python pyinstaller打包exe最完整教程