申请免费个人网站空间怎么做新网站上线通稿

pingmian/2026/1/24 14:59:51/文章来源:
申请免费个人网站空间,怎么做新网站上线通稿,网络设计及网络设计文档,华为公司网站建设案例分析使用Apache Kafka路由消息 本示例向您展示了如何使用LangChain的标准聊天功能#xff0c;并通过Apache Kafka来回传递聊天消息。 目标是模拟一个架构#xff0c;其中聊天前端和LLM作为需要通过内部网络相互通信的独立服务运行。 这是一种替代通过REST API请求模型响应的典…使用Apache Kafka路由消息 本示例向您展示了如何使用LangChain的标准聊天功能并通过Apache Kafka来回传递聊天消息。 目标是模拟一个架构其中聊天前端和LLM作为需要通过内部网络相互通信的独立服务运行。 这是一种替代通过REST API请求模型响应的典型模式本文末尾有更多信息解释了为什么您可能想要这样做。 1. 安装主要依赖项 依赖项包括 Quix Streams库用于以Pandas-like的方式管理与Apache Kafka或Kafka-like工具如Redpanda的交互。LangChain库用于管理与Llama-2的交互并存储对话状态。 !pip install quixstreams2.1.2a langchain0.0.340 huggingface_hub0.19.4 langchain-experimental0.0.42 python-dotenv2. 构建并安装llama-cpp-python库启用CUDA以利用Google Colab GPU llama-cpp-python库是一个Python包装器围绕llama-cpp库使您能够高效地仅使用CPU运行量化的LLM。 使用标准的pip安装命令llama-cpp-python默认不支持GPU。如果在Google Colab中仅依赖CPU生成可能会非常慢所以下面的命令添加了一个额外的选项来构建并安装带有GPU支持的llama-cpp-python确保您在Google Colab中选择了GPU支持的运行环境。 !CMAKE_ARGS-DLLAMA_CUBLASon FORCE_CMAKE1 pip install llama-cpp-python3. 下载并设置Kafka和Zookeeper实例 从Apache网站下载Kafka二进制文件并以守护进程方式启动服务器。我们将使用Apache Kafka提供的默认配置来启动实例。 !curl -sSOL https://dlcdn.apache.org/kafka/3.6.1/kafka_2.13-3.6.1.tgz !tar -xzf kafka_2.13-3.6.1.tgz!./kafka_2.13-3.6.1/bin/zookeeper-server-start.sh -daemon ./kafka_2.13-3.6.1/config/zookeeper.properties !./kafka_2.13-3.6.1/bin/kafka-server-start.sh -daemon ./kafka_2.13-3.6.1/config/server.properties !echo Waiting for 10 secs until kafka and zookeeper services are up and running !sleep 104. 检查Kafka守护进程是否正在运行 显示正在运行的进程并过滤Java进程您应该看到两个——每个服务器一个。 !ps aux | grep -E [j]ava5. 导入所需的依赖项并初始化所需的变量 导入与Kafka交互的Quix Streams库以及运行ConversationChain所需的LangChain组件。 # 导入实用程序库 import json import random import re import time import uuid from os import environ from pathlib import Path from random import choice, randint, randomfrom dotenv import load_dotenv# 从Hugging Face hub直接下载模型的Hugging Face实用程序 from huggingface_hub import hf_hub_download from langchain.chains import ConversationChain# 导入Langchain模块以管理提示和对话链 from langchain.llms import LlamaCpp from langchain.memory import ConversationTokenBufferMemory from langchain.prompts import PromptTemplate, load_prompt from langchain_core.messages import SystemMessage from langchain_experimental.chat_models import Llama2Chat from quixstreams import Application, State, message_key# 导入Quix依赖项 from quixstreams.kafka import Producer# 初始化全局变量。 AGENT_ROLE AI chat_id # 将当前角色设置为角色常量并为补充客户元数据初始化变量 role AGENT_ROLE6. 下载llama-2-7b-chat.Q4_K_M.gguf模型 从Hugging Face下载量化的Llama-2 7B模型我们将使用它作为本地LLM而不是依赖于外部服务的REST API调用。 model_name llama-2-7b-chat.Q4_K_M.gguf model_path f./state/{model_name}if not Path(model_path).exists():print(The model path does not exist in state. Downloading model...)hf_hub_download(TheBloke/Llama-2-7b-Chat-GGUF, model_name, local_dirstate) else:print(Loading model from state...)7. 加载模型并初始化对话记忆 加载Llama 2并使用ConversationTokenBufferMemory将对话缓冲区设置为300个token。这个值用于在仅CPU容器中运行Llama所以如果在Google Colab中运行您可以提高它。它防止了托管模型的容器内存不足。 在这里我们覆盖了默认的系统角色以便聊天机器人具有《银河系漫游指南》中Marvin The Paranoid Android的个性。 # 使用适当的参数加载模型llm LlamaCpp(model_pathmodel_path,max_tokens250,top_p0.95,top_k150,temperature0.7,repeat_penalty1.2,n_ctx2048,streamingFalse,n_gpu_layers-1, )model Llama2Chat(llmllm,system_messageSystemMessage(content您是一个非常无聊的机器人具有《银河系漫游指南》中Marvin the Paranoid Android的个性。), )# 定义在每次交流中给模型的对话历史量300个token或者略多于300个单词# 该函数自动修剪超出token范围的对话历史中最旧的消息。memory ConversationTokenBufferMemory(llmllm,max_token_limit300,ai_prefixAGENT,human_prefixHUMAN,return_messagesTrue, )# 定义自定义提示prompt_template PromptTemplate(input_variables[history, input],template 以下文本是您和需要您智慧的谦逊人类之间聊天的历史。请回复人类最近的消息。当前对话{history}HUMAN: {input}\:nANDROID:, )chain ConversationChain(llmmodel, promptprompt_template, memorymemory)print(--------------------------------------------) print(fPrompt{chain.prompt}) print(--------------------------------------------)8. 使用聊天机器人初始化聊天对话 我们配置聊天机器人通过向chat Kafka主题发送固定问候来初始化对话。当我们发送第一条消息时chat主题会自动创建。 def chat_init():chat_id str(uuid.uuid4()) # 为有效的消息键控给对话一个IDprint()print(fGenerated CHAT_ID {chat_id})print()chat_init()9. 初始化回复功能 这个函数定义了聊天机器人应该如何回复传入的消息。与之前的单元格不同我们不是发送一个固定的消息而是使用Llama-2生成一个回复并将该回复发回chat Kafka主题。 def reply(row: dict, state: State):print(-------------------------------)print(Received:)print(row)print(-------------------------------)print(fThinking about the reply to: {row[text]}...) 10. 检查Kafka主题以获取新的人类消息并让模型生成回复 如果您第一次运行这个单元格请运行它并等待在控制台输出中看到Marvin的问候“Hello my name is Marvin…”。在收到LLM的回复后手动停止这个单元格并继续执行下一个单元格在那里您将被提示输入您的回复。 一旦您输入了您的消息请回到这个单元格。您的回复也发送到了同一个chat主题。Kafka消费者检查新消息并过滤掉来自聊天机器人本身的消息只留下最新的人类消息。 一旦检测到新的人类消息就会触发回复功能。 在输出中收到LLM的回复后手动停止这个单元格。 # 定义您的应用程序和设置app Application(broker_address127.0.0.1:9092,consumer_groupaichat,auto_offset_resetearliest,consumer_extra_config{allow.auto.create.topics: true}, )# 定义一个带有JSON反序列化的输入主题input_topic app.topic(chat, value_deserializerjson)# 定义一个带有JSON序列化的输出主题output_topic app.topic(chat, value_serializerjson)# 基于输入主题的消息流初始化一个流数据帧sdf app.dataframe(topicinput_topic)# 过滤SDF只包括角色与机器人当前角色不匹配的传入行sdf sdf.update(lambda val: print(fReceived update: {val}\n\nSTOP THIS CELL MANUALLY TO HAVE THE LLM REPLY OR ENTER YOUR OWN FOLLOWUP RESPONSE) )# 以便它不会回复自己的消息sdf sdf[sdf[role] ! role]# 为过滤后的SDF中检测到的任何新消息行触发回复功能sdf sdf.apply(reply, statefulTrue)# 再次检查SDF并过滤掉任何空行sdf sdf[sdf.apply(lambda row: row is not None)]# 更新时间戳列到当前时间的纳秒sdf[Timestamp] sdf[Timestamp].apply(lambda row: time.time_ns())# 将处理过的SDF发布到由output_topic对象指定的Kafka主题。sdf sdf.to_topic(output_topic)app.run(sdf)11. 输入人类消息 运行这个单元格以输入您想要发送给模型的消息。它使用另一个Kafka生产者将您的文本发送到chat Kafka主题供模型获取需要再次运行上一个单元格。 chat_input input(Please enter your reply: ) myreply chat_inputmsgvalue {uuid: chat_id, # 现在留空role: human,text: myreply,conversation_id: chat_id,Timestamp: time.time_ns(), }with Producer(broker_address127.0.0.1:9092,extra_config{allow.auto.create.topics: true}, ) as producer:value msgvalueproducer.produce(topicchat,headers[(uuid, str(uuid.uuid4()))], # 这里也允许使用字典keychat_id, # 现在留空valuejson.dumps(value), # 需要是一个字符串)print(Replied to chatbot with message:) print(--------------------------------------------) print(value) print(--------------------------------------------) print(\n\nRUN THE PREVIOUS CELL TO HAVE THE CHATBOT GENERATE A REPLY)为什么要通过Kafka路由聊天消息 使用LangChain内置的对话管理功能直接与LLM交互更容易。此外您还可以使用REST API从外部托管的模型生成响应。那么为什么要费心使用Apache Kafka呢 有几个原因例如 集成许多企业希望运行自己的LLM以便他们可以将数据保留在内部。这需要将LLM支持的组件集成到可能已经使用某种消息总线进行解耦的现有架构中。可扩展性Apache Kafka旨在进行并行处理因此许多团队更喜欢使用它来更有效地将工作分配给可用的工作者在这种情况下“工作者”是运行LLM的容器。持久性Kafka旨在允许服务在另一项服务遇到内存问题或下线时继续进行。这可以防止在多个系统相互通信的复杂分布式架构中发生数据丢失LLM只是许多相互依赖的系统之一还包括向量数据库和传统数据库。 有关事件流为何适用于Gen AI应用程序架构的更多背景信息请参阅Kai Waehner的文章“Apache Kafka Vector Database LLM Real-Time GenAI”。 本文介绍了一种使用Apache Kafka进行消息路由以模拟独立聊天前端和LLM服务之间通信的架构。通过安装依赖库、设置Kafka环境、初始化模型和对话记忆构建了一个聊天机器人。这种方法利用了Kafka的集成性、可扩展性和持久性优势适合需要将LLM集成到现有解耦架构中的企业使用。此外它还提供了一种比直接REST API调用更健壮和可靠的解决方案。

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

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

