Skip to content
This repository has been archived by the owner on Apr 18, 2024. It is now read-only.

Commit

Permalink
Feat: Add support for Mistral AI and Azure OpenAI monitoring (#14)
Browse files Browse the repository at this point in the history
* Mistral monitoring

* update testing

* update docker setup

* use local doku

* update test

* print doku token

* update Git action

* add MISTRAL_API_TOKEN: ${{ secrets.MISTRAL_API_TOKEN }}

* update testing

* remove console.log

* remove console.log

* update mistral test

* add timeout

* add azure openai

* add azure_ prefix

* udpate testing

* update test files

* fix completions streaming

* add total tokens to cohere client embed

* update testing

* update client

* update anthropic test

* hold anthropic and mistralai tests

* update version
  • Loading branch information
patcher9 authored Mar 17, 2024
1 parent c744554 commit abf65a0
Show file tree
Hide file tree
Showing 17 changed files with 958 additions and 62 deletions.
24 changes: 0 additions & 24 deletions .github/workflows/npm-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,31 +7,7 @@ on:
permissions:
contents: write

env:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_TOKEN }}
COHERE_API_TOKEN: ${{ secrets.COHERE_API_TOKEN }}
ANTHROPIC_API_TOKEN: ${{ secrets.ANTHROPIC_API_TOKEN }}
DOKU_URL: ${{ secrets.DOKU_URL }}
DOKU_TOKEN: ${{ secrets.DOKU_TOKEN }}

jobs:
build:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: 20
cache: 'npm'

- run: npm ci

- name: NPM Test
run: npm test

publish:
needs: build
runs-on: ubuntu-latest
Expand Down
24 changes: 21 additions & 3 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,14 @@ on:
branches: [ "main" ]
workflow_dispatch:
schedule:
- cron: '0 9 * * *'
- cron: '0 0 * * 0'

env:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_TOKEN }}
COHERE_API_TOKEN: ${{ secrets.COHERE_API_TOKEN }}
ANTHROPIC_API_TOKEN: ${{ secrets.ANTHROPIC_API_TOKEN }}
DOKU_URL: ${{ secrets.DOKU_URL }}
DOKU_TOKEN: ${{ secrets.DOKU_TOKEN }}
MISTRAL_API_TOKEN: ${{ secrets.MISTRAL_API_TOKEN }}
DOKU_URL: http://127.0.0.1:9044

jobs:
build:
Expand All @@ -27,6 +27,24 @@ jobs:
steps:
- uses: actions/checkout@v4

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@0d103c3126aa41d772a8362f6aa67afac040f80c # v3.1.0

- name: Setup Doku Stack
run: docker-compose up -d

- name: Sleep for 30 seconds
run: sleep 30

- name: Make API Request and Set DOKU_TOKEN
run: |
RESPONSE=$(curl -X POST $DOKU_URL/api/keys \
-H 'Authorization: ""' \
-H 'Content-Type: application/json' \
-d '{"Name": "GITHUBACTION"}')
MESSAGE=$(echo $RESPONSE | jq -r '.message')
echo "DOKU_TOKEN=${MESSAGE}" >> $GITHUB_ENV
- name: Setup Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
- ✅ OpenAI
- ✅ Anthropic
- ✅ Cohere
- ✅ Mistral

Deployed as the backbone for all your LLM monitoring needs, `dokumetry` channels crucial usage data directly to Doku, streamlining the tracking process. Unlock efficient and effective observability for your LLM applications with DokuMetry.

Expand Down
52 changes: 52 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
version: '3.8'

services:
clickhouse:
image: clickhouse/clickhouse-server:24.1.5
container_name: clickhouse
environment:
CLICKHOUSE_PASSWORD: ${DOKU_DB_PASSWORD:-DOKU}
CLICKHOUSE_USER: ${DOKU_DB_USER:-default}
volumes:
- clickhouse-data:/var/lib/clickhouse
ports:
- "9000:9000"
- "8123:8123"
restart: always

doku-ingester:
image: ghcr.io/dokulabs/doku-ingester:latest
container_name: doku-ingester
environment:
DOKU_DB_HOST: clickhouse
DOKU_DB_PORT: 9000
DOKU_DB_NAME: ${DOKU_DB_NAME:-default}
DOKU_DB_USER: ${DOKU_DB_USER:-default}
DOKU_DB_PASSWORD: ${DOKU_DB_PASSWORD:-DOKU}
ports:
- "9044:9044"
depends_on:
- clickhouse
restart: always

doku-client:
image: ghcr.io/dokulabs/doku-client:latest
container_name: doku-client
environment:
INIT_DB_HOST: clickhouse
INIT_DB_PORT: 8123
INIT_DB_DATABASE: ${DOKU_DB_NAME:-default}
INIT_DB_USERNAME: ${DOKU_DB_USER:-default}
INIT_DB_PASSWORD: ${DOKU_DB_PASSWORD:-DOKU}
SQLITE_DATABASE_URL: file:/app/client/data/data.db
ports:
- "3000:3000"
depends_on:
- clickhouse
volumes:
- doku-client-data:/app/client/data
restart: always

volumes:
clickhouse-data:
doku-client-data:
188 changes: 186 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 3 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "dokumetry",
"version": "0.1.0",
"version": "0.1.1",
"description": "An NPM Package for tracking OpenAI API calls and sending usage metrics to Doku",
"main": "src/index.js",
"scripts": {
Expand All @@ -27,7 +27,9 @@
"stream": "^0.0.2"
},
"devDependencies": {
"@azure/openai": "^1.0.0-beta.11",
"@anthropic-ai/sdk": "^0.17.1",
"@mistralai/mistralai": "^0.1.3",
"chai": "^5.0.3",
"cohere-ai": "^7.7.3",
"eslint": "^8.56.0",
Expand Down
Loading

0 comments on commit abf65a0

Please sign in to comment.