做国际网站花钱吗,网站创建需要什么,win7环境wordpress,wordpress被挂马简介 Config 包含两大类内容#xff0c;
ConfigurableField 可配置的字段 configurable_alternatives 可配置的替代方案 分别使用两篇文章来给大家介绍#xff0c;本篇先介绍ConfigurableField
常规介绍 一些资料会这样介绍
model_spec model.configurable_fields(model…简介 Config 包含两大类内容
ConfigurableField 可配置的字段 configurable_alternatives 可配置的替代方案 分别使用两篇文章来给大家介绍本篇先介绍ConfigurableField
常规介绍 一些资料会这样介绍
model_spec model.configurable_fields(model_nameConfigurableField(idmodel_name,description指定一个你想要使用的model))
model_spec.invoke(input你好啊我是你的好朋友 —— Song榆钱儿, config{configurable: {model_name: qwen-plus}})输出结果
content你好Song榆钱儿很高兴和你成为好朋友。有什么我可以帮助你的吗 response_metadata{model_name: qwen-plus, finish_reason: stop, request_id: 57cfe500-0520-9ac6-8c5c-50c077539cbc, token_usage: {input_tokens: 21, output_tokens: 19, total_tokens: 40}} idrun-9fc162a7-4089-4f81-a792-2c17206ef9b0-0然后告诉你可以配置一个model_name作为config参数在invoke时可以把具体的model_name传递进来例如qwen-plus
进阶用法
通常一些资料没告诉你的是可以有哪些可配置的Field 这里我给大家介绍...授之以渔
model.__fields__.keys()输出结果
dict_keys([name, cache, verbose, callbacks, tags, metadata, custom_get_token_ids, callback_manager, client, model_name, model_kwargs, top_p, dashscope_api_key, streaming, max_retries])想用哪个用哪个
当然可以直接用__fields__这样就把整个dict每个Field和含义内容都打印出来
那这个配置除了参数化还有何用处。。。
应用场景 prompt场景
我们看下prompt提示词config能做些什么 以messages为例它可以帮助组合成新的提示词 代码如下
# 先准备两个
prompt_add_1 ChatPromptTemplate.from_messages([(human, 你好),(ai, 你好有什么可以帮助你的吗)])prompt_add_2 ChatPromptTemplate.from_messages([(human, 11等于几),(ai, 11的计算结果等于2)])
# 接下来我们看看怎么用它们
prompt_spec prompt.configurable_fields(messagesConfigurableField(idmessages,description消息列表))# 见证奇迹的时刻
prompt_spec.invoke({}, config{configurable: {messages: [prompt_add_1, prompt_add_2]}})输出结果
messages[HumanMessage(content你好), AIMessage(content你好有什么可以帮助你的吗), HumanMessage(content11等于几), AIMessage(content11的计算结果等于2)]细心的小伙伴会发现上述的方式与这种方式 一毛一样
# 换种方式组合只不过不用config
prompt ChatPromptTemplate.from_messages([prompt_add_1, prompt_add_2])
prompt.invoke({})chain场景
看看chain有哪些可config的field
chain.__fields__.keys()输出
dict_keys([name, first, middle, last])name和First都很简单下面分别以“middle”、“last”为例
# 定义一个可config的model
model_spec model.configurable_fields(model_nameConfigurableField(idmodel_name,description指定一个你想要使用的model))# 一会儿要用到的函数
def change_me(promptvalue):return promptvalue.to_string().replace(Song榆钱儿, Songjg)# 一个简单的chain
chain prompt | model_spec# 将chain做成可config的...
chain chain.configurable_fields(middleConfigurableField(idprocess, description这是啥))# 来吧看实验
chain.invoke(input你好啊我是你的好朋友 —— Song榆钱儿, config{configurable: {process: [RunnableLambda(change_me)]}})# 不仅有middle还有last
chain chain.configurable_fields(middleConfigurableField(iddeal, description这是啥),
lastConfigurableField(idmodel_spec, description这是啥))chain.invoke(input你好啊我是你的好朋友 —— Song榆钱儿, config{configurable: {deal: [RunnableLambda(changeme)],
model_name: qwen-plus}}))输出结果
content你好Songjg很高兴再次与你交流。有什么我可以帮助你的吗 response_metadata{model_name: qwen-turbo, finish_reason: stop, request_id: dc0bca5d-e0ce-9fc9-b5e5-c76987f09390, token_usage: {input_tokens: 23, output_tokens: 18, total_tokens: 41}} idrun-a5a4f67f-7a9c-440b-b969-0ac1ffe8b812-0
Human: 你好啊我是你的好朋友 —— Song榆钱儿
content你好Songjg很高兴再次见到你。有什么我可以帮助你的吗 response_metadata{model_name: qwen-plus, finish_reason: stop, request_id: c3ff953d-a72f-9de9-be74-7150a1f3dce3, token_usage: {input_tokens: 23, output_tokens: 17, total_tokens: 40}} idrun-055dcf5b-433f-486a-9beb-5f3d3947b098-0Agent场景
agent_executor AgentExecutor(agentagent, toolstools, verboseTrue, handle_parsing_errorsTrue,callbacksNone, callback_managerNone, return_intermediate_stepsTrue)agent_executor.__fields__.keys()看看有什么
dict_keys([name, memory, callbacks, verbose, tags, metadata, callback_manager, agent, tools, return_intermediate_steps, max_iterations, max_execution_time, early_stopping_method, handle_parsing_errors, trim_intermediate_steps])基本上都是AgentExecutor简单的参数“偷懒”就不挨个介绍请各位看官自行实验
One more thing
RunnableWithMessageHistory(……………………history_factory_config[ConfigurableFieldSpec(idSongjg,annotationstr,nameSong榆钱儿,description我的名字,default,is_sharedTrue)]这个是一种应用比较广泛的消息历史相关的Runnable可定义config传参变量关于它的详细内容以后再给大家介绍...