```

import json

import os

from typing import List, Optional

from langchain import LLMChain, PromptTemplate

from langchain.chat_models import ChatOpenAI

from langchain.document_loaders import UnstructuredFileLoader

os.environ["OPENAI_API_KEY"] = "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxx"

os.environ["OPENAI_API_BASE"] = "http://xxxxxxxxxxxxxxxx/v1"

def get_document_content(file_path: Optional[str]) -> List[str]:

loader = UnstructuredFileLoader(file_path=file_path)

documents = loader.load()

return [''.join(doc.page_content) for doc in documents]

template = """我希望你担任一名专业的新闻编辑工作人员,我会告诉你一些内容,你需要将其内容组织成一份事件总结和新闻口播稿

编写口播稿需要注意简洁、准确、流畅、易懂的原则,以及遵循新闻伦理和规范。口播稿的长度应该适中,语言要生动有力,能够引起听众或观众的兴趣,并有效地传递新闻的核心信息。

回复格式说明

--------------------

当回复时,请按照以下格式输出响应:

```json

{{

"replace_word_list":[

{{"title":1、要点一,"summarize":一句话总结,"oral_draft":生动的新闻口播稿}},

{{"title":2、要点二,"summarize":一句话总结,"oral_draft":生动的新闻口播稿}},

{{"title":3、要点三,"summarize":一句话总结,"oral_draft":生动的新闻口播稿}}

]

}}

```

请记住,回复一个JSON格式的代码片段,只包含一个操作,而无需其他内容

我的第一个请求是:

{input}

"""

llm = ChatOpenAI(model="gpt-3.5-turbo-16k", temperature=0)

prompt_template = PromptTemplate(input_variables=["input"], template=template)

generate_oral_chain = LLMChain(llm=llm, prompt=prompt_template, output_key="text")

def run(file_path: str) -> dict:

print("开始读取文档……")

document_content = get_document_content(file_path)

print("开始生成口播稿……")

generate_news = generate_oral_chain({"input": [''.join(doc) for doc in document_content]})

# print(generate_news.get("text"))

try:

answer = json.loads(generate_news.get("text"))

except Exception as e:

raise Exception("warring: json解析错误", e)

# print(answer)

return answer

if name == '__main__':

# pip install langchain openai unstructured tiktoken

run_json = run(r"D:\PycharmProjects\hainan_pdf_video\files\7.23工作日报.pdf")

print(f"获得的结果:{run_json}")

```