首页 > 其他分享 >(26-4-02)基于OpenAI和LangChain的上市公司估值系统:OpenAI API和Langchain探索(2)Langchain和OpenAI处理

(26-4-02)基于OpenAI和LangChain的上市公司估值系统:OpenAI API和Langchain探索(2)Langchain和OpenAI处理

时间:2024-06-17 21:29:26浏览次数:7  
标签:02 text self Langchain OpenAI split doc chunks chunk

10.5.2  Langchain和OpenAI处理

编写文件summarizer.py,定义了使用 Langchain 和 OpenAI 处理文本和文档的功能处。其中,类UnstructuredStringLoader用于加载未结构化的字符串内容,将其分割成适当大小的块。方法split_text_in_chunks 和方法 split_doc_in_chunks分别用于将文本和文档分割成块。最后,doc_summary 函数用于生成文档摘要和预览。

from typing import Any, List
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain.document_loaders.unstructured import UnstructuredBaseLoader

class UnstructuredStringLoader(UnstructuredBaseLoader):

    def __init__(
        self, content: str, source: str = None, mode: str = "single",
        **unstructured_kwargs: Any
    ):
        self.content = content
        self.source = source
        super().__init__(mode=mode, **unstructured_kwargs)

    def _get_elements(self) -> List:
        from unstructured.partition.text import partition_text

        return partition_text(text=self.content, **self.unstructured_kwargs)

    def _get_metadata(self) -> dict:
        return {"source": self.source} if self.source else {}


def split_text_in_chunks(text, chunk_size=20000):
    text_splitter = RecursiveCharacterTextSplitter(chunk_size=chunk_size, chunk_overlap=100)
    chunks = text_splitter.split_text(text)
    return chunks


def split_doc_in_chunks(doc, chunk_size=20000):
    text_splitter = RecursiveCharacterTextSplitter(chunk_size=chunk_size, chunk_overlap=100)
    chunks = text_splitter.split_documents(doc)
    return chunks


def doc_summary(docs):
    print(f'You have {len(docs)} document(s)')

    num_words = sum([len(doc.page_content.split(' ')) for doc in docs])

    print(f'You have roughly {num_words} words in your docs')
    print()
    print(f'Preview: \n{docs[0].page_content.split(". ")[0]}')

标签:02,text,self,Langchain,OpenAI,split,doc,chunks,chunk
From: https://blog.csdn.net/asd343442/article/details/139755047

相关文章

  • 每日一题-24-06-17 (P10217)
    今年省选题,考场上竟然没做出来今天似乎直接一眼出来了就是枚举下\(m\)模\(n\)的余数然后解个方程即可#include<bits/stdc++.h>usingnamespacestd;#definelllonglongintT,n,X,Y;intx[100005],y[100005];lls[100005],t[100005],res,k;llsub_down(llx,lly){......
  • 北京大学数字普惠金融指数(2011-2022年)
    北京大学数字普惠金融指数(2011-2022年),包含省市县三级数据数据年限:省级、地级市(2011-2022年);区县(2014-2022年)数据格式:excel、pdf数据来源:北京大学数字金融研究中心,原始数据(英文抬头)数据内容:指标体系包括总指数、覆盖广度(一级指标)、使用深度(一级指标)、支付业务(二级指标)......
  • 2024年06月随便做做
    The2ndUniversalCup.Stage17:Jinan为了参加省赛打的模拟。打了八个题,稳稳金牌。E.IJustWant...OneMore...考虑如何计数,因此考虑方案的等价条件。一条边满足要求,当且仅当原图存在一种最大匹配,使得这条边的两个顶点都不在匹配中。而上述条件,实际上等价于两个顶点各......
  • nl80211
    同wpa_supplicant、hostapd一样,nl80211也可以管理无线网络,不同的是wpa_supplicant和hostapd是通过nl80211管理无线网络。 Linux平台上目前常用的专门针对无线网络设备编程的API有两套最早的一套API由HP公司员工JeanTourrilhes于1997年开发,全称为LinuxWirelessExt......
  • 无线局域网协议 --- IEEE 802.11
    IEEE(InstituteofElectricalandElectronicsEngineers)是美国电气和电子工程师协会的简称。802是该组织中一个专门负责制定局域网标准的委员会,也称为LMSC(LAN/MANStandardsCommittee,局域网/城域网标准委员会)。该委员会成立于1980年2月,其任务就是制定局域网和城域网标准。由于......
  • 郑州2024-ccpc-赛后总结-crf
    郑州邀请赛这一场整体打的很不好,差一点多开出一题,罚时也不理想,离国银省金就差一点。前两个小时的状态还是可以的,签到题写的并不慢,中间几道中档题出思路也很快。但是到了比赛中期状态就不好了,有一道稳稳能写出的题目因为一行代码的错误导致交了三次才过,浪费了很多罚时,也很打击士气......
  • 北航研究生《矩阵理论》期末复习整理与2024考题记录
    课件线性空间定义:交换律+结合律+零元素+负元素特殊的矩阵:对称矩阵:\(A=A^T\)正交矩阵:\(AA^T=I\)Hermite矩阵:\(A^H=A\),对角元素为实数,特征值为实数反(斜)Hermite矩阵:\(A^H=-A\),对角元素为纯虚数,特征值为纯虚数或者0酉矩阵:\(A^HA=I\),酉相似\(U^HAU=B\),酉相抵\(UA......
  • 构建LangChain应用程序的示例代码:35、如何使用假设性文档嵌入(HyDE)技术来改善文档索引
    使用假设性文档嵌入(HyDE)改善文档索引摘要本文介绍了如何使用假设性文档嵌入(HypotheticalDocumentEmbeddings,简称HyDE),这是根据一篇论文中描述的技术。HyDE是一种嵌入技术,它接收查询,生成一个假设性的答案,然后嵌入该生成的文档,并将其作为最终示例使用。代码及注释froml......
  • 2024华为OD机试真题-出租车计费 、靠谱的车-(C++/Python)-C卷D卷-100分
    2024华为OD机试题库-(C卷+D卷)-(JAVA、Python、C++) 题目描述:程序员小明打了一辆出租车去上班。出于职业敏感,他注意到这辆出租车的计费表有点问题,总是偏大。出租车司机解释说他不喜欢数字4,所以改装了计费表,任何数字位置遇到数字4就直接跳过,其余功能都正常。比如:23再多......
  • 2024华为OD机试真题-API集群负载统计-(C++/Python)-C卷D卷-100分
     2024华为OD机试题库-(C卷+D卷)-(JAVA、Python、C++)题目描述某个产品的RESTfulAPI集合部署在服务器集群的多个节点上,近期对客户端访问日志进行了采集,需要统计各个API的访问频次,根据热点信息在服务器节点之间做负载均衡,现在需要实现热点信息统计查询功能。RESTfulAPI是......