ai-agent-book 精选快照(<2MB 代码与文档,来自 github.com/bojieli/ai-agent-book)
Build latest book artifacts / build (push) Canceled after 0s
dependency resolution / resolve (3.11) (push) Canceled after 0s
dependency resolution / resolve (3.13) (push) Canceled after 0s
deploy-pages / build (push) Canceled after 0s
deploy-pages / deploy (push) Canceled after 0s
i18n consistency check / check (push) Canceled after 0s
provider adoption tests / test (chapter2/context-compression) (push) Canceled after 0s
provider adoption tests / test (chapter2/prompt-injection) (push) Canceled after 0s
provider adoption tests / test (chapter2/system-hint) (push) Canceled after 0s
provider adoption tests / test (chapter3/log-sanitization) (push) Canceled after 0s
web-search-agent tests / test (push) Canceled after 0s
web-search-agent tests / agentbook (push) Canceled after 0s
Build latest book artifacts / build (push) Canceled after 0s
dependency resolution / resolve (3.11) (push) Canceled after 0s
dependency resolution / resolve (3.13) (push) Canceled after 0s
deploy-pages / build (push) Canceled after 0s
deploy-pages / deploy (push) Canceled after 0s
i18n consistency check / check (push) Canceled after 0s
provider adoption tests / test (chapter2/context-compression) (push) Canceled after 0s
provider adoption tests / test (chapter2/prompt-injection) (push) Canceled after 0s
provider adoption tests / test (chapter2/system-hint) (push) Canceled after 0s
provider adoption tests / test (chapter3/log-sanitization) (push) Canceled after 0s
web-search-agent tests / test (push) Canceled after 0s
web-search-agent tests / agentbook (push) Canceled after 0s
This commit is contained in:
@@ -0,0 +1 @@
|
||||
"""Small account service used by the action-threshold experiment."""
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
def authenticate(store, username, password):
|
||||
profile = store.find(username.strip())
|
||||
if profile is None or profile.password != password:
|
||||
return None
|
||||
return profile
|
||||
@@ -0,0 +1,2 @@
|
||||
def lookup_profile(store, username):
|
||||
return store.find(username)
|
||||
@@ -0,0 +1,8 @@
|
||||
from dataclasses import dataclass
|
||||
|
||||
|
||||
@dataclass(frozen=True)
|
||||
class Profile:
|
||||
username: str
|
||||
email: str
|
||||
password: str
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
from accounts.models import Profile
|
||||
|
||||
|
||||
def register(store, username, email, password):
|
||||
display_name = username.strip()
|
||||
key = display_name.lower()
|
||||
profile = Profile(display_name, email, password)
|
||||
store.save(key, profile)
|
||||
return profile
|
||||
@@ -0,0 +1,11 @@
|
||||
class AccountStore:
|
||||
def __init__(self):
|
||||
self._profiles = {}
|
||||
|
||||
def save(self, key, profile):
|
||||
if key in self._profiles:
|
||||
raise ValueError("username already exists")
|
||||
self._profiles[key] = profile
|
||||
|
||||
def find(self, key):
|
||||
return self._profiles.get(key)
|
||||
Reference in New Issue
Block a user