Skip to content

Commit 23c6efd

Browse files
committed
Add: initial commit
0 parents  commit 23c6efd

File tree

3,191 files changed

+482411
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

3,191 files changed

+482411
-0
lines changed

.gitattributes

+82
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
## Unity ##
2+
*.cs diff=csharp text
3+
*.cginc text
4+
*.shader text
5+
*.mat merge=unityyamlmerge eol=lf
6+
*.anim merge=unityyamlmerge eol=lf
7+
*.unity merge=unityyamlmerge eol=lf
8+
*.physicsMaterial2D merge=unityyamlmerge eol=lf
9+
*.physicsMaterial merge=unityyamlmerge eol=lf
10+
*.asset merge=unityyamlmerge eol=lf
11+
*.meta merge=unityyamlmerge eol=lf
12+
*.controller merge=unityyamlmerge eol=lf
13+
## git-lfs ##
14+
#Image
15+
*.jpg filter=lfs diff=lfs merge=lfs -text
16+
*.jpeg filter=lfs diff=lfs merge=lfs -text
17+
*.png filter=lfs diff=lfs merge=lfs -text
18+
*.gif filter=lfs diff=lfs merge=lfs -text
19+
*.psd filter=lfs diff=lfs merge=lfs -text
20+
*.ai filter=lfs diff=lfs merge=lfs -text
21+
*.bmp filter=lfs diff=lfs merge=lfs -text
22+
*.tiff filter=lfs diff=lfs merge=lfs -text
23+
*.iff filter=lfs diff=lfs merge=lfs -text
24+
*.pict filter=lfs diff=lfs merge=lfs -text
25+
#Audio
26+
*.mp3 filter=lfs diff=lfs merge=lfs -text
27+
*.wav filter=lfs diff=lfs merge=lfs -text
28+
*.ogg filter=lfs diff=lfs merge=lfs -text
29+
*.aiff filter=lfs diff=lfs merge=lfs -text
30+
*.mod filter=lfs diff=lfs merge=lfs -text
31+
*.it filter=lfs diff=lfs merge=lfs -text
32+
*.s3m filter=lfs diff=lfs merge=lfs -text
33+
*.xm filter=lfs diff=lfs merge=lfs -text
34+
*.aif filter=lfs diff=lfs merge=lfs -text
35+
#Video
36+
*.mp4 filter=lfs diff=lfs merge=lfs -text
37+
*.mov filter=lfs diff=lfs merge=lfs -text
38+
*.avi filter=lfs diff=lfs merge=lfs -text
39+
*.mpg filter=lfs diff=lfs merge=lfs -text
40+
*.mpeg filter=lfs diff=lfs merge=lfs -text
41+
*.asf filter=lfs diff=lfs merge=lfs -text
42+
#3D Object
43+
*.FBX filter=lfs diff=lfs merge=lfs -text
44+
*.fbx filter=lfs diff=lfs merge=lfs -text
45+
*.blend filter=lfs diff=lfs merge=lfs -text
46+
*.obj filter=lfs diff=lfs merge=lfs -text
47+
*.dae filter=lfs diff=lfs merge=lfs -text
48+
*.3ds filter=lfs diff=lfs merge=lfs -text
49+
*.dxf filter=lfs diff=lfs merge=lfs -text
50+
*.max filter=lfs diff=lfs merge=lfs -text
51+
*.ma filter=lfs diff=lfs merge=lfs -text
52+
*.mb filter=lfs diff=lfs merge=lfs -text
53+
*.vrm filter=lfs diff=lfs merge=lfs -text
54+
#font
55+
*.ttf filter=lfs diff=lfs merge=lfs -text
56+
*.otf filter=lfs diff=lfs merge=lfs -text
57+
*.asset filter=lfs diff=lfs merge=lfs -text
58+
# Android
59+
*.a filter=lfs diff=lfs merge=lfs -text
60+
*.so filter=lfs diff=lfs merge=lfs -text
61+
# library
62+
*.dll filter=lfs diff=lfs merge=lfs -text
63+
#ETC
64+
*.exr filter=lfs diff=lfs merge=lfs -text
65+
*.tga filter=lfs diff=lfs merge=lfs -text
66+
*.pdf filter=lfs diff=lfs merge=lfs -text
67+
*.zip filter=lfs diff=lfs merge=lfs -text
68+
*.rns filter=lfs diff=lfs merge=lfs -text
69+
*.reason filter=lfs diff=lfs merge=lfs -text
70+
*.lxo filter=lfs diff=lfs merge=lfs -text
71+
*.rar filter=lfs diff=lfs merge=lfs -text
72+
*.tar filter=lfs diff=lfs merge=lfs -text
73+
*.gz filter=lfs diff=lfs merge=lfs -text
74+
*.lzh filter=lfs diff=lfs merge=lfs -text
75+
*.7z filter=lfs diff=lfs merge=lfs -text
76+
#
77+
*.spm filter=lfs diff=lfs merge=lfs -text
78+
*.tif filter=lfs diff=lfs merge=lfs -text
79+
*.tiff filter=lfs diff=lfs merge=lfs -text
80+
*.unitypackage filter=lfs diff=lfs merge=lfs -text
81+
*.apk filter=lfs diff=lfs merge=lfs -text
82+
LightingData.asset filter=lfs diff=lfs merge=lfs -text

