diff --git a/.github/workflows/frontend-ci.yaml b/.github/workflows/frontend-ci.yaml
index de986cbc0..13a3e8fe1 100644
--- a/.github/workflows/frontend-ci.yaml
+++ b/.github/workflows/frontend-ci.yaml
@@ -14,8 +14,8 @@ on:
workflow_dispatch:
jobs:
- setup:
- name: Setup jobs
+ setup:
+ name: Build All
runs-on: ubuntu-latest
env:
NODE_VERSION: '18'
@@ -38,7 +38,7 @@ jobs:
uses: actions/setup-node@v3
with:
node-version: ${{ env.NODE_VERSION }}
-
+
- name: Cache
uses: actions/cache@v4
with:
@@ -58,7 +58,7 @@ jobs:
git fetch origin $TARGET_BRANCH
sh .github/scripts/branch-diff.sh origin/$TARGET_BRANCH > changed.json
echo "file=changed.json" >> "$GITHUB_OUTPUT"
-
+
- name: Install Dependencies
run: |
node common/scripts/install-run-rush.js install
@@ -66,7 +66,7 @@ jobs:
- name: Build All
run: |
node common/scripts/install-run-rush.js rebuild --verbose --timeline
-
+
- name: Lint & Style
run: |
node common/scripts/install-run-rush.js increment --action lint -p ${{ steps.branch-diff.outputs.file }}
diff --git a/.github/workflows/frontend-tsc-ci.yaml b/.github/workflows/frontend-tsc-ci.yaml
index 996fe37bc..47c989287 100644
--- a/.github/workflows/frontend-tsc-ci.yaml
+++ b/.github/workflows/frontend-tsc-ci.yaml
@@ -14,8 +14,8 @@ on:
workflow_dispatch:
jobs:
- setup:
- name: Setup jobs
+ setup:
+ name: TS Check
runs-on: ubuntu-latest
env:
NODE_VERSION: '18'
@@ -37,7 +37,7 @@ jobs:
uses: actions/setup-node@v3
with:
node-version: ${{ env.NODE_VERSION }}
-
+
- name: Cache
uses: actions/cache@v4
with:
@@ -57,7 +57,7 @@ jobs:
git fetch origin $TARGET_BRANCH
sh .github/scripts/branch-diff.sh origin/$TARGET_BRANCH > changed.json
echo "file=changed.json" >> "$GITHUB_OUTPUT"
-
+
- name: Install Dependencies
run: |
node common/scripts/install-run-rush.js increment --action install -p ${{ steps.branch-diff.outputs.file }}
@@ -65,7 +65,7 @@ jobs:
- name: Prepare Basic Packages
run: |
node common/scripts/install-run-rush.js pre-build -v
-
+
- name: TS Check
run: |
node common/scripts/install-run-rush.js increment --action ts-check -p ${{ steps.branch-diff.outputs.file }}
diff --git a/.github/workflows/issue-sync.yaml b/.github/workflows/issue-sync.yaml
new file mode 100644
index 000000000..cddde1f32
--- /dev/null
+++ b/.github/workflows/issue-sync.yaml
@@ -0,0 +1,35 @@
+name: Issue Notification
+
+on:
+ issues:
+ types: ['opened', 'reopened', 'closed']
+
+jobs:
+ sync:
+ name: Sync Issues
+ runs-on: ubuntu-latest
+ env:
+ NODE_VERSION: '18'
+ LARK_APP_ID: ${{ secrets.COZELOOP_LARK_APP_ID }}
+ LARK_APP_SECRET: ${{ secrets.COZELOOP_LARK_APP_SECRET }}
+ ISSUE_ACTION: ${{ github.event.action }}
+ ISSUE_NUMBER: ${{ github.event.issue.number }}
+ ISSUE_URL: ${{ github.event.issue.html_url }}
+ ISSUE_TITLE: ${{ github.event.issue.title }}
+ ISSUE_BODY: ${{ github.event.issue.body }}
+ REPO_NAME: ${{ github.repository }}
+
+ steps:
+ - name: Setup Node
+ uses: actions/setup-node@v3
+ with:
+ node-version: ${{ env.NODE_VERSION }}
+
+ - name: Install ci-tools
+ run: |
+ npm install -g @cozeloop/ci-tools@0.0.1
+
+ - name: Notify via lark
+ run: |
+ cozeloop-ci lark sync-issue \
+ --chat-id oc_d02b85f9799a0c35cf164d3a939ef30e
diff --git a/.github/workflows/semantic-pull-request.yaml b/.github/workflows/semantic-pull-request.yaml
index 734778456..e167a2ca7 100644
--- a/.github/workflows/semantic-pull-request.yaml
+++ b/.github/workflows/semantic-pull-request.yaml
@@ -32,6 +32,7 @@ jobs:
style
test
chore
+ # all
# idl: idl
# infra:
# - go version update, lint, database, etc
@@ -41,6 +42,7 @@ jobs:
# workflow: gh workflow
# prompt, evaluation, trace, model, dataset, foundation
scopes: |
+ all
idl
frontend
backend
diff --git a/README.cn.md b/README.cn.md
index e677450f7..81bd16325 100644
--- a/README.cn.md
+++ b/README.cn.md
@@ -39,8 +39,27 @@ Coze Loop 通过提供全生命周期的管理能力,帮助开发者更高效
| 模型 | 支持接入 OpenAI、火山方舟等模型 |
## 快速开始
-
-参考[快速开始](https://github.com/coze-dev/CozeLoop/wiki/2.-%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B),了解如何安装部署 Coze Loop 最新版本。
+> 参考[快速开始](https://github.com/coze-dev/CozeLoop/wiki/2.-%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B),详细了解如何安装部署 Coze Loop 最新版本。
+环境要求:
+* Go > 1.23.4; 配置 GOPATH
+* 提前安装 Docker、Docker Compose,并启动 Docker 服务
+操作步骤:
+1. 获取源码。执行以下命令,获取 Coze Loop 最新版本的源码。
+ ```Bash
+ # 克隆代码
+ git clone https://github.com/coze-dev/Coze Loop.git
+ # 进入Coze Loop目录下
+ cd Coze Loop
+ ```
+2. 配置模型。进入目录 `conf/default/app/runtime/`,编辑文件 `model_config.yaml`,修改 api_key 和 model 字段。以火山方舟为例:
+ * api_key:火山方舟 API Key,获取方式可参考[获取 API Key](Keyhttps://www.volcengine.com/docs/82379/1541594)。
+ * model:火山方舟模型接入点的 Endpoint ID,获取方式可参考[获取 Endpoint](https://www.volcengine.com/docs/82379/1099522)。
+3. 启动服务。执行以下命令,使用 Docker Compose 快速部署 Coze Loop 开源版。
+ ```Bash
+ # 启动服务,默认为开发模式
+ docker compose up --build
+ ```
+4. 通过浏览器访问 `http://localhost:8082`,访问 Coze Loop 开源版。
## 使用 Coze Loop 开源版
diff --git a/backend/kitex_gen/coze/loop/foundation/authn/coze.loop.foundation.authn.go b/backend/kitex_gen/coze/loop/foundation/authn/coze.loop.foundation.authn.go
index 46add3367..c99c0ab31 100644
--- a/backend/kitex_gen/coze/loop/foundation/authn/coze.loop.foundation.authn.go
+++ b/backend/kitex_gen/coze/loop/foundation/authn/coze.loop.foundation.authn.go
@@ -3297,7 +3297,7 @@ func (p *VerifyTokenResponse) Field255DeepEqual(src *base.BaseResp) bool {
}
type AuthNService interface {
- // OpenAPI PAT管理,开源版本暂不支持OAuth
+ // OpenAPI PAT管理
CreatePersonalAccessToken(ctx context.Context, req *CreatePersonalAccessTokenRequest) (r *CreatePersonalAccessTokenResponse, err error)
DeletePersonalAccessToken(ctx context.Context, req *DeletePersonalAccessTokenRequest) (r *DeletePersonalAccessTokenResponse, err error)
diff --git a/backend/loop_gen/coze/loop/foundation/loauthn/local_authnservice.go b/backend/loop_gen/coze/loop/foundation/loauthn/local_authnservice.go
index 7715e0f93..551840bde 100644
--- a/backend/loop_gen/coze/loop/foundation/loauthn/local_authnservice.go
+++ b/backend/loop_gen/coze/loop/foundation/loauthn/local_authnservice.go
@@ -23,7 +23,7 @@ func NewLocalAuthNService(impl authn.AuthNService, mds ...endpoint.Middleware) *
}
// CreatePersonalAccessToken
-// OpenAPI PAT管理,开源版本暂不支持OAuth
+// OpenAPI PAT管理
func (l *LocalAuthNService) CreatePersonalAccessToken(ctx context.Context, req *authn.CreatePersonalAccessTokenRequest, callOptions ...callopt.Option) (*authn.CreatePersonalAccessTokenResponse, error) {
chain := l.mds(func(ctx context.Context, in, out interface{}) error {
arg := in.(*authn.AuthNServiceCreatePersonalAccessTokenArgs)
diff --git a/frontend/packages/cozeloop/api-schema/src/api/idl/foundation/coze.loop.foundation.authn.ts b/frontend/packages/cozeloop/api-schema/src/api/idl/foundation/coze.loop.foundation.authn.ts
index 71e00ed34..8d1ef333e 100644
--- a/frontend/packages/cozeloop/api-schema/src/api/idl/foundation/coze.loop.foundation.authn.ts
+++ b/frontend/packages/cozeloop/api-schema/src/api/idl/foundation/coze.loop.foundation.authn.ts
@@ -60,7 +60,7 @@ export interface VerifyTokenResponse {
valid?: boolean,
user_id?: string,
}
-/** OpenAPI PAT管理,开源版本暂不支持OAuth */
+/** OpenAPI PAT管理 */
export const CreatePersonalAccessToken = /*#__PURE__*/createAPI({
"url": "/api/auth/v1/personal_access_tokens",
"method": "POST",
@@ -121,4 +121,4 @@ export const ListPersonalAccessToken = /*#__PURE__*/createAPI void) => {
- // 开源版直接调用回调,不做拦截
+ // 直接调用回调,不做拦截
callback?.();
},
}),
diff --git a/idl/thrift/coze/loop/foundation/coze.loop.foundation.authn.thrift b/idl/thrift/coze/loop/foundation/coze.loop.foundation.authn.thrift
index 450eddef3..25980a27e 100644
--- a/idl/thrift/coze/loop/foundation/coze.loop.foundation.authn.thrift
+++ b/idl/thrift/coze/loop/foundation/coze.loop.foundation.authn.thrift
@@ -86,7 +86,7 @@ struct VerifyTokenResponse {
}
service AuthNService {
- // OpenAPI PAT管理,开源版本暂不支持OAuth
+ // OpenAPI PAT管理
CreatePersonalAccessTokenResponse CreatePersonalAccessToken(1: CreatePersonalAccessTokenRequest req) (api.post='/api/auth/v1/personal_access_tokens')
DeletePersonalAccessTokenResponse DeletePersonalAccessToken(1: DeletePersonalAccessTokenRequest req) (api.delete='/api/auth/v1/personal_access_tokens/:id')
UpdatePersonalAccessTokenResponse UpdatePersonalAccessToken(1: UpdatePersonalAccessTokenRequest req) (api.put='/api/auth/v1/personal_access_tokens/:id')
@@ -95,4 +95,4 @@ service AuthNService {
// 验证token是否有效
VerifyTokenResponse VerifyToken(1: VerifyTokenRequest req)
-}
\ No newline at end of file
+}