本文主要是寻求解决把预先准备的文字需求转换为代码的方法
主要思路: 把某一类文字需求储存到本地知识库,使得用户输入需求目标,然后程序自动从知识库抽取相关需求,然后转发给在线的大模型形成代码。
工具:
本地在库用的向量持久化工具: ES 7.9
本地库提取所需的预训练模型: 抱脸虫HuggingFaceEmbeddings的paraphrase-multilingual-MiniLM-L12-v2
在线大模型还是选qwen-max
本地知识库的建设,不再赘述,参考之前的文章: 备忘,LangChain建立本地知识库的几个要点
包括参考资料 LangChain结合通义千问的自建知识库
由于需要用到流式输出(streaming=true),需要解决langchain整合qwen大模型关于流式输出的bug,可以参考 通义千问自己的例子
以及相关链接: https://github.com/langchain-ai/langchain/pull/16605
我选的解决方案:
本地库的设计:
参考akshare库的股票数据文档 AKShare股票数据
选了4个接口: stock_sse_summary,stock_individual_info_em , stock_zh_a_spot_em, stock_zh_a_hist 补充简单逻辑、入参和出参,完成本地知识库的akshareKnowledge.txt文件
获得上海证券交易所股票数据总貌,包括项目、股票、科创版、主板,可以使用akshare库的stock_sse_summary接口,无入参,返回最近交易日的股票数据总貌,包括流通股本、总市值、平均市盈率、上市公司、上市股票、流通市值、报告时间、总股本,返回字段使用中文,最后用print方法打印行情,代码格式为python...
(行分隔符)
获得股票个股信息,包括总市值、流通市值、行业、上市时间、股票代码、股票简称、总股本、流通股,可以使用akshare库的stock_individual_info_em接口按股票代码查询,获得相关股票个股信息,返回字段使用中文,最后用print方法打印行情,代码格式为python...
(行分隔符)
获取股票最新价格、最新成交量、最新涨跌幅、最新换手率,可以使用akshare库的stock_zh_a_spot_em接口获取全市场行情,无入参,再按股票名称或者股票代码过滤获得信息,返回字段使用中文,最后用print方法打印行情,代码格式为python...
(行分隔符)
获得股票历史行情,包括指定交易日的最高价、最低价、开盘价、收盘价、成交量、涨跌幅、换手率,可以使用akshare库,按stock_zh_a_hist接口按股票代码,获取指定日线数据,startdate和enddate,以及指定前复权,获得日线数据,返回字段使用中文,最后用print方法打印行情,代码格式为python...
(行分隔符)
代码分为两部分
1 建本地库
import ...
from langchain_community.embeddings.huggingface import HuggingFaceEmbeddings
from langchain_community.vectorstores import ElasticVectorSearch
# 自定义切分
class Document:
def __init__(self, text):
self.page_content = text
self.metadata = {
'source': 'Own'}
time_list = []
t = time.time()
base_file = '/home/cfets/AI/textwarefare/akshareKnowledge.txt'
# base_file = '/home/cfets/AI/textwarefare/cff.txt'
my_index = "es_akshare-api-new"
with open(base_file, 'r', encoding='utf-8') as file:
lines = file.rea