Replies: 2 comments 1 reply
|
未来实现流程: 添加 config key先在 enum EdgeConfigKeys {
/**
* Assistant whitelist
*/
AssistantWhitelist = 'assistant_whitelist',
}实现对应的读取方法逻辑与类型export class EdgeConfig {
// 实现逻辑
getAgentWhitelist = async (): Promise<string[] | undefined> => {
return this.client.get<string[]>(EdgeConfigKeys.AssistantWhitelist);
};
}实现应该是很简单的,主要还是包一层方法,屏蔽掉 config key 最裸的一层实现,同时补充对应的类型定义。如果这里需要添加兜底字段,也可以在这里加。 在对应的部分添加实现需要有一个来是否进入 edge config 的判断逻辑,目前感觉 const data: AgentStoreIndex = await res.json();
// Get the assistant whitelist from Edge Config
const edgeConfig = new EdgeConfig();
if (!!appEnv.VERCEL_EDGE_CONFIG) {
const assistantWhitelist = await edgeConfig.getAgentWhitelist();
if (assistantWhitelist && assistantWhitelist?.length > 0) {
data.agents = data.agents.filter((item) => assistantWhitelist.includes(item.identifier));
}
}
return data; |
0 replies
|
不了解这个设计思路的实现,不过支持 Redis 这个方向对于未来一些功能的实现会有很大帮助, Vercel 环境可以使用免费的 Redis 云数据库,私有化环境直接本地部署 Redis |
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
背景
之前做 #913 这个的时候提过,未来会需要一个服务端的配置能力。正好最近有了一个助手市场的黑/白名单需求,在这个 RFC 中先实现一版。
设计思路
从终局来看,这个中间配置层应该是要兼容各种部署环境的,比如:
但是目前这一期简单做,直接写 Vercel Edge Config,后续抽象中间层,并抽取 ConfigRuntime ,到时候就可以提供 Edge Config, Redis Config 这样的 provider。
进展
All reactions