AI大模型应用

news/2024/11/15 20:08:46/文章来源:https://www.cnblogs.com/banchengyanyu/p/18372529
  • 参考文档
https://creative.chat/

1.调用AI大模型API

1.1文心一言

https://console.bce.baidu.com/qianfan/ais/console/applicationConsole/application
  1. 创建应用:https://console.bce.baidu.com/qianfan/ais/console/applicationConsole/application
  2. 示例代码:https://console.bce.baidu.com/tools/?_=1692863460488#/api?product=QIANFAN&project=千帆大模型平台&parent=鉴权认证机制&api=oauth%2F2.0%2Ftoken&method=post

image-20240821132646844

import requests
import jsonAPI_KEY = "CUJRwLhCHA8hQapnaAQsIGPR"
SECRET_KEY = "L1yYhbcZCId5iMQQsBnVXkjNOdzBAH2O"def main():url = "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/ernie-speed-128k?access_token=" + get_access_token()payload = json.dumps({"system":"你是一个生活AI。对人的作息,休闲,工作,学习,娱乐,饮食,运动,健康,心理,社交,教育,娱乐知识很精通","messages": [{"role": "user","content": "您叫什么名字"},]})headers = {'Content-Type': 'application/json'}response = requests.request("POST", url, headers=headers, data=payload)print(response.text)def get_access_token():"""使用 AK,SK 生成鉴权签名(Access Token):return: access_token,或是None(如果错误)"""url = "https://aip.baidubce.com/oauth/2.0/token"params = {"grant_type": "client_credentials", "client_id": API_KEY, "client_secret": SECRET_KEY}return str(requests.post(url, params=params).json().get("access_token"))if __name__ == '__main__':main()

image-20240821133637212

2大模型部署fastapi

image-20240821141739810

2.1 文心一言

  • app.py
from fastapi import FastAPI
from uvicorn import run
from Config.modules import modulesapp = FastAPI()# 自动加载模块路由
for module_name, module_path in modules.items():module = __import__(module_path, fromlist=['router'])app.include_router(module.router)if __name__ == '__main__':run(app, host='0.0.0.0', port=1888)
  • config/modules.py
modules = {'Demo': 'Extension.Demo.route','LLM': 'Extension.LLM.route',
}
  • LLM/setting.py
Erniebot_API_KEY = "CUJRwLhCHA8hQapnaAQsIGPR"
Erniebot_SECRET_KEY"L1yYhbcZCId5iMQQsBnVXkjNOdzBAH2"
Qwen_API_KEY = ""
ChatGPT_API_KEY = ""
  • LLM/llm_erniebot.py
