全民上手大模型--ollama+langchain+通义千问零费用java+python跑通本机大模型

本文涉及的产品
阿里云百炼推荐规格 ADB PostgreSQL,4核16GB 100GB 1个月
简介: 全民上手大模型--ollama+langchain+通义千问零费用java+python跑通本机大模型

开源大模型运行平台

Ollama,这是是一个开源的大语言模型平台,它允许用户在本地环境中运行、创建和共享大型语言模型。Ollama提供了丰富的功能和特性,使得用户可以在自己的计算机上轻松地部署和运行大型语言模型。注意啦,是自己的机器就可以哦!

中文大模型

阿里巴巴的通义千问,开源国产的,听得懂中文

用户友好API接口

langchain其实是一套规范化的API,实现了标准化对模型的集成、接入、组件化等工作,通过langchain用户可以很轻松打造属于自己的大模型产品。langchain很早就出来了,大模型出来的时候,因为对使用大模型的定制做了封装,也是一下子火爆起来了。

到此为止,其实万事俱备,我们就是要通过ollama+langchain+通义千问搞一把自己的大模型。

安装ollama

下载并安装

现在官网其实没有那么多乱七八糟的,直接一进去就是一个下载按钮,点就是了

点进去下载安装包,即可mac,linux,windows都行

我的是苹果系统,上面提到说要升级macOS 11,我的是10.15.7没影响,可以运行。下载之后就是安装了,没啥门槛。

下载模型

进入终端

ollama run + 模型名

模型在官网上直接罗列了一批,每个模型都要点硬盘,大家按照自己的需求下载,没有列出来的,可以在模型仓库里面找

我们这次是要下载通义千问,可以去仓库里面搜索到

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);
    }
}

跑起来,嗯,效果还行:


相关实践学习
阿里云百炼xAnalyticDB PostgreSQL构建AIGC应用
通过该实验体验在阿里云百炼中构建企业专属知识库构建及应用全流程。同时体验使用ADB-PG向量检索引擎提供专属安全存储,保障企业数据隐私安全。
AnalyticDB PostgreSQL 企业智能数据中台:一站式管理数据服务资产
企业在数据仓库之上可构建丰富的数据服务用以支持数据应用及业务场景;ADB PG推出全新企业智能数据平台,用以帮助用户一站式的管理企业数据服务资产,包括创建, 管理,探索, 监控等; 助力企业在现有平台之上快速构建起数据服务资产体系
目录
相关文章
|
4月前
|
前端开发 机器人 API
前端大模型入门(一):用 js+langchain 构建基于 LLM 的应用
本文介绍了大语言模型(LLM)的HTTP API流式调用机制及其在前端的实现方法。通过流式调用,服务器可以逐步发送生成的文本内容,前端则实时处理并展示这些数据块,从而提升用户体验和实时性。文章详细讲解了如何使用`fetch`发起流式请求、处理响应流数据、逐步更新界面、处理中断和错误,以及优化用户交互。流式调用特别适用于聊天机器人、搜索建议等应用场景,能够显著减少用户的等待时间,增强交互性。
859 2
|
3月前
|
人工智能 安全 Java
Java和Python在企业中的应用情况
Java和Python在企业中的应用情况
94 7
|
4月前
|
数据采集 缓存 Java
Python vs Java:爬虫任务中的效率比较
Python vs Java:爬虫任务中的效率比较
|
4月前
LangChain-11 Code Writing FunctionCalling 大模型通过编写代码完成需求 大模型计算加法
LangChain-11 Code Writing FunctionCalling 大模型通过编写代码完成需求 大模型计算加法
46 4
|
3月前
|
人工智能 API 开发工具
aisuite:吴恩达发布开源Python库,一个接口调用多个大模型
吴恩达发布的开源Python库aisuite,提供了一个统一的接口来调用多个大型语言模型(LLM)服务。支持包括OpenAI、Anthropic、Azure等在内的11个模型平台,简化了多模型管理和测试的工作,促进了人工智能技术的应用和发展。
187 1
aisuite:吴恩达发布开源Python库,一个接口调用多个大模型
|
3月前
|
Java 程序员 开发工具
在比较Java和Python哪个更易学
在比较Java和Python哪个更易学
49 4
|
3月前
|
Java 程序员 Python
Java和Python
Java和Python
34 2
|
4月前
LangChain-26 Custom Agent 自定义一个Agent并通过@tool绑定对应的工具 同时让大模型自己调用编写的@tools函数
LangChain-26 Custom Agent 自定义一个Agent并通过@tool绑定对应的工具 同时让大模型自己调用编写的@tools函数
134 3
LangChain-26 Custom Agent 自定义一个Agent并通过@tool绑定对应的工具 同时让大模型自己调用编写的@tools函数
|
4月前
|
机器学习/深度学习 人工智能 开发框架
解锁AI新纪元:LangChain保姆级RAG实战,助你抢占大模型发展趋势红利,共赴智能未来之旅!
【10月更文挑战第4天】本文详细介绍检索增强生成(RAG)技术的发展趋势及其在大型语言模型(LLM)中的应用优势,如知识丰富性、上下文理解和可解释性。通过LangChain框架进行实战演练,演示从知识库加载、文档分割、向量化到构建检索器的全过程,并提供示例代码。掌握RAG技术有助于企业在问答系统、文本生成等领域把握大模型的红利期,应对检索效率和模型融合等挑战。
270 14
|
4月前
|
人工智能 前端开发 JavaScript
前端大模型入门(二):掌握langchain的核心Runnable接口
Langchain.js 是 Langchain 框架的 JavaScript 版本,专为前端和后端 JavaScript 环境设计。最新 v0.3 版本引入了强大的 Runnable 接口,支持灵活的执行方式和异步操作,方便与不同模型和逻辑集成。本文将详细介绍 Runnable 接口,并通过实现自定义 Runnable 来帮助前端人员快速上手。