🤖 ThinkAi

企业级 AI 大模型集成框架
开箱即用,简单易用,功能全面

Python 3.9+ 12 种模型 PyPI MIT License

框架概述

ThinkAi 是一个基于 Python 异步的企业级 AI 大模型集成框架。核心特性:轻量零依赖(不依赖任何 Web 框架,完全脱离 FastAPI)、多模型支持、统一接口、同步/异步双模式。

🏆 核心优势

一次配置,多模型自由切换。支持 12 种主流大模型,包括本地 Ollama 和云端 OpenAI、通义千问、DeepSeek、Claude、Gemini 等。

安装

# 基础安装(轻量核心,无任何 Web 框架依赖) pip install thinkai-framework # Web 开发支持 pip install thinkai-framework[web] # 安装特定 Provider pip install thinkai-framework[ollama] pip install thinkai-framework[openai] pip install thinkai-framework[qwen] # 安装全部依赖 pip install thinkai-framework[all]

快速开始

1. 最简使用(3行代码)

from thinkai import ThinkAI ai = ThinkAI(provider="ollama", model="llama3") response = await ai.chat("你好") print(response.content)

2. 同步模式(无需 async/await)

from thinkai import SyncThinkAI ai = SyncThinkAI(provider="ollama", model="llama3") response = ai.chat("你好") print(response.content)

3. CLI 命令行

thinkai version thinkai chat "你好" --provider ollama thinkai providers

4. FastAPI 集成

from fastapi import FastAPI from thinkai import ThinkAI app = FastAPI() ai = ThinkAI(provider="ollama", model="llama3") @app.post("/chat") async def chat(message: str): response = await ai.chat(message) return {"content": response.content}

5. 多模型配置与切换

ai = ThinkAI(provider="ollama", model="llama3") # 注册多个模型 ai.register_model("qwen", provider="qwen", model="qwen-turbo") ai.register_model("deepseek", provider="deepseek", model="deepseek-chat") ai.register_model("gpt4", provider="openai", model="gpt-4") # 自由切换 response1 = await ai.chat("你好", model="llama3") response2 = await ai.chat("你好", model="qwen")

6. 流式响应

async for chunk in ai.chat_stream("讲一个故事"): if chunk.choices and chunk.choices[0].delta.content: print(chunk.choices[0].delta.content, end="", flush=True)

支持的 AI 模型

Provider默认模型API 地址类型
Ollamallama3http://localhost:11434本地免费
OpenAIgpt-3.5-turboapi.openai.com云端
DeepSeekdeepseek-chatapi.deepseek.com云端
通义千问qwen-turbodashscope.aliyuncs.com云端
智谱 GLMglm-4open.bigmodel.cn云端
百度文心ernie-botqianfan.baidubce.com云端
腾讯混元hunyuanapi.hunyuan.cloud.tencent.com云端
豆包 ARKdoubao-proark.cn-beijing.volces.com云端
Kimimoonshot-v1-8kapi.moonshot.cn云端
MiniMaxabab6-chatapi.minimax.chat云端
Claudeclaude-3-sonnetapi.anthropic.com云端
Geminigemini-progenerativelanguage.googleapis.com云端

RAG 检索增强生成

from thinkai import ThinkAI from thinkai.rag import RAGPipeline ai = ThinkAI(provider="ollama") # 创建 RAG Pipeline(自动使用 Ollama Embedding) rag = RAGPipeline( documents=["./docs", "./knowledge"], ai_client=ai, ) # 索引文档 await rag.index() # 查询 answer = await rag.query("ThinkAi 框架支持哪些 AI 模型?") print(answer)

Agent 系统

Function Calling Agent

from thinkai import ThinkAI from thinkai.agent import FunctionCallingAgent from thinkai.skill import MathSkill, CodeSkill ai = ThinkAI(provider="openai", api_key="your-key") agent = FunctionCallingAgent( name="math-coder", tools=MathSkill().get_tools() + CodeSkill().get_tools(), ai_client=ai, verbose=True, ) result = await agent.run("计算123*456, 然后用Python写一个斐波那契数列函数")

多 Agent 协作