import requests
import json
from Extension.LLM.setting import Erniebot_API_KEY, Erniebot_SECRET_KEYdef erniebot(text, ai_name, ai_role):url = "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/ernie-speed-128k?access_token=" + get_access_token()payload = json.dumps({"system": ai_name+' '+ai_role,"messages": [{"role": "user","content": text}],# 如果设置为False,AI可能会使用搜索功能来查找最新的信息或解决特定的查询,从而提供更准确、更及时的信息。"disable_search": False,# 如果设置为True,AI在提供信息时会尝试包含引用来源,比如网页链接、书籍引用等,这有助于验证信息的准确性和来源。"enable_citation": True,})headers = {'Content-Type': 'application/json'}response = requests.request("POST", url, headers=headers, data=payload)data = json.loads(response.text)usage = data['usage']result = {"reply": data['result'],"prompt_tokens": usage['prompt_tokens'],"completion_tokens": usage['completion_tokens'],"total_tokens": usage['total_tokens']}return resultdef get_access_token():"""使用 AK,SK 生成鉴权签名(Access Token):return: access_token,或是None(如果错误)"""API_KEY = Erniebot_API_KEYSECRET_KEY = Erniebot_SECRET_KEYurl = "https://aip.baidubce.com/oauth/2.0/token"params = {"grant_type": "client_credentials","client_id": API_KEY, "client_secret": SECRET_KEY}return str(requests.post(url, params=params).json().get("access_token"))
image-20240821172804576

2.2通义千问

  • API KEY:https://dashscope.console.aliyun.com/apiKey

  • 示例代码:https://help.aliyun.com/zh/dashscope/developer-reference/quick-start#014863e0459zq

import random
from http import HTTPStatus
import dashscope
dashscope.api_key = "sk-3f7cd2b89a894c3e9a115f83d37c8afe"def call_with_messages():messages = [{'role': 'system', 'content': '你是一个健康AI。你是一个健康专家,对人的作息,饮食,健身,营养,医学等健康方面的知识,非常精通。'},{'role': 'user', 'content': '你叫什么名字'}]response = dashscope.Generation.call("qwen-turbo",messages=messages,# set the random seed, optional, default to 1234 if not setseed=random.randint(1, 10000),# set the result to be "message" format.result_format='message',)if response.status_code == HTTPStatus.OK:print(response)else:print('Request id: %s, Status code: %s, error code: %s, error message: %s' % (response.request_id, response.status_code,response.code, response.message))if __name__ == '__main__':call_with_messages()

image-20240821172859211

  • LLM/llm_qwen.py
import random
import dashscope
from Extension.LLM.setting import Qwen_API_KEYdashscope.api_key = Qwen_API_KEYdef qwen(text, ai_name, ai_role):messages = [{'role': 'system', 'content': ai_name+' '+ai_role},{'role': 'user', 'content': text}]response = dashscope.Generation.call("qwen-turbo",messages=messages,# set the random seed, optional, default to 1234 if not setseed=random.randint(1, 10000),# set the result to be "message" format.result_format='message',)usage = response.usagedata = response.output.choicesresult = {"reply": data[0].message.content,"prompt_tokens": usage.input_tokens,"completion_tokens": usage.output_tokens,"total_tokens": usage.total_tokens}return result

2.3windows部署AI大模型

2.31Windows部署通义千问

  • https://lmstudio.ai/

  • https://www.modelscope.cn/models/qwen/Qwen2-7B-Instruct-GGUF/summary

2.32Windows部署Llama 3

  • https://lmstudio.ai/
  • https://www.modelscope.cn/models/ModelM/Llama-3-8b-zh-gguf/summary

2.33Windows部署Stable Diffusion

  • https://pan.quark.cn/s/2c832199b09b
  • https://www.bilibili.com/video/BV1iM4y1y7oA

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/785064.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Azure Redis】AKS中使用Lettuce连接Redis Cache出现 timed out 问题的解决思路

问题描述 使用 Lettuce 客户端,在AKS环境中连接Azure Redis服务,出现超时错误。 错误消息: Redis command timed out , command timed out after 1 minute(s). 错误截图: 解决思路 当出现Redis客户端连接不上时,需要先排查Redis服务器的状态,比如Server Load是否处于高…

关键字、标识符、注释三剑客

关键字概述 被Java语言赋予特定含义的单词 关键字特点 组成关键字的字母全部小写 关键字注意事项 goto和const作为保留字存在,目前并不使用 类似IDEA这样的集成工具,针对关键字有特殊的颜色标记,非常直观标识符概述 就是给类,接口,方法,变量等起名字时使用的字符序列 组成规则…

三步高考大捷

hi, ____________,见字如晤,展信舒颜。 首先,预祝你考上理想的大学。 当然,这并不容易。正因为有难度,我们才一起引入 OKR 方法论 OKR(Objectives and Key Results, 目标与关键结果)。 大名鼎鼎的 OKR 最早是由 Goolge 这个全球聚集最聪明人的企业管理方法。 后来,人们发…

Python个人收入影响因素模型构建:回归、决策树、梯度提升、岭回归

全文链接:https://tecdat.cn/?p=37423 原文出处:拓端数据部落公众号“你的命运早在出生那一刻起便被决定了。”这样无力的话语,无数次在年轻人的脑海中回响,尤其是在那些因地域差异而面临教育资源匮乏的年轻人中更为普遍。在中国,这种现象尤为明显:没有生在大城市的他们…

1092. 最短公共超序列

非常好的一道理解LCS本质的题目class Solution { public:string longestCommonSubsequence(const string str1, const string str2) {int m = str1.length();int n = str2.length();// 创建一个二维数组来存储LCS的长度vector<vector<int>> dp(m + 1, vector<in…

【转】管理者,一定要有道-法-术的思维模型

我有一个观点:作为管理者,必须要有“道法术”的思维模型。 具备这样的思维,才能穿透表象,站在更高的维度去解决管理上遇到的问题。 今天,我们一起来聊聊这个话题。 术:学工具、学方法 问题来了,什么是术? 王东岳老师说:术,就是看你能驱动什么。 简单来说,术,就是工…

更漂亮的 7-Zip

搬运更漂亮的 7-Zip(并添加了 Jar 关联) - 『精品软件区』 - 吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn 作为一款强大的开源压缩软件,7-Zip 的 UI 实在是太丑了,依然是上个世纪的风格。这里通过修改源代码并重新编译的方式,更换了它的文件管理器图标和文件…

Summarization with Langchain

教程链接 — https://youtu.be/w6wOhSThnoo 摘要是自然语言处理(NLP)的一个关键方面,它能够将大量文本浓缩成简洁的摘要。LangChain,作为NLP领域中的一个强大工具,提供了三种不同的摘要技术:stuff、map_reduce和refine。每种方法都有其独特的优点和局限性,使它们适用于不…

R绘图(06)——带errorbar的柱状图

每次找R绘图美化都很麻烦,索性自己写个笔记慢慢补充绘图美化的指令### 生成数据 ### # 设置种子以获得可重复的结果 set.seed(222) # 生成字符序列 "AAAABBBB" char_sequence <- c("A", "A", "A", "A", "B", …

WPF:MVVM的由来与属性绑定的过程

WPF:MVVM的由来与属性绑定的过程 1、MVVM (1)MVVM是什么? ​ MVVM(Model-View-ViewModel)是一种软件架构设计模式MVVM模式。有助于分离应用程序的业务逻辑和用户界面层,使得开发过程更易于管理,同时也便于单元测试。Model? 现实世界中对象的抽象结果。 View? View=U…

异或的常用性质

性质 1. 百度百科给的最主要的性质就是归零和结合,其他的就都是拓展了。 例题:P1469 2. \(a \bigoplus b<=a+b\) 关于这个不等式比较好的理解为异或就是不进位的加法 例题:luoguP5514 应用 异或哈希 异或跟hash一样,也是会发生冲突的 例如:$1 \bigoplus 2 = 5 \bigopl…

虚拟机的搭建

1.Download VMware Workstation 下载和安装关注微信公众号“软件安装大神”找到虚拟机VMware16 2.DownloadingKali Linux 搜索官网:Kali Linux | Penetration Testing and Ethical Hacking Linux Distribution 解压,然后在第一步 虚拟机VMware16安装成功后打开第二部解压文…