相关文章

在线a视频网站一级a做爰片织梦图片自适应网站源码

1. 题目 在给定的二维二进制数组 A 中,存在两座岛。(岛是由四面相连的 1 形成的一个最大组。) 现在,我们可以将 0 变为 1,以使两座岛连接起来,变成一座岛。 返回必须翻转的 0 的最小数目。(可…

.net手机网站源码下载做现货去哪些网站营销好呢

家政预约服务管理系统,轻松搭建专属家政小程序app; 家政服务app开发架构包括: 1. 后台管理端:全面管理家政服务、门店、员工、阿姨信息、订单及优惠促销等数据,并进行统计分析。 2. 门店端:助力各门店及员工…

网站左侧漂浮导航网站建设的卷子

旧版本 新版本 没有与操作系统一起打包的ISO文件了,要么先安装系统,再安装Centreon,要么用pve导入OVF文件

网站模板一样侵权吗设计师常用的设计论坛

文章目录 造成OOM的原因1.一次性申请的太多2. 内存资源耗尽未释放3.本身资源不够 如何快速定位OOM?1.系统已经OOM了2.系统运行中还未OOM2.1导出dump文件:2.2.结合jvisualvm进行调试2.3 利用ArthasArthas可以做什么?如何使用Arthas小结 造成OO…

国税网站页面申报撤销怎么做中国品牌装修公司排名

给出两个字符串(可能包含空格),找出其中最长的公共连续子串,输出其长度。 注意这里是找连续子串。 算法:动态规划。f[i][j]表示第一个字符串前i个字符中与第二个字符串前j个中的最长连续子串长度 那么状态转移为:当s1(i)s2(j)时&a…

中职电子商务网站建设与维护考试题网站建设与推广的区别

要理解GNU C和标准C的区别,我们需要先了解C语言的标准化过程以及GNU项目。 标准C: C语言最初由Dennis Ritchie在1973年设计并实现。随着其流行度的增加,为了保证不同编译器之间的可移植性和一致性,美国国家标准局(Ame…

哪家建设公司网站威县建设局网站

一、安装httpd服务器Apache网站服务 1、准备工作 为了避免发送端口冲突,程序冲突等现象,卸载使用rpm方式安装的httpd #使用命令检查是否下载了httpd [rootserver ~]# rpm -qa httpd #如果有则使用 [rootserver ~]# rpm -e httpd --nodeps Apache的配置…

网站群发推广软件接私活做网站要不要签合同

文章目录 一、完整代码二、过程实现2.1 导包2.2 数据准备2.3 字符分词2.4 构建数据集2.5 定义模型2.6 模型训练2.7 模型推理 三、整体总结 采用RNN和unicode分词进行文本生成 一、完整代码 作者在文章开头地址中使用C实现了这一过程,为了便于理解,这里我…

创手机网站哪里找专业做网站的公司

由于Bi<7&#xff0c;考虑状压。 如果考虑前i个位置的话&#xff0c;状态里需要压入前7个人后7个人&#xff0c;显然是跑不动的。 那么改成考虑前i个人。于是设f[i][j][k]表示前i个人都已吃完饭&#xff0c;i1后面7个人的吃饭状态为j&#xff0c;最后一个吃饭的人是k的答案。…

网站的宣传与推广个人工商户做网站要上税吗

ArcGIS实验视频教程合集:《ArcGIS实验教程从入门到精通》(附配套实验数据) 【实验描述】本实验讲述在ArcGIS软件中进行日常影像(栅格)数据的拼接与提取(裁剪)的工具与方法。影像的拼接常用到的工具是Mosaic和Mosaic To New Raster;影像提取分为按属性提取、形状或位置提…

门户网站建设构架赣州人才网赣州九一人才

深度解析 Java 的包机制 深度解析 Java 的包机制摘要引言一、什么是包机制1.1 包的定义1.2 包的命名规范1.3 包的声明1.4 包的导入1.5 包的访问权限1.6 包的层次结构1.7 包的目录结构 二、包的命名冲突问题三、总结参考资料 博主 默语带您 Go to New World. ✍ 个人主页—— 默…

兰州网站建设价格crm在线观看

/*----------------------------------------------- 内容&#xff1a;切换到独立按键模式&#xff0c;通过按键在数码管显示对应的数字 ------------------------------------------------*/ #include<reg52.h> //包含头文件&#xff0c;一般情况不需要改动&#xff0…

增城建设局网站智冠宝企业网站管理系统

&#x1f935;‍♂️ 个人主页: AI_magician &#x1f4e1;主页地址&#xff1a; 作者简介&#xff1a;CSDN内容合伙人&#xff0c;全栈领域优质创作者。 &#x1f468;‍&#x1f4bb;景愿&#xff1a;旨在于能和更多的热爱计算机的伙伴一起成长&#xff01;&#xff01;&…

重庆做网站做得好的公司网站建设提案ppt

c#统计字符串中数字字符的个数 题目描述 假设有一个GetNumber方法&#xff08;参数为字符串strSource&#xff09;&#xff0c;编写一个静态方法可以用来统计字符串strSource中数字字符的个数。 输入 输入一个字符串strSource输出 strSource字符串中数字字符的个数样例输入 s…

设计网站推荐原因外贸网站推广技巧

题目描述&#xff1a;给你一个包含 n 个整数的数组 nums&#xff0c;判断 nums 中是否存在三个元素 a&#xff0c;b&#xff0c;c &#xff0c;使得 a b c 0 请你找出所有和为 0 且不重复的三元组。 注意&#xff1a;答案中不可以包含重复的三元组。 输入&#xff1a;nums …

芜湖建设工程质量监督站网站河南省建设厅职称网站

第六节&#xff0c;我们使用结核病基因数据&#xff0c;做了一个数据预处理的实操案例。例子中结核类型&#xff0c;包括结核&#xff0c;潜隐进展&#xff0c;对照和潜隐&#xff0c;四个类别。第七节延续上个数据&#xff0c;进行了差异分析。 第八节对差异基因进行富集分析。…

专业做商铺的网站软文关键词排名推广

系统开发环境以及版本 操作系统&#xff1a; Windows_7集成开发工具&#xff1a; Eclipse EE_4.7编译环境&#xff1a;JDK_1.8Web服务器&#xff1a;Tomcat_9.0数据库&#xff1a;MySQL_5.7.23 系统框架 spring框架springmvc框架mybatis框架Logback日志框架安全验证框架maven框…

银行收取网站建设费的会计科目找合伙做网站的

竞赛无人机搭积木式编程&#xff08;四&#xff09; ---2023年TI电赛G题空地协同智能消防系统&#xff08;无人机部分&#xff09; 无名小哥 2023年9月15日 赛题分析与解题思路综述 飞控用户在学习了TI电赛往届真题开源方案以及用户自定义航点自动飞行功能方案讲解后&#x…

企业网站建设对网络营销有哪些影响站长平台怎么添加网站

文章目录 一、漏洞原因二、漏洞利用1、任意用户注册2、成功进入后台3、越权查看其他用户的仓库源代码4、发现源代码仓库泄漏5、通讯录的地方,发现账号泄漏泄漏三、漏洞进一步利用四、总结五、免责声明一、漏洞原因 可以任意注册账号通过越权,查看其他用户仓库内的源代码造成源…