.github/PULL_REQUEST_TEMPLATE.md

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# 変更の概要
2+
- ここに変更の概要を記載してください
3+
4+
# 変更の背景
5+
- ここに変更が必要となった背景を記載してください
6+
7+
# CLAへの同意
8+
- 本リポジトリへのコントリビュートには、[コントリビューターライセンス契約(CLA)](/takahiroanno2024/gh-template-test/blob/main/CLA.md)に同意することが必須です。
9+
内容をお読みいただき、下記のチェックボックスにチェックをつける("- [ ]" を "- [x]" に書き換える)ことで同意したものとみなします。
10+
11+
- [ ] CLAの内容を読み、同意しました
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
name: SetUp Python & Poetry
2+
description: "Set up Python and Poetry"
3+
4+
inputs:
5+
python-version:
6+
# https://github.com/python/cpython/tags
7+
required: true
8+
default: 3.12.4
9+
poetry-version:
10+
# https://github.com/python-poetry/poetry/tags
11+
required: true
12+
default: 1.8.3
13+
working-directory:
14+
required: false
15+
default: "."
16+
17+
outputs:
18+
python-version:
19+
value: ${{ inputs.python-version }}
20+
poetry-version:
21+
value: ${{ inputs.poetry-version }}
22+
working-directory:
23+
value: ${{ inputs.working-directory }}
24+
25+
runs:
26+
using: composite
27+
steps:
28+
- name: Cache Poetry
29+
uses: actions/cache@v4
30+
id: poetry-cache
31+
with:
32+
path: ~/.local
33+
key: poetry-${{ inputs.cache-key-prefix }}${{ runner.os }}-${{ inputs.python-version }}-${{ inputs.poetry-version }}
34+
35+
- name: Install Poetry
36+
uses: snok/[email protected]
37+
with:
38+
version: ${{ inputs.poetry-version }}
39+
virtualenvs-create: true
40+
virtualenvs-in-project: false
41+
virtualenvs-path: ~/.virtualenvs
42+
43+
- name: Set up Python
44+
uses: actions/setup-python@v5
45+
with:
46+
python-version: ${{ inputs.python-version }}
47+
cache: "poetry"
48+
cache-dependency-path: ${{ inputs.working-directory }}/poetry.lock
49+
50+
- name: Install Dependencies
51+
shell: bash
52+
run: |
53+
cd ${{ inputs.working-directory }}
54+
poetry install

.github/workflows/actionlint.yml

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
name: actionlint
2+
3+
on:
4+
pull_request:
5+
paths:
6+
- '.github/**'
7+
8+
concurrency:
9+
group: ${{ github.workflow }}-${{ github.ref }}
10+
cancel-in-progress: true
11+
12+
jobs:
13+
actionlint:
14+
runs-on: ubuntu-latest
15+
steps:
16+
- uses: actions/checkout@v4
17+
18+
- uses: reviewdog/action-actionlint@v1
19+
with:
20+
fail_on_error: true

