chainlit 一些内置session 变量

chainlit 兼容扩展点不是很多,但是灵活性还是很不错的,比如我们可以自己基于session 实现一些数据在不同阶段的共享,当然chainlit也内置了一些
变量,可以方便使用

内置的变量

  • 信息
user_session = user_sessions[context.session.id]
# Copy important fields from the session
user_session["id"] = context.session.id
user_session["env"] = context.session.user_env
user_session["chat_settings"] = context.session.chat_settings
user_session["user"] = context.session.user
user_session["chat_profile"] = context.session.chat_profile
user_session["http_referer"] = context.session.http_referer
user_session["client_type"] = context.session.client_type
 
if isinstance(context.session, WebsocketSession):
    user_session["languages"] = context.session.languages
 
return user_session.get(key, default)
  • 简单说明
    基于session 存储信息的使用,就类似我们日常开发中的session 使用
import chainlit as cl
 
 
@cl.on_chat_start
def on_chat_start():
    cl.user_session.set("counter", 0)
 
 
@cl.on_message
async def on_message(message: cl.Message):
    counter = cl.user_session.get("counter")
    counter += 1
    cl.user_session.set("counter", counter)
 
    await cl.Message(content=f"You sent {counter} message(s)!").send()

说明

使用好内置session 变量可以做一些有趣的事情,比如chainlit 的starter 是比较方便的功能,但是缺少一些上下文信息(比如我们需要处理特定任务的场景),使用好chat_profile 这个session 变量就可以做不少事情

参考资料

backend/chainlit/user_session.py
https://docs.chainlit.io/concepts/user-session
https://docs.chainlit.io/concepts/message

posted on   荣锋亮  阅读(60)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2022-09-18 wunderbase wundergraph 团队开源的一个serverless graphql database
2022-09-18 buf connect-go 路由
2022-09-18 observIQ 开源的OpenTelemetry collector 实现
2022-09-18 buf connect-go 试用
2022-09-18 buf buf.work.yaml 一个好用的功能
2022-09-18 buf 的bsr
2022-09-18 buf 工具对于buf使用的学习

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示