当前位置: 首页 > wzjs >正文

怎么开发一个网站重庆seo管理平台

怎么开发一个网站,重庆seo管理平台,网站推广专员的岗位职责是什么,企业做优化好还是超级网站好文档准备# 存放所有文档的路径 path_list ["../note/太上老君的炉子.txt","../note/中国第一颗原子弹.txt","../note/大明王朝.txt","../note/人工智能发展史.txt" ]文档加载和分割# 存放分割后所有的文档块 docs_list [] # 创建分割…

文档准备

# 存放所有文档的路径
path_list = ["../note/太上老君的炉子.txt","../note/中国第一颗原子弹.txt","../note/大明王朝.txt","../note/人工智能发展史.txt"
]

文档加载和分割

# 存放分割后所有的文档块
docs_list = []
# 创建分割器 按字符分割
ext_splitter = CharacterTextSplitter(chunk_size=100, # 每个文档块的最大字符数chunk_overlap=10 # 相邻文档块间的重叠字符数
)
# 遍历文档
for path in path_list:# 加载文档documents = TextLoader(path, encoding="utf-8").load()# 分割docs = ext_splitter.split_documents(documents)# 存储docs_list += docs

初始化 Embedding 模型

embeddings = DashScopeEmbeddings(model="text-embedding-v1",  # 通义千问官方 Embedding 模型dashscope_api_key=key,
)

初始化 向量存储数据库实例

vector_store = Chroma(collection_name="my_docs",  # 集合名称embedding_function=embeddings,  # 嵌入模型persist_directory="../chroma_db"  # 持久化目录
)

文档列表存入向量数据库

uuids = [str(uuid4()) for _ in range(len(docs_list))]
vector_store.add_documents(documents=docs_list, ids=uuids)

创建检索器

retriever = vector_store.as_retriever()

处理检索结果

def format_docs(docs):# 将文档中的page_content属性以换行符连接起来return "\\n\\n".join(doc.page_content for doc in docs)

创建一个数据处理管道

用于获取context内容

  • 输入:{"question": "问题内容", ...}
  • 输出:文档1:xxxx...\\n\\n文档2:xxxx...
get_context = itemgetter("question") | retriever | format_docs

数据流整合

将context拼接到question之后

  • 输入:{"question": "问题内容", ...}
  • 输出:{"question": "问题内容", "context": "文档1:xxxx...\\n\\n文档2:xxxx..." ...}
context_gen = RunnablePassthrough.assign(context=get_context)

创建提示词

prompt = ChatPromptTemplate.from_messages([("system", "你是一个友好的助手,这是{context}。"),MessagesPlaceholder(variable_name="history"),("human", "{question}")
])

初始化大模型

llm = ChatTongyi(model_name="qwen-max",dashscope_api_key=key,streaming=True
)

创建基础处理链

base_chain = context_gen | prompt | llm

创建全局存储字典

  • :会话ID(session_id)
  • InMemoryHistory 实例
store = {}

实现内存历史存储类

class InMemoryHistory(BaseChatMessageHistory, BaseModel):messages: List[BaseMessage] = Field(default_factory=list)def add_messages(self, messages: List[BaseMessage]) -> None:self.messages.extend(messages)def clear(self) -> None:self.messages = []

获取会话历史

def get_session_history(session_id):if session_id not in store:store[session_id] = InMemoryHistory()return store[session_id]

创建带有历史的对话链

chain_with_history = RunnableWithMessageHistory(base_chain,get_session_history,input_messages_key="question",history_messages_key="history"
)

测试

r4 = chain_with_history.invoke({"question": "太上老君炼丹炉的起源传说,出自哪里?"},config={'configurable': {"session_id": "test"}}
)
print(r4)r5 = chain_with_history.invoke({"question": "我刚才问的什么?"},config={'configurable': {"session_id": "test"}}
)
print(r5)

http://www.dtcms.com/wzjs/475481.html

相关文章:

  • 怎么让网站排名下降bt兔子磁力搜索引擎最新版
  • 怎么通过数据库做网站的登录数字营销软件
  • 服务器做视频网站吗哈尔滨网站优化
  • 网站开发需要数据库免费注册公司
  • 怎么免费建设个人网站百度词条官网入口
  • 企业加盟网站建设茶叶网络推广方案
  • 个人网站备案 服务内容怎么写万网域名交易
  • 手机版网站模板 免费苹果看国外新闻的app
  • 贵阳网站建设咨询电脑培训机构哪个好
  • 西安教育平台网站建设制作一个小型网站
  • 专业的网页设计和网站建设公司网络营销渠道有哪些
  • 给个网站你们知道的企业站seo案例分析
  • 瓦房店 网站建设公司网络推广方法
  • 用asp做网站有哪控件百度地图推广怎么做的
  • 安阳网站公司哪家好2024政治时政热点
  • 网站开发公司的发票莱阳seo外包
  • 武威网站建设做网站建设的公司
  • 网站做弹窗广告吗制作网站需要什么
  • 网站做推广页需要什么企业培训课程分类
  • 企业网站建设价格表小区推广最有效的方式
  • 在工商局网站做年报要交费吗互联网seo是什么意思
  • 微信公众号设计网站湖南网站营销推广
  • 苏州聚尚网络科技有限公司天津seo外包
  • 网站分辨率做96是否会更好seo计费系统登录
  • wordpress搜索引擎优化抖音seo培训
  • 工信部网站备案注销网络销售是什么工作内容
  • wordpress国外全能主题推荐seo优化培训机构
  • 政府网站安全系统建设方案独立站seo
  • 青州市住房和城乡建设局网站怎样才能在百度上发布信息
  • 北京网站建设及优化3d建模培训学校哪家好