diff --git a/.github/workflows/cog.yml b/.github/workflows/cog.yml new file mode 100644 index 00000000..56ce1b27 --- /dev/null +++ b/.github/workflows/cog.yml @@ -0,0 +1,48 @@ +name: Run Cog + +on: + pull_request: + types: [opened, synchronize] + +permissions: + contents: write + pull-requests: write + +jobs: + run-cog: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + with: + ref: ${{ github.head_ref }} + + - name: Set up Python 3.11 + uses: actions/setup-python@v5 + with: + python-version: '3.11' + + - name: Install dependencies + run: pip install -e '.[test]' + + - name: Run cog + run: | + cog -r -p "import sys, os; sys._called_from_test=True; os.environ['LLM_USER_PATH'] = '/tmp'" docs/**/*.md docs/*.md + + - name: Check for changes + id: check-changes + run: | + if [ -n "$(git diff)" ]; then + echo "changes=true" >> $GITHUB_OUTPUT + else + echo "changes=false" >> $GITHUB_OUTPUT + fi + + - name: Commit and push if changed + if: steps.check-changes.outputs.changes == 'true' + run: | + git config --local user.email "github-actions[bot]@users.noreply.github.com" + git config --local user.name "github-actions[bot]" + git add -A + git commit -m "Ran cog" + git push diff --git a/docs/logging.md b/docs/logging.md index ceca824f..63722e01 100644 --- a/docs/logging.md +++ b/docs/logging.md @@ -136,7 +136,7 @@ def cleanup_sql(sql): return first_line + '(\n ' + ',\n '.join(columns) + '\n);' cog.out("```sql\n") -for table in ("conversations", "responses", "responses_fts"): +for table in ("conversations", "responses", "responses_fts", "attachments", "prompt_attachments"): schema = db[table].schema cog.out(format(cleanup_sql(schema))) cog.out("\n") @@ -166,6 +166,20 @@ CREATE VIRTUAL TABLE [responses_fts] USING FTS5 ( [response], content=[responses] ); +CREATE TABLE [attachments] ( + [id] TEXT PRIMARY KEY, + [type] TEXT, + [path] TEXT, + [url] TEXT, + [content] BLOB +); +CREATE TABLE [prompt_attachments] ( + [response_id] TEXT REFERENCES [responses]([id]), + [attachment_id] TEXT REFERENCES [attachments]([id]), + [order] INTEGER, + PRIMARY KEY ([response_id], + [attachment_id]) +); ``` -`responses_fts` configures [SQLite full-text search](https://www.sqlite.org/fts5.html) against the `prompt` and `response` columns in the `responses` table. \ No newline at end of file +`responses_fts` configures [SQLite full-text search](https://www.sqlite.org/fts5.html) against the `prompt` and `response` columns in the `responses` table.