moves keystore interface
This commit is contained in:
@@ -1,8 +1,9 @@
|
||||
import crypto from "crypto";
|
||||
import { Key, KeyProvider, KeyStore } from "..";
|
||||
import { Key, KeyProvider } from "..";
|
||||
import { config } from "../../../config";
|
||||
import { logger } from "../../../logger";
|
||||
import type { AnthropicModelFamily } from "../../models";
|
||||
import { KeyStore } from "../stores";
|
||||
import { AnthropicKeyChecker } from "./checker";
|
||||
|
||||
// https://docs.anthropic.com/claude/reference/selecting-a-model
|
||||
|
||||
@@ -65,12 +65,6 @@ export interface KeyProvider<T extends Key = Key> {
|
||||
recheck(): void;
|
||||
}
|
||||
|
||||
export interface KeyStore<T extends Pick<Key, "key">> {
|
||||
load(): Promise<T[]>;
|
||||
add(key: T): void;
|
||||
update(key: T): void;
|
||||
}
|
||||
|
||||
export let keyPool: KeyPool;
|
||||
export async function init() {
|
||||
keyPool = new KeyPool();
|
||||
|
||||
@@ -3,10 +3,11 @@ round-robin access to keys. Keys are stored in the OPENAI_KEY environment
|
||||
variable as a comma-separated list of keys. */
|
||||
import crypto from "crypto";
|
||||
import http from "http";
|
||||
import { Key, KeyProvider, Model, KeyStore } from "../index";
|
||||
import { Key, KeyProvider, Model } from "../index";
|
||||
import { config } from "../../../config";
|
||||
import { logger } from "../../../logger";
|
||||
import { OpenAIKeyChecker } from "./checker";
|
||||
import { KeyStore } from "../stores";
|
||||
import { getOpenAIModelFamily, OpenAIModelFamily } from "../../models";
|
||||
|
||||
export type OpenAIModel =
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import type firebase from "firebase-admin";
|
||||
import { AIService, Key, KeyStore } from "..";
|
||||
import { KeyStore } from ".";
|
||||
import { AIService, Key } from "..";
|
||||
import { getFirebaseApp } from "../../../config";
|
||||
|
||||
export class FirebaseKeyStore<K extends Pick<Key, "key">>
|
||||
|
||||
@@ -1,2 +1,10 @@
|
||||
import { Key } from "..";
|
||||
|
||||
export { FirebaseKeyStore } from "./firebase";
|
||||
export { MemoryKeyStore } from "./memory";
|
||||
|
||||
export interface KeyStore<T extends Pick<Key, "key">> {
|
||||
load(): Promise<T[]>;
|
||||
add(key: T): void;
|
||||
update(key: T): void;
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { APIFormat, Key, KeyStore } from "..";
|
||||
import { KeyStore } from ".";
|
||||
import { APIFormat, Key } from "..";
|
||||
|
||||
export class MemoryKeyStore<K extends Pick<Key, "key">> implements KeyStore<K> {
|
||||
private env: string;
|
||||
@@ -26,7 +27,7 @@ export class MemoryKeyStore<K extends Pick<Key, "key">> implements KeyStore<K> {
|
||||
bareKeys = [
|
||||
...new Set(process.env[this.env]?.split(",").map((k) => k.trim())),
|
||||
];
|
||||
return bareKeys.map((key) => ({ key } as K));
|
||||
return bareKeys.map((key) => ({ key } as K)); // TODO: remove assertion
|
||||
}
|
||||
|
||||
public add(_key: K) {}
|
||||
|
||||
Reference in New Issue
Block a user