```
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}")
```