.github/workflows/lint.yml

+53
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
name: Lint (python_server)
2+
3+
on:
4+
push:
5+
paths:
6+
- 'python_server/**'
7+
- '.github/workflows/lint.yml'
8+
- '.github/actions/**'
9+
10+
11+
concurrency:
12+
group: ${{ github.workflow }}-${{ github.ref }}
13+
cancel-in-progress: true
14+
15+
env:
16+
DEFAULT_WORKING_DIRECTORY: python_server
17+
18+
defaults:
19+
run:
20+
working-directory: python_server
21+
22+
jobs:
23+
lint:
24+
runs-on: ubuntu-latest
25+
26+
steps:
27+
- uses: actions/checkout@v4
28+
29+
- name: setup Python & Poetry
30+
uses: ./.github/actions/setup-python-and-poetry
31+
with:
32+
working-directory: ${{ env.DEFAULT_WORKING_DIRECTORY }}
33+
34+
- name: Run Lint
35+
run: make lint
36+
37+
check-fmt-diff:
38+
runs-on: ubuntu-latest
39+
40+
steps:
41+
- uses: actions/checkout@v4
42+
43+
- name: setup Python & Poetry
44+
uses: ./.github/actions/setup-python-and-poetry
45+
with:
46+
working-directory: ${{ env.DEFAULT_WORKING_DIRECTORY }}
47+
48+
- name: Test if all files are correctly formatted
49+
run: |
50+
make fmt
51+
git --no-pager diff HEAD
52+
git status
53+
test -z "$(git status --porcelain)"

.github/workflows/qa-eval.yml

