首页 > 其他分享 >零基础手搓自己的专属AI应用

零基础手搓自己的专属AI应用

时间:2024-04-28 09:01:22浏览次数:23  
标签:专属 AI 模型 API 应用 import model ollama

https://mp.weixin.qq.com/s/8Hg42KyW1Xklw-8gkDvjmw

 

 

ONE. 如何入门?

 

大模型编程通常使用以下两种方法:

  1. 通过大模型发布的 API ,您将根据官方文档的调用格式,将提示词通过网络发送给大模型。

     

  2. 通过一些封装好的框架进行调用。

  • Langchain/LlamaIndex。Langchain 支持 Python 比较通用的 library
  • Semantic Kernel。Semantic Kernel 是 Microsoft 提供的一个 library,支持 C#、Python 和 Java 语言。

先通过大模型的API创建人生中第一个大模型应用,这里用到的是ChatGLM-4。

安装 智谱AI 

有许多 libraries 可用于与 ChatGLM 交互。还可以使用不同的编程语言,如 C#、Python、JavaScript、Java 等。我们选择使用 Python 库,通过 pip 来安装。

pip install --upgrade zhipuai

 

添加 API key

API 就像您的登录密码,您需要告诉大模型谁在调用,通过管理后台可以看到您的API,直接复制。

图片

 

复制 Key 后,是时候创建您的第一个文本生成应用程序了。把复制的 API Key 粘贴到下面代码的api_key后面,保存并执行:

from zhipuai import ZhipuAIclient = ZhipuAI(api_key="") # 填写您自己的APIKeyresponse = client.chat.completions.create(    model="glm-4",  # 填写需要调用的模型名称    messages=[        {"role": "user", "content": "作为一名营销专家,请为我的产品创作一个吸引人的slogan"},        {"role": "assistant", "content": "当然,为了创作一个吸引人的slogan,请告诉我一些关于您产品的信息"},        {"role": "user", "content": "智谱AI开放平台"},        {"role": "assistant", "content": "智启未来,谱绘无限一智谱AI,让创新触手可及!"},        {"role": "user", "content": "创造一个更精准、吸引人的slogan"}    ],)print(response.choices[0].message)

 

OK,我们已经成功创建第一个AI应用了。

图片

 

TWO.  通过LangChain打造AI应用

 

除了大模型官方提供的API以外,还可以通过一些框架调用大模型,这样的好处是我们通过一套代码就可以调用不同的大模型。

 

pip install --upgrade langchain

 

同样也需要先复制好API Key,接下来用几行代码就可以搞定


from langchain_community.chat_models import ChatZhipuAIllm = ChatZhipuAI(    api_key="...",    model_name="glm-3-turbo",    temperature=0.5,)
llm.invoke("创造一个更精准、吸引人的slogan")


还可以使用提示词模板(具体内容可以看上一课),通过链的技术将不同组件串在一起。

from langchain_community.chat_models import ChatZhipuAIfrom langchain_core.prompts import ChatPromptTemplate
llm = ChatZhipuAI( api_key="...", model_name="glm-3-turbo", temperature=0.5,)
prompt = ChatPromptTemplate.from_messages([ ("system", "您是世界级的技术文档编写者。"), ("user", "{input}")])
chain = prompt | llm chain.invoke({"input": "创造一个更精准、吸引人的slogan"})

图片

 

THREE.  打造本地的专属AI应用

 

通过API的方式确实比较方便,但是也有一个弊端,就是费用问题。跟网页版不同,通过API的方式一般都是收费的,并且是按照token计费,提问和回答的都会算费用。

 

所以,我们可以采用ollama的方式运行本地大模型,零代码运行ollama的集成方式可以参考这篇文章。不会编程?笔记本也可以免费构建自己的专属个人/企业知识库

 

ollama直接下载安装即可,安装完成后在命令行里面执行这个命令,可以下载最近爆火的llama3

ollama run llama3:8b

 

这次终于可以松口气了~免费的就是爽,调用API跑的都是人民币啊!

from langchain_community.llms import Ollamafrom langchain_core.prompts import ChatPromptTemplate
if __name__ == "__main__": llm = Ollama(model="llama3:8b")
prompt = ChatPromptTemplate.from_messages([ ("system", "您是世界级的技术文档编写者。"), ("user", "{input}") ])
chain = prompt | llm chain.invoke({"input": "创造一个更精准、吸引人的slogan"})

 

 

FOUR.  不联网跑本地大模型应用

 

上面的方法还得联网,先安装ollama,再通过ollama下载大模型文件。

 

但不是每个电脑都能联网的,很多公司和一些机密单位内部都是禁止联网的,那如果没有网的环境下,想本地跑大模型怎么办?

 

不用担心,通过调用AutoModelForCausalLM,不用ollama也可以调用本地大模型。

