风格网站,wordpress seo知乎,wordpress需要配置文件,汕头网站推广改进目标#xff0c;当输入提示问题后#xff0c;能匹配到本地知识库的需求#xff0c;然后AI按匹配到的需求给出代码并进行自动测试#xff1b; 如果无法匹配到本地需求#xff0c;可以直接输入生成逻辑#xff0c;再由AI生成#xff0c;然后支持用户把新需求插入本地库…改进目标当输入提示问题后能匹配到本地知识库的需求然后AI按匹配到的需求给出代码并进行自动测试 如果无法匹配到本地需求可以直接输入生成逻辑再由AI生成然后支持用户把新需求插入本地库。
改进前的架构参考 让AI给你写代码9.1引导AI根据输入的问题并结合本地知识库的预存需求组成提示模板生成代码并测试保存
改进后的架构如下 对于代码改进主要是集中在两个地方 1 驱动LLM的上下文模板需要更改: 原来 CONTEXT_QA_TMPL “” 下面的信息({summary_prompt})是否有这个问题({message})有关 如果你觉得无关请告诉我无法根据提供的上下文回答’{message}这个问题简要回答即可 否则请根据{summary_prompt}对{message}的问题进行回答 “”
更改为 CONTEXT_QA_TMPL “” 下面的信息({summary_prompt})是否有这个问题({message})有关 如果你觉得无关请告诉我无法根据提供的上下文回答’{message}这个问题先回答与上下文无关再按{message}回答这个问题 否则请根据{summary_prompt}对{message}的问题进行回答 “”“” 希望达成目标如果匹配本地库失败LLM不仅仅简单的回复“无关”而是可以根据输入的内容直接让AI生成代码
2 增加一个插入本地知识库的函数工具
#自定义切分
class Document:def __init__(self, text):self.page_content textself.metadata {source: Own}def insertKnowledge(self, text: str):# 询问用户是否需要将代码插入知识库while True:insert_knowledge input(是否需要将代码插入知识库(y/n): )if insert_knowledge y or insert_knowledge Y:msg text.split(python...)[0] python...split_docs[Document(msg)]# 插入知识库db ElasticVectorSearch.from_documents(split_docs,self.embeddings,elasticsearch_urlhttp://localhost:9200,index_namemy_index)print(db.client.info())print(需求插入知识库成功)breakelse:print(不插入知识库)break...#主程序修改while True:try:user_input input(请输入您的问题)similarDocs local_db.searchKnowledge(user_input)summary_prompt .join([doc.page_content for doc in similarDocs]) # 找到最接近的描述docraw_code assistant.genCode(user_input, summary_prompt)# print(answer::, llm(prompt))print(raw_code::, raw_code)print(\n)#执行程序result assistant.py_repl_tool_list(raw_code)print(result::, result)print(\n)#储存需求到本地库新增local_db.insertKnowledge(user_input)print(本轮处理完毕\n)except KeyboardInterrupt:break测试 我们新增一个计算均线的功能还是用aksahre库计算A股股票过去M个交易日N天均线 直接看过程 执行前的本地知识库一共五个需求docs 执行过程 请输入您的问题计算A股股票过去M个交易日N天均线可以使用akshare库按按股票代码(stock_code),前复权(qfq)使用stock_zh_a_hist(symbolstock_code,adjust“qfq”)接口获得该股票历史行情然后根据收盘价属性为收盘计算N天均线计算结果在历史行情的dataframe新增一列然后获取最近M个交易日的数据作为返回结果并用print打印代码格式为python... 请以600029为例计算过去200个交易日内60天均线
预期与本地知识库匹配无关
raw_code:: 与上下文无关。
接下来我将直接回答关于计算A股股票过去M个交易日N天均线的问题。以600029为例计算过去200个交易日内60天均线的Python代码如下
import akshare as ak
import pandas as pd
from datetime import datetime, timedelta# 设置股票代码
stock_code 600029
# 设置回溯的交易日数量
M 200
# 设置均线周期
N 60# 获取股票历史行情数据前复权
hist_data ak.stock_zh_a_hist(symbolstock_code, adjustqfq)
# 确保数据按日期升序排列
hist_data hist_data.sort_values(by日期)# 计算N天均线
hist_data[MA{}.format(N)] hist_data[收盘].rolling(windowN).mean()# 获取最近M个交易日的数据
end_date hist_data.iloc[-1][日期]
start_date end_date - timedelta(daysM)
recent_data hist_data[(hist_data[日期] start_date) (hist_data[日期] end_date)]# 打印结果
print(recent_data[[日期, 收盘, MA{}.format(N)]])这段代码首先导入了必要的库并设置了股票代码、需要回溯的交易日数M以及均线周期N。接着它调用了akshare库的stock_zh_a_hist接口来获取股票的历史行情数据并对其进行前复权处理。之后计算了N天的移动平均线并在DataFrame中新增了一列。最后筛选出了最近M个交易日的数据并打印出来其中包括日期、收盘价以及计算出的N天均线值。 执行成功:
raw_file_name:: “China_Stock_Analysis.py”
file_name:: China_Stock_Analysis.py
文件保存成功
result:: {0: ’ 日期 收盘 MA60\n4830 2023-11-13 5.97 6.202000\n4831 2023-11-14 5.97 6.186333\n4832 2023-11-15 6.02 6.172833\n4833 2023-11-16 6.06 6.161500\n4834 2023-11-17 6.13 6.150833\n… … … …\n4958 2024-05-27 5.98 5.695833\n4959 2024-05-28 5.92 5.695000\n4960 2024-05-29 5.92 5.695500\n4961 2024-05-30 5.90 5.695167\n4962 2024-05-31 5.88 5.698000\n\n[133 rows x 3 columns]\n’}
是否需要将代码插入知识库(y/n): y {‘name’: ‘node-1’, ‘cluster_name’: ‘elasticsearch’, ‘cluster_uuid’: ‘F6X7HlMMS-eYJlzY8Tg3Mw’, ‘version’: {‘number’: ‘7.9.2’, ‘build_flavor’: ‘default’, ‘build_type’: ‘tar’, ‘build_hash’: ‘d34da0ea4a966c4e49417f2da2f244e3e97b4e6e’, ‘build_date’: ‘2020-09-23T00:45:33.626720Z’, ‘build_snapshot’: False, ‘lucene_version’: ‘8.6.2’, ‘minimum_wire_compatibility_version’: ‘6.8.0’, ‘minimum_index_compatibility_version’: ‘6.0.0-beta1’}, ‘tagline’: ‘You Know, for Search’} 需求插入知识库成功 本轮处理完毕
执行完成后的本地知识库 增加成功
总结 经过改进之后既可以通过匹配本地知识库生成代码也可以新增需求后丰富本地知识库