+142
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,142 @@
1+
name: Q&A evaluation (python_server)
2+
3+
on:
4+
push:
5+
paths:
6+
- "python_server/**"
7+
- ".github/workflows/qa-eval.yml"
8+
- ".github/actions/**"
9+
10+
concurrency:
11+
group: ${{ github.workflow }}-${{ github.ref }}
12+
cancel-in-progress: true
13+
14+
env:
15+
DEFAULT_WORKING_DIRECTORY: python_server
16+
YOUTUBE_API_KEYS: '[]'
17+
GOOGLE_APPLICATION_CREDENTIALS: "/tmp"
18+
GOOGLE_DRIVE_FOLDER_ID: ""
19+
# PostgreSQL の情報。使用してないが Pythontic settings がコケるため設定しておく
20+
PG_HOST: localhost
21+
PG_PORT: 5432
22+
PG_USER: postgres
23+
PG_PASSWORD: password
24+
PG_DATABASE: aituber_dev
25+
26+
27+
defaults:
28+
run:
29+
working-directory: python_server
30+
31+
jobs:
32+
eval:
33+
runs-on: ubuntu-latest
34+
35+
permissions:
36+
contents: read
37+
pull-requests: write # to post comments
38+
39+
steps:
40+
- uses: actions/checkout@v4
41+
42+
- name: setup Python & Poetry
43+
uses: ./.github/actions/setup-python-and-poetry
44+
with:
45+
working-directory: ${{ env.DEFAULT_WORKING_DIRECTORY }}
46+
47+
- name: Save FAISS knowledge database
48+
run: poetry run python -m src.cli.save_faiss_knowledge_db
49+
env:
50+
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
51+
YOUTUBE_API_KEY: ${{ secrets.YOUTUBE_API_KEY }}
52+
YT_ID: ${{ secrets.YT_ID }}
53+
ELEVENLABS_API_KEY: ${{ secrets.ELEVENLABS_API_KEY }}
54+
AZURE_SPEECH_KEY: ${{ secrets.AZURE_SPEECH_KEY }}
55+
56+
- name: Save FAISS database
57+
run: poetry run python -m src.cli.save_faiss_db --for-eval
58+
env:
59+
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
60+
YOUTUBE_API_KEY: ${{ secrets.YOUTUBE_API_KEY }}
61+
YT_ID: ${{ secrets.YT_ID }}
62+
ELEVENLABS_API_KEY: ${{ secrets.ELEVENLABS_API_KEY }}
63+
AZURE_SPEECH_KEY: ${{ secrets.AZURE_SPEECH_KEY }}
64+
65+
- name: Run evaluation
66+
run: poetry run python -m src.cli.rag_evaluation.evaluate --output-path result.md
67+
env:
68+
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
69+
YOUTUBE_API_KEY: ${{ secrets.YOUTUBE_API_KEY }}
70+
YT_ID: ${{ secrets.YT_ID }}
71+
ELEVENLABS_API_KEY: ${{ secrets.ELEVENLABS_API_KEY }}
72+
AZURE_SPEECH_KEY: ${{ secrets.AZURE_SPEECH_KEY }}
73+
74+
- name: Run evaluation with cosine-similarity-based document retrieval
75+
run: poetry run python -m src.cli.rag_evaluation.evaluate --output-path result_cos_sim.md --doc-retrieval-type cosine
76+
env:
77+
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
78+
YOUTUBE_API_KEY: ${{ secrets.YOUTUBE_API_KEY }}
79+
YT_ID: ${{ secrets.YT_ID }}
80+
ELEVENLABS_API_KEY: ${{ secrets.ELEVENLABS_API_KEY }}
81+
AZURE_SPEECH_KEY: ${{ secrets.AZURE_SPEECH_KEY }}
82+
83+
- name: Show contents in result.md
84+
run: cat result.md
85+
86+
- name: Post a message to Pull Request threads
87+
uses: actions/github-script@v7
88+
env:
89+
RESULT_MD: result.md
90+
RESULT_COSINE: result_cos_sim.md
91+
with:
92+
script: |
93+
process.chdir(process.env.DEFAULT_WORKING_DIRECTORY);
94+
95+
const fs = require("fs");
96+
const resultDefault = fs.readFileSync(process.env.RESULT_MD, "utf8");
97+
const resultCosSim = fs.readFileSync(process.env.RESULT_COSINE, "utf8");
98+
99+
let commentBody = ""
100+
commentBody += "### Evaluation results with the default document retrieval type\n\n"
101+
commentBody += resultDefault
102+
commentBody += "\n\n"
103+
commentBody += "### Evaluation results with the cosine-similarity-based document retrieval\n\n"
104+
commentBody += "<details><summary>Click to expand</summary>\n\n"
105+
commentBody += resultCosSim
106+
commentBody += "</details>"
107+
108+
async function getTargetPullRequests() {
109+
if (context.eventName === "pull_request") {
110+
return [context.payload.pull_request];
111+
}
112+
if (context.eventName === "push") {
113+
const pullRequests = (
114+
await github.rest.repos.listPullRequestsAssociatedWithCommit({
115+
owner: context.repo.owner,
116+
repo: context.repo.repo,
117+
commit_sha: context.sha,
118+
})
119+
).data;
120+
const openPullRequests = pullRequests.filter(pr => pr.state === "open")
121+
return openPullRequests;
122+
}
123+
throw new Error(`Unsupported event type: ${context.eventName}`);
124+
}
125+
const targetPullRequests = await getTargetPullRequests();
126+
127+
core.startGroup('Found PRs:')
128+
console.log(targetPullRequests)
129+
core.endGroup()
130+
131+
for (const pr of targetPullRequests) {
132+
const title = `## Eval results on [\`${context.sha.slice(0, 7)}\`](${pr.html_url}/commits/${context.sha})\n\n`;
133+
const commentText = title + commentBody;
134+
135+
await github.rest.issues.createComment({
136+
owner: context.repo.owner,
137+
repo: context.repo.repo,
138+
issue_number: pr.number,
139+
body: commentText,
140+
});
141+
core.info(`Created comment on PR #${pr.number}`);
142+
}

0 commit comments

Comments
 (0)