from modelscope import AutoModelForCausalLM, AutoTokenizerfrom modelscope import GenerationConfig
# Note: The default behavior now has injection attack prevention off.tokenizer = AutoTokenizer.from_pretrained("qwen/Qwen-7B", trust_remote_code=True)
# use auto mode, automatically select precision based on the device.model = AutoModelForCausalLM.from_pretrained("qwen/Qwen-7B", device_map="auto", trust_remote_code=True).eval()
# Specify hyperparameters for generation. But if you use transformers>=4.32.0, there is no need to do this.# model.generation_config = GenerationConfig.from_pretrained("Qwen/Qwen-7B", trust_remote_code=True)
inputs = tokenizer('蒙古国的首都是乌兰巴托(Ulaanbaatar)\n冰岛的首都是雷克雅未克(Reykjavik)\n埃塞俄比亚的首都是', return_tensors='pt')inputs = inputs.to(model.device)pred = model.generate(**inputs)print(tokenizer.decode(pred.cpu()[0], skip_special_tokens=True))# 蒙古国的首都是乌兰巴托(Ulaanbaatar)\n冰岛的首都是雷克雅未克(Reykjavik)\n埃塞俄比亚的首都是亚的斯亚贝巴(Addis Ababa)...

 

现在您已经了解如何在不同的环境下创建自己的专属AI程序,后面您可以在这个基础上,继续扩展程序完成各种任务。例如:

  • 生成一种类型的文本。例如,生成一首诗、测验题目等。

  • 查找信息。您可以使用提示来查找信息,例如 ” 明天的天气怎么样 “。

  • 生成代码。您可以使用提示来生成代码,例如开发用于验证电子邮件的正则表达式,或者写一个网页程序。

     

课后练习:

temperature 有什么作用?

A. 它控制输出的随机程度。

B. 它控制返回内容的大小。

C. 它控制使用多少 tokens 。

 

 

希望我今天的分享,能抛砖引玉,帮助大家开启你的AI赋能之路!

 

觉得我的文章对你有帮助的话,请不要吝啬你的点赞、在看和转发~

 

标签:专属,AI,模型,API,应用,import,model,ollama
From: https://www.cnblogs.com/zhangbojiangfeng/p/18162949

相关文章

  • 实验3 C语言函数应用编程
    #include<stdio.h>#include<stdlib.h>#include<time.h>#include<windows.h>#defineN80voidprint_text(intline,intcol,chartext[]);voidprint_spaces(intn);voidprint_blank_lines(intn);intmain(){ intline,col,i;......
  • baidu2
    cfredandblue题目链接题目大意:思路:将数组先按颜色,再按大小升序排序所得形式类似于其中根据贪心只要能出现1~n的序列即可在颜色B下,\(a[i]>=i+1\)因\(a[i]\)只能取不大于自身的数在颜色R下,\(a[i]<=i+1\)因\(a[i]\)只能取不小于自身的数#include<iostream>......
  • 实验3 C语言函数应用编程
    1#include<stdio.h>2#include<stdlib.h>3#include<time.h>4#include<windows.h>5#defineN8067voidprint_text(intline,intcol,chartext[]);//函数声明8voidprint_spaces(intn);//函数声明9voidprint_blank_......
  • 在html中应用JavaScript
    1.在html中调用jsjs需要用<script>脚本写入位置</script>声明;也可以用外部文件引入,如<scripttype="text/javascript"src="script1.js"></script>。当js位于html的<head>内:这些脚本在选择触发它的时候被触发当js位于html的<body>内:这些脚本在页面加载时触发2.js的数据类......
  • EPAI手绘建模APP资源管理和模型编辑器1
    (10) 资源① 打开资源管理页面。图 15 资源列表-模型 图 16 资源列表-图层 图 17 资源列表-相机 图 18 资源列表-灯光② 资源管理页面包括模型列表、图层列表、相机列表、灯光列表;包括颜色选择页面、贴图选择页面、材质选择页面、样式选择页面。③ 模型......
  • EPAI手绘建模APP模型库
    (9) 库① 打开手绘建模模型集。 图 11 手绘建模模型集② 宫格显示所有创建和保存的模型,每个模型包括模型图片文件、模型文件名称、模型文件大小、修改日期。③ 在收藏的模型的图片左上角用☆标记。④ 点击搜索按钮,进入搜索;输入搜索关键字,显示所有符合条件的模型。......
  • 实验3 C语言函数应用编程
    1.实验任务11#include<stdio.h>2#include<stdlib.h>3#include<time.h>4#include<windows.h>5#defineN8067voidprint_text(intline,intcol,chartext[]);8voidprint_spaces(intn);9voidprint_blank_lines(intn);//函......
  • 实验3 C语言函数应用编程
    实验任务1#include<stdio.h>#include<stdlib.h>#include<time.h>#include<windows.h>#defineN80voidprint_text(intline,intcol,chartext[]);//函数声明voidprint_spaces(intn);//函数声明voidprint_blank_lines(intn);//函数声......
  • go调用langchain
    openai版本设置环境变量OPENAI_API_KEYpackagemainimport("context""fmt""log""github.com/tmc/langchaingo/llms""github.com/tmc/langchaingo/llms/openai")funcmain(){ctx:=context.Backgroun......
  • EPAI手绘建模APP常用工具栏_1
    1、常用工具栏 图 1 常用工具栏(1) 撤销(2) 重做(3) 删除(4) 复制① 选中场景中的模型后,复制按钮变成可用状态,否则变成禁用状态。可以选择多个模型一起复制。(5) 变换图 2 变换操作杆 3变换-输入数值移动图 4 变换-计算器输入数值① 选中场景中的......