{"id":37019022,"url":"https://github.com/wangzihaogithub/ai-assistant","last_synced_at":"2026-01-14T02:02:33.499Z","repository":{"id":283462398,"uuid":"951752590","full_name":"wangzihaogithub/ai-assistant","owner":"wangzihaogithub","description":"AI助手","archived":false,"fork":false,"pushed_at":"2025-11-28T09:46:49.000Z","size":3956,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-11-30T03:23:38.723Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wangzihaogithub.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-03-20T07:28:41.000Z","updated_at":"2025-11-28T09:46:52.000Z","dependencies_parsed_at":"2025-03-20T11:34:50.845Z","dependency_job_id":"50c3ebd8-119a-407e-a4b7-09f5d3ac0b9e","html_url":"https://github.com/wangzihaogithub/ai-assistant","commit_stats":null,"previous_names":["wangzihaogithub/ai-assistant"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/wangzihaogithub/ai-assistant","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wangzihaogithub%2Fai-assistant","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wangzihaogithub%2Fai-assistant/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wangzihaogithub%2Fai-assistant/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wangzihaogithub%2Fai-assistant/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wangzihaogithub","download_url":"https://codeload.github.com/wangzihaogithub/ai-assistant/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wangzihaogithub%2Fai-assistant/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28408711,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T01:52:23.358Z","status":"online","status_checked_at":"2026-01-14T02:00:06.678Z","response_time":107,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-01-14T02:02:32.817Z","updated_at":"2026-01-14T02:02:33.491Z","avatar_url":"https://github.com/wangzihaogithub.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ai-assistant\n\n## 介绍\n\nAI助手jar包，可二次开发复用 (基于langchain4j的java8版本开发)\n\n*   **表结构关系-在线文档：** [https://zihaoapi.cn/static/doc/ai.html](https://zihaoapi.cn/static/doc/ai.html)\n*   **GitHub 仓库：** [https://github.com/wangzihaogithub/ai-assistant](https://github.com/wangzihaogithub/ai-assistant)\n*   **Maven Central：** [![Maven Central](https://img.shields.io/maven-central/v/com.github.wangzihaogithub/ai-assistant.svg?label=Maven%20Central)](https://search.maven.org/search?q=g:com.github.wangzihaogithub%20AND%20a:ai-assistant)\n\n### Maven 依赖\n\n```xml\n\u003c!-- https://github.com/wangzihaogithub/ai-assistant --\u003e\n\u003c!-- https://mvnrepository.com/artifact/com.github.wangzihaogithub/ai-assistant --\u003e\n\u003cdependency\u003e\n    \u003cgroupId\u003ecom.github.wangzihaogithub\u003c/groupId\u003e\n    \u003cartifactId\u003eai-assistant\u003c/artifactId\u003e\n    \u003cversion\u003e1.0.3\u003c/version\u003e\n\u003c/dependency\u003e\n\n\u003c!-- Required Dependencies --\u003e\n\u003cdependency\u003e\n  \u003cgroupId\u003edev.langchain4j\u003c/groupId\u003e\n  \u003cartifactId\u003elangchain4j\u003c/artifactId\u003e\n  \u003cversion\u003e0.35.0\u003c/version\u003e\n\u003c/dependency\u003e\n\u003cdependency\u003e\n  \u003cgroupId\u003edev.langchain4j\u003c/groupId\u003e\n  \u003cartifactId\u003elangchain4j-open-ai\u003c/artifactId\u003e\n  \u003cversion\u003e0.35.0\u003c/version\u003e\n\u003c/dependency\u003e\n\u003cdependency\u003e\n  \u003cgroupId\u003ecom.squareup.okhttp3\u003c/groupId\u003e\n  \u003cartifactId\u003eokhttp-sse\u003c/artifactId\u003e\n  \u003cversion\u003e3.14.9\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\n## 模块结构\n\n```\n├── entity (数据实体)\n├── dao (数据访问)\n├── enums (业务自定义枚举)\n├── serviceintercept (业务拦截器)\n├── exception (明确区分的各种异常)\n├── platform (平台agent接口 [阿里百炼等])\n└── service (业务核心)\n    ├── accessuser (用户访问授权)\n    ├── jsonschema (json模型)\n    ├── text (文本模型)\n    │   ├── reasoning (思考)\n    │   ├── acting (行动)\n    │   ├── memory (记忆 [长期-片段，长期-变量，短期-消息记录])\n    │   ├── chat (聊天 [终止记录，重新回答记录，消息记录，思考记录，联网记录])\n    │   ├── nlu (自然语言理解 [文本分类、文本聚类、命名实体识别])\n    │   ├── rerank (文本重排序)\n    │   ├── embedding (向量模型)\n    │   ├── repository (存储 [存数据库，存本地，消息截断，token截断])\n    │   ├── sseemitter (sse推送)\n    │   ├── tools (工具)\n    │   └── variables (变量)\n└── AiApplication.class (应用入口)\n```\n\n## 数据库实体 (Entity)\n\n*   **[AiAssistant.java](src%2Fmain%2Fjava%2Fcom%2Fgithub%2Faiassistant%2Fentity%2FAiAssistant.java)**\n  *   智能体配置表，对应页面中的一个智能体\n*   **[AiAssistantFewshot.java](src%2Fmain%2Fjava%2Fcom%2Fgithub%2Faiassistant%2Fentity%2FAiAssistantFewshot.java)**\n  *   少样本提示表\n*   **[AiAssistantKn.java](src%2Fmain%2Fjava%2Fcom%2Fgithub%2Faiassistant%2Fentity%2FAiAssistantKn.java)**\n  *   知识库的配置\n*   **[AiAssistantMstate.java](src%2Fmain%2Fjava%2Fcom%2Fgithub%2Faiassistant%2Fentity%2FAiAssistantMstate.java)**\n  *   定义长期的已知记忆变量\n*   **[AiChat.java](src%2Fmain%2Fjava%2Fcom%2Fgithub%2Faiassistant%2Fentity%2FAiChat.java)**\n  *   每个聊天会话，对应一条记录\n*   **[AiChatAbort.java](src%2Fmain%2Fjava%2Fcom%2Fgithub%2Faiassistant%2Fentity%2FAiChatAbort.java)**\n  *   用户每次点击终止按钮，对应一条记录\n*   **[AiChatClassify.java](src%2Fmain%2Fjava%2Fcom%2Fgithub%2Faiassistant%2Fentity%2FAiChatClassify.java)**\n  *   问题分类表，用户每次提问，对应一条记录\n*   **[AiChatHistory.java](src%2Fmain%2Fjava%2Fcom%2Fgithub%2Faiassistant%2Fentity%2FAiChatHistory.java)**\n  *   用户聊天记录\n*   **[AiChatReasoning.java](src%2Fmain%2Fjava%2Fcom%2Fgithub%2Faiassistant%2Fentity%2FAiChatReasoning.java)**\n  *   聊天大模型思考主表\n*   **[AiChatReasoningPlan.java](src%2Fmain%2Fjava%2Fcom%2Fgithub%2Faiassistant%2Fentity%2FAiChatReasoningPlan.java)**\n  *   聊天大模型思考后拆分的任务\n*   **[AiChatWebsearch.java](src%2Fmain%2Fjava%2Fcom%2Fgithub%2Faiassistant%2Fentity%2FAiChatWebsearch.java)**\n  *   聊天大模型联网搜索内容\n*   **[AiChatWebsearchResult.java](src%2Fmain%2Fjava%2Fcom%2Fgithub%2Faiassistant%2Fentity%2FAiChatWebsearchResult.java)**\n  *   聊天大模型联网搜索结果\n*   **[AiEmbedding.java](src%2Fmain%2Fjava%2Fcom%2Fgithub%2Faiassistant%2Fentity%2FAiEmbedding.java)**\n  *   向量模型缓存表，加速RAG\n*   **[AiJsonschema.java](src%2Fmain%2Fjava%2Fcom%2Fgithub%2Faiassistant%2Fentity%2FAiJsonschema.java)**\n  *   json大模型智能体配置\n*   **[AiMemory.java](src%2Fmain%2Fjava%2Fcom%2Fgithub%2Faiassistant%2Fentity%2FAiMemory.java)**\n  *   聊天记忆表\n*   **[AiMemoryError.java](src%2Fmain%2Fjava%2Fcom%2Fgithub%2Faiassistant%2Fentity%2FAiMemoryError.java)**\n  *   聊天错误表\n*   **[AiMemoryMessage.java](src%2Fmain%2Fjava%2Fcom%2Fgithub%2Faiassistant%2Fentity%2FAiMemoryMessage.java)**\n  *   聊天记忆消息表\n*   **[AiMemoryMessageKn.java](src%2Fmain%2Fjava%2Fcom%2Fgithub%2Faiassistant%2Fentity%2FAiMemoryMessageKn.java)**\n  *   聊天记忆消息使用了哪些知识库\n*   **[AiMemoryMessageTool.java](src%2Fmain%2Fjava%2Fcom%2Fgithub%2Faiassistant%2Fentity%2FAiMemoryMessageTool.java)**\n  *   聊天记忆消息使用了哪些工具\n*   **[AiMemoryMstate.java](src%2Fmain%2Fjava%2Fcom%2Fgithub%2Faiassistant%2Fentity%2FAiMemoryMstate.java)**\n  *   长期的记忆片段与记忆变量\n*   **[AiQuestionClassify.java](src%2Fmain%2Fjava%2Fcom%2Fgithub%2Faiassistant%2Fentity%2FAiQuestionClassify.java)**\n  *   定义聊天问题的分类\n*   **[AiQuestionClassifyAssistant.java](src%2Fmain%2Fjava%2Fcom%2Fgithub%2Faiassistant%2Fentity%2FAiQuestionClassifyAssistant.java)**\n  *   根据问题选择适合的智能体，不关联分类表示该问题使用原智能体\n*   **[AiTool.java](src%2Fmain%2Fjava%2Fcom%2Fgithub%2Faiassistant%2Fentity%2FAiTool.java)**\n  *   定义工具调用\n*   **[AiToolParameter.java](src%2Fmain%2Fjava%2Fcom%2Fgithub%2Faiassistant%2Fentity%2FAiToolParameter.java)**\n  *   定义工具所需参数\n*   **[AiVariables.java](src%2Fmain%2Fjava%2Fcom%2Fgithub%2Faiassistant%2Fentity%2FAiVariables.java)**\n  *   自定义变量，供提示词里编写\n*   **[KnSettingWebsearchBlacklist.java](src%2Fmain%2Fjava%2Fcom%2Fgithub%2Faiassistant%2Fentity%2FKnSettingWebsearchBlacklist.java)**\n  *   网络内容黑名单。针对网络搜索结果，过滤掉不想要的内容\n\n## 业务开发指南\n\n### 1. 生命周期 (基于生命周期进行业务需求开发)\n\n*   **触发业务逻辑:** ![onUserTrigger.png](docs/onUserTrigger.png)\n*   **消费业务逻辑:** ![onFindJob.png](docs/onFindJob.png)\n*   **系统生命周期:** ![ChatStreamingResponseHandler.png](docs/ChatStreamingResponseHandler.png)\n\n### 2. 逻辑控制\n\n*   ![sseresponse.png](docs/sseresponse.png)\n\n### 3. 会话用户\n\n*   ![accessuser.png](docs/accessuser.png)\n\n### 4. 追加提示词变量\n\n*   ![var.png](docs/var.png)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwangzihaogithub%2Fai-assistant","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwangzihaogithub%2Fai-assistant","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwangzihaogithub%2Fai-assistant/lists"}