如何正确解析 load_qa_chain 中的数据?
使用 QA 链检索答案很容易,但我们希望 LLM 返回两个答案,然后由输出解析器 PydanticOutputParser 进行解析。
链返回:
{'output_text': '\n1. Contract item of interest: Termination. \n2. Termination: Yes.}
Run Code Online (Sandbox Code Playgroud)
但随后尝试使用解析器解析结果会给出 JSONDecodeError: Expecting value: line 1 column 1 (char 0) :
parser.parse(result['output_text'])
Run Code Online (Sandbox Code Playgroud)
我应该如何更改链才能正确解析输出?
这是下面的链:
from langchain.chains.question_answering import load_qa_chain
from langchain import PromptTemplate
from dotenv import load_dotenv
from langchain.output_parsers import PydanticOutputParser
from pydantic import BaseModel, Field
from langchain.embeddings.openai import OpenAIEmbeddings
from langchain.vectorstores import Chroma
from langchain.llms import AzureOpenAI
from langchain.text_splitter import RecursiveCharacterTextSplitter
import os
from langchain.document_loaders.csv_loader import CSVLoader
load_dotenv()
def …Run Code Online (Sandbox Code Playgroud) 美好的一天,
我有一个数据框,我想为该列的每一行隔离一部分字符串。我遇到的问题是,每一行都需要具有不同长度的子字符串,特别是我只想一直将该字符串保留到第一次出现“。”。(一个周期)加上接下来的两个字母。
例:
import pandas as pd
x = [ [ 34, 'Sydney.Au123XX'] ,
[30, 'Delhi.As1q' ] ,
[16, 'New York.US3qqa']]
x = pd.DataFrame(x)
x.columns = ["a", "b"]
#now I want to substring each row based on where "." occurs.
#I have tried the following:
y = x["b"].str.slice( stop = x["b"].str.find(".") + 2)
y = x["b"].str[0: x["b"].str.find(".")+ 2]
#desired output
desired = [[ 34, 'Sydney.Au'] ,
[30, 'Delhi.As' ] ,
[16, 'New York.US'] ]
desired = pd.DataFrame(desired ) …Run Code Online (Sandbox Code Playgroud) 我训练了一个普通的 vae,我从这个存储库修改了它。当我尝试使用经过训练的模型时,我无法使用 加载权重load_from_checkpoint。我的检查点对象和我的对象之间似乎不匹配lightningModule。
我VAEXperiment使用 . 设置了一个实验 ( ) pytorch-lightning LightningModule。我尝试使用以下方法将权重加载到网络中:
#building a new model
model = VanillaVAE(**config['model_params'])
model.build_layers()
#loading the weights
experiment = VAEXperiment(model, config['exp_params'])
experiment.load_from_checkpoint(path_to_checkpoint, config['exp_params'])
Run Code Online (Sandbox Code Playgroud)
我也尝试过:
checkpoint = torch.load(path_to_checkpoint, map_location=lambda storage, loc: storage)
model.load_state_dict(checkpoint['state_dict'])
Run Code Online (Sandbox Code Playgroud)
但我收到错误
Unexpected key(s) in state_dict: "model.encoder.0.0.weight", "model.encoder.0.0.bias"...
我还关注了https://github.com/PyTorchLightning/pytorch-lightning/issues/924 https://github.com/PyTorchLightning/pytorch-lightning/issues/2798上的问题
为什么我会收到此错误?是因为我的模型中的编码器和解码器模块吗?根据 git 上的问题日志,错误似乎已解决。我究竟做错了什么?
我正在尝试从简单的图像中提取文本。
当我使用默认引擎(oem 3)时,文本被提取(效果很差)。我想使用其他引擎(oem 2)看看输出是否可以提高。
import pytesseract
#this is the config that gives a poor output
config = '--tessdata-dir "C:/Program Files/Tesseract-OCR/tessdata" -l eng --oem 2 --psm 6'
text = pytesseract.image_to_string(crop, config=config)
Run Code Online (Sandbox Code Playgroud)
当我尝试传递更改引擎的选项时,出现错误,提示找不到语言文件:
pytesseract.pytesseract.TesseractError:(1,“错误:已请求 Tesseract(旧版)引擎,但 C:/Program Files/Tesseract-OCR/tessdata/eng.traineddata 中不存在组件!!加载语言“eng”Tesseract 失败无法加载任何语言!无法初始化 tesseract。”)
#experimental config
config = '--psm 6'
text = pytesseract.image_to_string(crop, config=config)
Run Code Online (Sandbox Code Playgroud)
如您所见,我显式传入 eng.traineddata 目录,但它找不到语言文件。
我有两个问题:
我还确保我的环境变量是正确的(因此第一个配置文件可以工作)。
谢谢