AutoGenLib 是一个 Python 库,使用 OpenAI API 动态生成代码,当你尝试导入一个不存在的模块或函数时,会根据你提供的高级描述自动创建代码。
动态代码生成:支持导入当前不存在的模块和函数。
上下文感知:生成新函数时,会结合现有代码的信息。
渐进式增强:能无缝为现有模块添加新功能。
无默认缓存:每次导入都会生成全新代码,带来更多样、更具创意的结果。
完整代码库上下文:LLM可查看所有先前生成的模块,以保证更好的一致性。
调用代码分析:LLM会分析导入模块的实际代码,能更好地理解上下文和需求。
自动异常处理:所有异常都会发送给LLM,以便提供清晰的错误解释和修复方案。
可通过以下方式安装:
pip install autogenlib
也可从源代码安装:
git clone https://github.com/cofob/autogenlib.git
cd autogenlib
pip install -e .
Python 3.12及以上版本。
OpenAI API密钥。
首先需在环境变量中设置OpenAI API密钥:
export OPENAI_API_KEY="你的API密钥"
以下是一个简单示例,导入尚不存在的函数并自动生成:
from autogenlib.tokens import generate_token
token = generate_token(length=32)
print(token)
1、使用需求描述初始化AutoGenLib。
2、当导入autogenlib
命名空间下的模块或函数时:
检查该模块或函数是否已存在。
若不存在,分析执行导入操作的代码以理解上下文。
向OpenAI API发送包含用户描述和上下文的请求。
API生成相应代码。
验证并执行生成的代码,使请求的模块或函数可供使用。
生成TOTP生成器
from autogenlib.totp import totp_generator
print(totp_generator("SECRETKEY123"))
后续添加验证函数
from autogenlib.totp import verify_totp
result = verify_totp("SECRETKEY123", "123456")
print(f"验证结果:{result}")
利用上下文感知
from autogenlib.processor import get_highest_score
data = [{"user": "Alice", "score": 95}, {"user": "Bob", "score": 82}]
print(get_highest_score(data)) # 会正确提取最高分
创建多个模块
from autogenlib import init
init("密码实用工具库")
# 生成加密模块
from autogenlib.encryption import encrypt_text, decrypt_text
encrypted = encrypt_text("秘密消息", "password123")
decrypted = decrypt_text(encrypted, "password123")
print(decrypted)
# 生成哈希模块
from autogenlib.hashing import hash_password, verify_password
hashed = hash_password("my_secure_password")
is_valid = verify_password("my_secure_password", hashed)
print(f"密码有效:{is_valid}")
设置OpenAI API密钥 可通过环境变量设置:
export OPENAI_API_KEY="你的API密钥"
# 可选
export OPENAI_API_BASE_URL="https://openrouter.ai/api/v1" # 使用OpenRouter API
export OPENAI_MODEL="openai/gpt-4.1"
可在Python代码中设置(不建议用于生产环境):
import os
os.environ["OPENAI_API_KEY"] = "你的API密钥"
缓存 默认情况下,AutoGenLib不缓存生成的代码,每次导入模块时,LLM都会生成全新代码,能带来更多样甚至更有趣的结果,不过同一导入在不同运行中可能会产生不同的实现。
若需要启用缓存(为了一致性或减少API调用),可按如下方式操作:
from autogenlib import init
init("数据处理库", enable_caching=True)
也可在运行时切换缓存状态:
from autogenlib import init, set_caching
init("数据处理库")
# 后续代码中:
set_caching(True) # 启用缓存
set_caching(False) # 禁用缓存
启用缓存后,生成的代码会存储在~/.autogenlib_cache
中。
生成新代码需要互联网连接。
依赖OpenAI API的可用性。
生成代码的质量取决于用户描述的清晰程度。
查看生成的代码
可以查看为模块生成的代码:
from autogenlib.totp import totp_generator
import inspect
print(inspect.getsource(totp_generator))
AutoGenLib如何使用OpenAI API
AutoGenLib为OpenAI API创建的提示包含以下内容:
用户提供的描述。
正在增强的模块中的任何现有代码。
所有先前生成模块的完整上下文。
导入模块/函数的代码。
所需的特定函数或功能。