目前大模型应用较成熟的技术是摘要。在实际应用过程中,让大模型稳定输出结构化的数据,不太容易。
OpenAI 于8月8日官宣其API支持结构化输出,而且做到100%准确率,但国内无法正常使用。
最近做了一个小工具,通过人工 + LLM,实现对微信公众号文章的摘要功能。
人工部分是收集微信公众号文章链接,LLM部分使用的是Ollama + qwen2:7b,本地化部署。
准确率没有计算,初试结果还不错。输出为json结构,效果如下:
主要代码如下:
Ollama 模型调用
def send_request(prompt, model='qwen2:7b'):
data = {
"model": model,
"prompt": prompt,
"stream": False
}
json_data = json.dumps(data)
response = requests.post(url, data=json_data, headers={'Content-Type': 'application/json'})
return response
def get_response_content(response):
data = json.loads(response.text)
response_content = data['response']
return response_content
qwen2 摘要调用
def generate_summary_prompt(data):
output = """
"title":标题,
"summary":摘要,
"url":链接
"""
prompt = f"\n {data} 请对以上文章进行摘要, 摘要内容要求语意完整,字数严格控制在200字以内,并严格按照以下格式返回结果:\n{output}"
return prompt
其他还有一些辅助代码,包括获取源码、抽取纯文字、json构造等。此外,试用了llama3.1:8b模型,感觉摘要效果不如qwen2:7b好。
抓取、筛选、摘要、展示,具有一定实用价值的 LLM 工作流基本完成。最终应用效果参见:
https://mp.weixin.qq.com/s/g42zSUuF8EzfWOaOHTTSow