from thinkai.agent.orchestrator import MultiAgentOrchestrator, AgentRole orchestrator = MultiAgentOrchestrator(ai_client=ai) # 添加 Agent orchestrator.add_agent(researcher_agent, role=AgentRole.SPECIALIST) orchestrator.add_agent(analyzer_agent, role=AgentRole.WORKER) # 顺序执行 result = await orchestrator.run( task=["搜索AI最新进展", "分析搜索结果"], mode="sequential" ) # 并行执行 result = await orchestrator.run( task=["搜索AI", "搜索量子计算", "搜索区块链"], mode="parallel" )

记忆系统

from thinkai.memory import MemoryManager, FileMemoryStore memory = MemoryManager( store=FileMemoryStore(base_path="./my_memory"), max_memories=100, enable_forgetting=True, # 自动遗忘 ) await memory.remember("用户喜欢Python编程", memory_type="preference", importance=0.8) await memory.remember("项目使用FastAPI框架", memory_type="fact", importance=0.9) results = await memory.recall("编程语言") context = await memory.build_context_prompt("Python开发", max_tokens=500)

项目结构

thinkai/ ├── core/ # 核心模块(客户端、配置、数据模型) ├── providers/ # Provider 实现(12 种模型) ├── session/ # 会话管理 ├── prompt/ # Prompt 模板(16 种) ├── middleware/ # 中间件(日志、重试、限流) ├── rag/ # RAG 模块 ├── agent/ # Agent 模块(ReAct、Function Calling、多Agent协作) ├── skill/ # Skill 系统(9 大内置 Skill) ├── memory/ # 记忆系统 ├── mcp/ # MCP 协议支持 ├── cache/ # 缓存层 ├── structured/ # 结构化输出 ├── tracing/ # 链路追踪 ├── plugin/ # 插件系统 ├── sync.py # 同步 API ├── cli.py # CLI 工具 └── tests/ # 223 个测试用例

配置方式

方式一:代码配置

ai = ThinkAI( provider="ollama", model="llama3", temperature=0.7, max_tokens=2048, timeout=60, )

方式二:环境变量

export THINKAI_DEFAULT_PROVIDER=ollama export THINKAI_DEFAULT_MODEL=llama3 export OPENAI_API_KEY=your_key_here

方式三:YAML 配置文件

default_provider: "ollama" default_model: "llama3" providers: openai: api_key: "${OPENAI_API_KEY}" api_base: "https://api.openai.com/v1"

高级功能

结构化输出(Pydantic 模型约束)

from pydantic import BaseModel, Field class PersonInfo(BaseModel): name: str = Field(description="人名") age: int = Field(description="年龄") occupation: str = Field(description="职业") person = await ai.structured.extract( "张三今年28岁, 是一名软件工程师", PersonInfo, ) print(person.name) # 张三

@tool 装饰器

from thinkai.agent.tool import tool @tool def search_web(query: str, num_results: int = 5) -> str: """Search the web for information.""" return f"Results for: {query}" agent = FunctionCallingAgent(tools=[search_web, calculate], ai_client=ai)

速率限制

from thinkai.middleware.rate_limit import RateLimitMiddleware ai.add_middleware(RateLimitMiddleware( requests_per_minute=60, burst=10, max_concurrent=10, ))

MCP(Model Context Protocol)

from thinkai.mcp import MCPAdapter, MCPRegistry adapter = MCPAdapter() fs_config = MCPRegistry.filesystem("/workspace") adapter.add_server(**fs_config) await adapter.connect_all() agent = adapter.create_agent(ai_client=ai) result = await agent.run("读取 /workspace/readme.md 文件内容")

安全特性

代码执行沙箱

AST 验证 + 受限内置函数,禁止 import、文件访问、系统调用

数学表达式安全

AST 解析,只允许数学运算符,杜绝 eval() 注入

文件路径限制

默认只允许访问当前目录,可配置 allowed_dirs

环境变量保护

只允许读取指定前缀的环境变量

仓库地址

平台地址
Giteehttps://gitee.com/hongxinge/think-ai
GitHubhttps://github.com/hongxinge/ThinkAi
PyPIhttps://pypi.org/project/thinkai-framework/