После изучения вариантов я наткнулся на Langserve как на потенциальную платформу для развертывания. Однако я нахожу документацию несколько запутанной, и я не уверен в том, какие шаги необходимо предпринять для настройки и запуска моего кода в качестве API на Langserve.
Я прикрепил код к этому электронному письму для ваша рекомендация. Я был бы очень признателен, если бы вы предоставили мне руководство или помощь по развертыванию и запуску этого кода в качестве API на Langserve. Любые предложения или шаги, которые вы можете предложить, будут для меня неоценимы.
Они заключаются в следующем:
Код: Выделить всё
from langchain_openai import ChatOpenAI
import bs4
from langchain import hub
from langchain_core.output_parsers import JsonOutputParser
from langchain_core.runnables import RunnablePassthrough
from langchain_openai import OpenAIEmbeddings # Not used, but kept for structure
from langchain_text_splitters import RecursiveCharacterTextSplitter
import os
import argparse
import codecs
from bs4 import BeautifulSoup
from langchain.chains import create_extraction_chain
import pprint
parser = argparse.ArgumentParser(description="Extract schema from an HTML file using LangChain")
parser.add_argument("html_file_path", help="The path to the HTML file to process")
args = parser.parse_args()
html_file_path = args.html_file_path
os.environ["OPENAI_API_KEY"] = "OPENAI_API_KEY"
llm = ChatOpenAI(model="gpt-3.5-turbo-0125")
print("LLM object loaded")
# Define the Document class with the necessary attributes
class Document:
def __init__(self, page_content, metadata=None):
self.page_content = page_content
self.metadata = metadata or {} # Add the metadata attribute
# Specify the path to your HTML file
# html_file_path = r"C:\Users\NisargKadam\Downloads\Test_Carousell_HTML.html"
# Load the HTML content from the file
with open(html_file_path, "r", encoding="utf-8") as html_file:
html_content = html_file.read()
# Parse the HTML
soup = BeautifulSoup(html_content, 'html.parser')
# Extract text content
text = soup.get_text(separator='\n') # Use '\n' for newline separation
# Option 1: Using parsed text
documents = [Document(page_content=text)]
#Defining Schema
schema = {
"properties": {
"product_name": {"type": "string"},
"product_price": {"type": "string"},
"product_stock" : {"type" : "string"},
},
"required": ["product_name", "product_price","product_stock"],
}
def extract(content: str, schema: dict):
return create_extraction_chain(schema=schema, llm=llm).run(content)
text_splitter = RecursiveCharacterTextSplitter(chunk_size=1000, chunk_overlap=200)
splits = text_splitter.split_documents(documents) # Not used, but kept for structure
#new method
#extracted_content = extract(schema=schema, content=splits[0].page_content)
extracted_content = extract(schema=schema, content=documents[0].page_content)
pprint.pprint(extracted_content)
Я пытался следовать этой документации, https://mirror-feeling-d80.notion.site/ ... b1a49fbaf6
Однако мне не удалось добиться того же.
Подробнее здесь: https://stackoverflow.com/questions/783 ... -langserve