Skip to content

Commit

Permalink
Add queries and tokens metrics (#647)
Browse files Browse the repository at this point in the history
<!-- ELLIPSIS_HIDDEN -->


> [!IMPORTANT]
> Add Prometheus metrics tracking to various API functions using a new
`increase_counter` decorator.
> 
>   - **Metrics**:
> - Add `increase_counter` decorator in `counters.py` to increment
Prometheus counters for function calls.
> - Apply `increase_counter` to multiple functions across various
models, including `create_agent`, `create_or_update_agent`,
`patch_agent`, `update_agent`, `create_doc`, `create_entries`,
`create_execution`, `create_execution_transition`,
`create_temporal_lookup`, `update_execution`,
`create_or_update_session`, `create_session`, `update_session`,
`create_or_update_task`, `create_task`, `patch_task`, `update_task`,
`create_tools`, `patch_tool`, `update_tool`, `create_or_update_user`,
`create_user`, `patch_user`, `update_user`.
>   - **Dependencies**:
> - Add `prometheus-client` to `pyproject.toml` for metrics tracking.
>   - **Misc**:
> - Add `total_tokens_per_user` counter in `metrics.py` to track token
usage per user in `chat.py`.
> 
> <sup>This description was created by </sup>[<img alt="Ellipsis"
src="https://img.shields.io/badge/Ellipsis-blue?color=175173">](https://www.ellipsis.dev?ref=julep-ai%2Fjulep&utm_source=github&utm_medium=referral)<sup>
for fe315d7. It will automatically
update as commits are pushed.</sup>


<!-- ELLIPSIS_HIDDEN -->

---------

Signed-off-by: Diwank Singh Tomer <[email protected]>
Co-authored-by: Diwank Singh Tomer <[email protected]>
Co-authored-by: creatorrr <[email protected]>
  • Loading branch information
3 people authored Oct 16, 2024
1 parent cd6045d commit 9019b57
Show file tree
Hide file tree
Showing 33 changed files with 278 additions and 218 deletions.
69 changes: 31 additions & 38 deletions README-CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,44 +63,37 @@
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
<details>
<summary><h3>📖 目录</h3></summary>

- [简介](#introduction)
- [主要特点](#key-features)
- [快速示例](#quick-example)
- [安装](#安装)
- [Python 快速入门 🐍](#python-quick-start-)
- [步骤 1:创建代理](#step-1-create-an-agent)
- [步骤 2:创建一个生成故事和漫画的任务](#step-2-create-a-task-that-generates-a-story-and-comic-strip)
- [步骤 3:执行任务](#step-3-execute-the-task)
- [步骤 4:与代理聊天](#step-4-chat-with-the-agent)
- [Node.js 快速入门🟩](#nodejs-quick-start-)
- [步骤 1:创建代理](#step-1-create-an-agent-1)
- [步骤 2:创建一个生成故事和漫画的任务](#step-2-create-a-task-that-generates-a-story-and-comic-strip-1)
- [步骤 3:执行任务](#step-3-execute-the-task-1)
- [步骤 4:与代理聊天](#step-4-chat-with-the-agent-1)
- [组件](#components)
- [心智模型](#mental-model)
- [概念](#concepts)
- [理解任务](#understanding-tasks)
- [工作流步骤的类型](#types-of-workflow-steps)
- [工具类型](#tool-types)
- [用户定义的`函数`](#user-defined-functions)
- [`系统` 工具](#system-tools)
- [内置 `integrations`](#built-in-integrations)
-[直接`api_calls`](#direct-api_calls)
- [集成](#integrations)
- [其他功能](#other-features)
- [向代理添加工具](#adding-tools-to-agents)
- [管理会话和用户](#managing-sessions-and-users)
- [文档集成与搜索](#document-integration-and-search)
- [本地快速启动](#local-quickstart)
- [SDK 参考](#sdk-reference)
- [API 参考](#api-reference)
- [为什么 Julep 与 LangChain?](#why-julep-vs-langchain)
- [不同用例](#different-use-cases)
- [不同的外形尺寸](#different-form-factor)
- [总结](#in-summary)
<summary><h3>📖 Table of Contents</h3></summary>

- [主要特点](#%E4%B8%BB%E8%A6%81%E7%89%B9%E7%82%B9)
- [Python 快速入门🐍](#python-%E5%BF%AB%E9%80%9F%E5%85%A5%E9%97%A8)
- [步骤 1:创建代理](#%E6%AD%A5%E9%AA%A4-1%E5%88%9B%E5%BB%BA%E4%BB%A3%E7%90%86)
- [步骤 2:创建一个生成故事和漫画的任务](#%E6%AD%A5%E9%AA%A4-2%E5%88%9B%E5%BB%BA%E4%B8%80%E4%B8%AA%E7%94%9F%E6%88%90%E6%95%85%E4%BA%8B%E5%92%8C%E6%BC%AB%E7%94%BB%E7%9A%84%E4%BB%BB%E5%8A%A1)
- [步骤 3:执行任务](#%E6%AD%A5%E9%AA%A4-3%E6%89%A7%E8%A1%8C%E4%BB%BB%E5%8A%A1)
- [步骤 4:与代理聊天](#%E6%AD%A5%E9%AA%A4-4%E4%B8%8E%E4%BB%A3%E7%90%86%E8%81%8A%E5%A4%A9)
- [Node.js 快速入门 🟩](#nodejs-%E5%BF%AB%E9%80%9F%E5%85%A5%E9%97%A8-)
- [步骤 1:创建代理](#%E6%AD%A5%E9%AA%A4-1%E5%88%9B%E5%BB%BA%E4%BB%A3%E7%90%86-1)
- [步骤 2:创建一个生成故事和漫画的任务](#%E6%AD%A5%E9%AA%A4-2%E5%88%9B%E5%BB%BA%E4%B8%80%E4%B8%AA%E7%94%9F%E6%88%90%E6%95%85%E4%BA%8B%E5%92%8C%E6%BC%AB%E7%94%BB%E7%9A%84%E4%BB%BB%E5%8A%A1-1)
- [步骤 3:执行任务](#%E6%AD%A5%E9%AA%A4-3%E6%89%A7%E8%A1%8C%E4%BB%BB%E5%8A%A1-1)
- [步骤 4:与代理聊天](#%E6%AD%A5%E9%AA%A4-4%E4%B8%8E%E4%BB%A3%E7%90%86%E8%81%8A%E5%A4%A9-1)
- [心智模型](#%E5%BF%83%E6%99%BA%E6%A8%A1%E5%9E%8B)
- [概念](#%E6%A6%82%E5%BF%B5)
- [理解任务](#%E7%90%86%E8%A7%A3%E4%BB%BB%E5%8A%A1)
- [工作流步骤的类型](#%E5%B7%A5%E4%BD%9C%E6%B5%81%E6%AD%A5%E9%AA%A4%E7%9A%84%E7%B1%BB%E5%9E%8B)
- [工具类型](#%E5%B7%A5%E5%85%B7%E7%B1%BB%E5%9E%8B)
- [用户定义的函数](#%E7%94%A8%E6%88%B7%E5%AE%9A%E4%B9%89%E7%9A%84%E5%87%BD%E6%95%B0)
- [`系统` 工具](#%E7%B3%BB%E7%BB%9F-%E5%B7%A5%E5%85%B7)
- [内置“集成”](#%E5%86%85%E7%BD%AE%E9%9B%86%E6%88%90)
- [直接 `api_calls`](#%E7%9B%B4%E6%8E%A5-api_calls)
- [集成](#%E9%9B%86%E6%88%90)
- [向代理添加工具](#%E5%90%91%E4%BB%A3%E7%90%86%E6%B7%BB%E5%8A%A0%E5%B7%A5%E5%85%B7)
- [管理会话和用户](#%E7%AE%A1%E7%90%86%E4%BC%9A%E8%AF%9D%E5%92%8C%E7%94%A8%E6%88%B7)
- [文档集成与搜索](#%E6%96%87%E6%A1%A3%E9%9B%86%E6%88%90%E4%B8%8E%E6%90%9C%E7%B4%A2)
- [本地快速启动](#%E6%9C%AC%E5%9C%B0%E5%BF%AB%E9%80%9F%E5%90%AF%E5%8A%A8)
- [SDK 参考](#sdk-%E5%8F%82%E8%80%83)
- [为什么选择 Julep 而不是 LangChain?](#%E4%B8%BA%E4%BB%80%E4%B9%88%E9%80%89%E6%8B%A9-julep-%E8%80%8C%E4%B8%8D%E6%98%AF-langchain)
- [不同的用例](#%E4%B8%8D%E5%90%8C%E7%9A%84%E7%94%A8%E4%BE%8B)
- [不同的外形尺寸](#%E4%B8%8D%E5%90%8C%E7%9A%84%E5%A4%96%E5%BD%A2%E5%B0%BA%E5%AF%B8)

</details>
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
Expand Down
68 changes: 34 additions & 34 deletions README-FR.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,44 +63,44 @@ Des nouvelles passionnantes ! Nous participons au DevFest.AI tout au long du moi
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
<details>
<summary><h3>📖 Table des matières</h3></summary>
<summary><h3>📖 Table of Contents</h3></summary>

- [Présentation](#introduction)
- [Caractéristiques principales](#key-features)
- [Exemple rapide](#quick-example)
- [Introduction](#introduction)
- [Principales caractéristiques](#principales-caract%C3%A9ristiques)
- [Exemple rapide](#exemple-rapide)
- [Installation](#installation)
- [Démarrage rapide de Python 🐍](#python-quick-start-)
- [Étape 1 : Créer un agent](#step-1-create-an-agent)
- [Étape 2 : Créer une tâche qui génère une histoire et une bande dessinée](#step-2-create-a-task-that-generates-a-story-and-comic-strip)
- [Étape 3 : Exécuter la tâche](#step-3-execute-the-task)
- [Étape 4 : discuter avec l'agent](#step-4-chat-with-the-agent)
- [Démarrage rapide de Node.js 🟩](#nodejs-quick-start-)
- [Étape 1 : Créer un agent](#step-1-create-an-agent-1)
- [Étape 2 : Créer une tâche qui génère une histoire et une bande dessinée](#step-2-create-a-task-that-generates-a-story-and-comic-strip-1)
- [Étape 3 : Exécuter la tâche](#step-3-execute-the-task-1)
- [Étape 4 : discuter avec l'agent](#step-4-chat-with-the-agent-1)
- [Démarrage rapide de Python 🐍](#d%C3%A9marrage-rapide-de-python-)
- [Étape 1 : Créer un agent](#%C3%89tape-1%C2%A0-cr%C3%A9er-un-agent)
- [Étape 2 : Créer une tâche qui génère une histoire et une bande dessinée](#%C3%89tape-2%C2%A0-cr%C3%A9er-une-t%C3%A2che-qui-g%C3%A9n%C3%A8re-une-histoire-et-une-bande-dessin%C3%A9e)
- [Étape 3 : Exécuter la tâche](#%C3%89tape-3%C2%A0-ex%C3%A9cuter-la-t%C3%A2che)
- [Étape 4 : Discuter avec l'agent](#%C3%89tape-4%C2%A0-discuter-avec-lagent)
- [Démarrage rapide de Node.js 🟩](#d%C3%A9marrage-rapide-de-nodejs-)
- [Étape 1 : Créer un agent](#%C3%89tape-1%C2%A0-cr%C3%A9er-un-agent-1)
- [Étape 2 : Créer une tâche qui génère une histoire et une bande dessinée](#%C3%89tape-2%C2%A0-cr%C3%A9er-une-t%C3%A2che-qui-g%C3%A9n%C3%A8re-une-histoire-et-une-bande-dessin%C3%A9e-1)
- [Étape 3 : Exécuter la tâche](#%C3%89tape-3%C2%A0-ex%C3%A9cuter-la-t%C3%A2che-1)
- [Étape 4 : Discuter avec l'agent](#%C3%89tape-4%C2%A0-discuter-avec-lagent-1)
- [Composants](#composants)
- [Modèle mental](#mental-model)
- [Modèle mental](#mod%C3%A8le-mental)
- [Concepts](#concepts)
- [Comprendre les tâches](#understanding-tasks)
- [Types d'étapes de flux de travail](#types-of-workflow-steps)
- [Types d'outils](#types-d'outils)
- [`Fonctions` définies par l'utilisateur](#user-defined-functions)
- [outils système](#outils-système)
- [`Intégrations` intégrées](#integrations-integrées)
- [Appels directs `api_calls`](#appels directs-api_calls)
- [Intégrations](#intégrations)
- [Autres fonctionnalités](#other-features)
- [Ajout d'outils aux agents](#adding-tools-to-agents)
- [Gestion des sessions et des utilisateurs](#managing-sessions-and-users)
- [Intégration et recherche de documents](#document-integration-and-search)
- [Démarrage rapide local](#local-quickstart)
- [Référence SDK](#sdk-reference)
- [Référence API](#api-reference)
- [Pourquoi Julep contre LangChain ?](#pourquoi-julep-vs-langchain)
- [Différents cas d'utilisation](#different-use-cases)
- [Facteur de forme différent](#different-form-factor)
- [En résumé](#en-resumé)
- [Comprendre les tâches](#comprendre-les-t%C3%A2ches)
- [Types d'étapes de flux de travail](#types-d%C3%A9tapes-de-flux-de-travail)
- [Types d'outils](#types-doutils)
- [Fonctions définies par l'utilisateur](#fonctions-d%C3%A9finies-par-lutilisateur)
- [outils `système`](#outils-syst%C3%A8me)
- [« Intégrations » intégrées](#%C2%AB%C2%A0int%C3%A9grations%C2%A0%C2%BB-int%C3%A9gr%C3%A9es)
- [Appels directs `api_calls`](#appels-directs-api_calls)
- [Intégrations](#int%C3%A9grations)
- [Autres fonctionnalités](#autres-fonctionnalit%C3%A9s)
- [Ajout d'outils aux agents](#ajout-doutils-aux-agents)
- [Gestion des sessions et des utilisateurs](#gestion-des-sessions-et-des-utilisateurs)
- [Intégration et recherche de documents](#int%C3%A9gration-et-recherche-de-documents)
- [Démarrage rapide local](#d%C3%A9marrage-rapide-local)
- [Référence du SDK](#r%C3%A9f%C3%A9rence-du-sdk)
- [Référence API](#r%C3%A9f%C3%A9rence-api)
- [Pourquoi Julep vs. LangChain ?](#pourquoi-julep-vs-langchain%C2%A0)
- [Différents cas d'utilisation](#diff%C3%A9rents-cas-dutilisation)
- [Facteur de forme différent](#facteur-de-forme-diff%C3%A9rent)
- [En résumé](#en-r%C3%A9sum%C3%A9)

</details>
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
Expand Down
74 changes: 36 additions & 38 deletions README-JA.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,44 +63,42 @@ Julep プロジェクトに新しい貢献者を迎えられることを嬉し
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
<details>
<summary><h3>📖 目次</h3></summary>

- [はじめに](#introduction)
- [主な特徴](#key-features)
- [簡単な例](#quick-example)
- [インストール](#installation)
- [Python クイックスタート 🐍](#python-quick-start-)
- [ステップ 1: エージェントを作成する](#step-1-create-an-agent)
- [ステップ 2: ストーリーとコミック ストリップを生成するタスクを作成する](#step-2-create-a-task-that-generates-a-story-and-comic-strip)
- [ステップ 3: タスクを実行する](#step-3-execute-the-task)
- [ステップ 4: エージェントとチャットする](#step-4-chat-with-the-agent)
- [Node.js クイック スタート 🟩](#nodejs-quick-start-)
- [ステップ 1: エージェントを作成する](#step-1-create-an-agent-1)
- [ステップ 2: ストーリーとコミック ストリップを生成するタスクを作成する](#step-2-create-a-task-that-generates-a-story-and-comic-strip-1)
- [ステップ 3: タスクを実行する](#step-3-execute-the-task-1)
- [ステップ 4: エージェントとチャットする](#step-4-chat-with-the-agent-1)
- [コンポーネント](#components)
- [メンタルモデル](#mental-model)
- [コンセプト](#concepts)
- [タスクの理解](#understanding-tasks)
- [ワークフロー ステップの種類](#types-of-workflow-steps)
- [ツールの種類](#tool-types)
- [ユーザー定義の `functions`](#user-defined-functions)
- [`システム` ツール](#system-tools)
- [組み込みの `integrations`](#built-in-integrations)
- [直接の `api_calls`](#direct-api_calls)
- [統合](#integrations)
- [その他の機能](#other-features)
- [エージェントへのツールの追加](#adding-tools-to-agents)
- [セッションとユーザーの管理](#managing-sessions-and-users)
- [ドキュメントの統合と検索](#document-integration-and-search)
- [ローカルクイックスタート](#local-quickstart)
- [SDKリファレンス](#sdk-reference)
- [APIリファレンス](#api-reference)
- [なぜ Julep 対 LangChain?](#why-julep-vs-langchain)
- [さまざまなユースケース](#different-use-cases)
- [異なるフォームファクター](#different-form-factor)
- [要約](#in-summary)
<summary><h3>📖 Table of Contents</h3></summary>

- [主な特徴](#%E4%B8%BB%E3%81%AA%E7%89%B9%E5%BE%B4)
- [簡単な例](#%E7%B0%A1%E5%8D%98%E3%81%AA%E4%BE%8B)
- [インストール](#%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB)
- [Python クイックスタート 🐍](#python-%E3%82%AF%E3%82%A4%E3%83%83%E3%82%AF%E3%82%B9%E3%82%BF%E3%83%BC%E3%83%88-)
- [ステップ 1: エージェントを作成する](#%E3%82%B9%E3%83%86%E3%83%83%E3%83%97-1-%E3%82%A8%E3%83%BC%E3%82%B8%E3%82%A7%E3%83%B3%E3%83%88%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B)
- [ステップ2: ストーリーと漫画を生成するタスクを作成する](#%E3%82%B9%E3%83%86%E3%83%83%E3%83%972-%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AA%E3%83%BC%E3%81%A8%E6%BC%AB%E7%94%BB%E3%82%92%E7%94%9F%E6%88%90%E3%81%99%E3%82%8B%E3%82%BF%E3%82%B9%E3%82%AF%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B)
- [ステップ3: タスクを実行する](#%E3%82%B9%E3%83%86%E3%83%83%E3%83%973-%E3%82%BF%E3%82%B9%E3%82%AF%E3%82%92%E5%AE%9F%E8%A1%8C%E3%81%99%E3%82%8B)
- [ステップ4: エージェントとチャットする](#%E3%82%B9%E3%83%86%E3%83%83%E3%83%974-%E3%82%A8%E3%83%BC%E3%82%B8%E3%82%A7%E3%83%B3%E3%83%88%E3%81%A8%E3%83%81%E3%83%A3%E3%83%83%E3%83%88%E3%81%99%E3%82%8B)
- [Node.js クイックスタート 🟩](#nodejs-%E3%82%AF%E3%82%A4%E3%83%83%E3%82%AF%E3%82%B9%E3%82%BF%E3%83%BC%E3%83%88-)
- [ステップ 1: エージェントを作成する](#%E3%82%B9%E3%83%86%E3%83%83%E3%83%97-1-%E3%82%A8%E3%83%BC%E3%82%B8%E3%82%A7%E3%83%B3%E3%83%88%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B-1)
- [ステップ2: ストーリーと漫画を生成するタスクを作成する](#%E3%82%B9%E3%83%86%E3%83%83%E3%83%972-%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AA%E3%83%BC%E3%81%A8%E6%BC%AB%E7%94%BB%E3%82%92%E7%94%9F%E6%88%90%E3%81%99%E3%82%8B%E3%82%BF%E3%82%B9%E3%82%AF%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B-1)
- [ステップ3: タスクを実行する](#%E3%82%B9%E3%83%86%E3%83%83%E3%83%973-%E3%82%BF%E3%82%B9%E3%82%AF%E3%82%92%E5%AE%9F%E8%A1%8C%E3%81%99%E3%82%8B-1)
- [ステップ4: エージェントとチャットする](#%E3%82%B9%E3%83%86%E3%83%83%E3%83%974-%E3%82%A8%E3%83%BC%E3%82%B8%E3%82%A7%E3%83%B3%E3%83%88%E3%81%A8%E3%83%81%E3%83%A3%E3%83%83%E3%83%88%E3%81%99%E3%82%8B-1)
- [コンポーネント](#%E3%82%B3%E3%83%B3%E3%83%9D%E3%83%BC%E3%83%8D%E3%83%B3%E3%83%88)
- [メンタルモデル](#%E3%83%A1%E3%83%B3%E3%82%BF%E3%83%AB%E3%83%A2%E3%83%87%E3%83%AB)
- [コンセプト](#%E3%82%B3%E3%83%B3%E3%82%BB%E3%83%97%E3%83%88)
- [タスクを理解する](#%E3%82%BF%E3%82%B9%E3%82%AF%E3%82%92%E7%90%86%E8%A7%A3%E3%81%99%E3%82%8B)
- [ワークフローステップの種類](#%E3%83%AF%E3%83%BC%E3%82%AF%E3%83%95%E3%83%AD%E3%83%BC%E3%82%B9%E3%83%86%E3%83%83%E3%83%97%E3%81%AE%E7%A8%AE%E9%A1%9E)
- [ツールの種類](#%E3%83%84%E3%83%BC%E3%83%AB%E3%81%AE%E7%A8%AE%E9%A1%9E)
- [ユーザー定義の `functions`](#%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E5%AE%9A%E7%BE%A9%E3%81%AE-functions)
- [`システム` ツール](#%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0-%E3%83%84%E3%83%BC%E3%83%AB)
- [組み込みの `integrations`](#%E7%B5%84%E3%81%BF%E8%BE%BC%E3%81%BF%E3%81%AE-integrations)
- [直接の `api_calls`](#%E7%9B%B4%E6%8E%A5%E3%81%AE-api_calls)
- [統合](#%E7%B5%B1%E5%90%88)
- [その他の機能](#%E3%81%9D%E3%81%AE%E4%BB%96%E3%81%AE%E6%A9%9F%E8%83%BD)
- [エージェントへのツールの追加](#%E3%82%A8%E3%83%BC%E3%82%B8%E3%82%A7%E3%83%B3%E3%83%88%E3%81%B8%E3%81%AE%E3%83%84%E3%83%BC%E3%83%AB%E3%81%AE%E8%BF%BD%E5%8A%A0)
- [セッションとユーザーの管理](#%E3%82%BB%E3%83%83%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%A8%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%81%AE%E7%AE%A1%E7%90%86)
- [ドキュメントの統合と検索](#%E3%83%89%E3%82%AD%E3%83%A5%E3%83%A1%E3%83%B3%E3%83%88%E3%81%AE%E7%B5%B1%E5%90%88%E3%81%A8%E6%A4%9C%E7%B4%A2)
- [ローカルクイックスタート](#%E3%83%AD%E3%83%BC%E3%82%AB%E3%83%AB%E3%82%AF%E3%82%A4%E3%83%83%E3%82%AF%E3%82%B9%E3%82%BF%E3%83%BC%E3%83%88)
- [SDK リファレンス](#sdk-%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9)
- [APIリファレンス](#api%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9)
- [Julep と LangChain を比較する理由](#julep-%E3%81%A8-langchain-%E3%82%92%E6%AF%94%E8%BC%83%E3%81%99%E3%82%8B%E7%90%86%E7%94%B1)
- [さまざまなユースケース](#%E3%81%95%E3%81%BE%E3%81%96%E3%81%BE%E3%81%AA%E3%83%A6%E3%83%BC%E3%82%B9%E3%82%B1%E3%83%BC%E3%82%B9)
- [異なるフォームファクタ](#%E7%95%B0%E3%81%AA%E3%82%8B%E3%83%95%E3%82%A9%E3%83%BC%E3%83%A0%E3%83%95%E3%82%A1%E3%82%AF%E3%82%BF)

</details>
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
Expand Down
Empty file.
25 changes: 25 additions & 0 deletions agents-api/agents_api/metrics/counters.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
from functools import wraps
from typing import Callable, ParamSpec, TypeVar

from prometheus_client import Counter

P = ParamSpec("P")
T = TypeVar("T")


def increase_counter(metric_label: str, id_field_name: str = "developer_id"):
def decor(func: Callable[P, T]):
metric = Counter(
metric_label,
f"Number of {metric_label} calls",
labelnames=(id_field_name,),
)

@wraps(func)
def wrapper(*args: P.args, **kwargs: P.kwargs) -> T:
metric.labels(kwargs.get(id_field_name, "not_set")).inc()
return func(*args, **kwargs)

return wrapper

return decor
2 changes: 2 additions & 0 deletions agents-api/agents_api/models/agent/create_agent.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@

from ...autogen.openapi_model import Agent, CreateAgentRequest
from ...common.utils.cozo import cozo_process_mutate_data
from ...metrics.counters import increase_counter
from ..utils import (
cozo_query,
partialclass,
Expand Down Expand Up @@ -57,6 +58,7 @@
_kind="inserted",
)
@cozo_query
@increase_counter("create_agent")
@beartype
def create_agent(
*,
Expand Down
2 changes: 2 additions & 0 deletions agents-api/agents_api/models/agent/create_or_update_agent.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@

from ...autogen.openapi_model import Agent, CreateOrUpdateAgentRequest
from ...common.utils.cozo import cozo_process_mutate_data
from ...metrics.counters import increase_counter
from ..utils import (
cozo_query,
partialclass,
Expand Down Expand Up @@ -48,6 +49,7 @@
Agent, one=True, transform=lambda d: {"id": UUID(d.pop("agent_id")), **d}
)
@cozo_query
@increase_counter("create_or_update_agent")
@beartype
def create_or_update_agent(
*,
Expand Down
2 changes: 2 additions & 0 deletions agents-api/agents_api/models/agent/patch_agent.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
from ...autogen.openapi_model import PatchAgentRequest, ResourceUpdatedResponse
from ...common.utils.cozo import cozo_process_mutate_data
from ...common.utils.datetime import utcnow
from ...metrics.counters import increase_counter
from ..utils import (
cozo_query,
partialclass,
Expand Down Expand Up @@ -36,6 +37,7 @@
_kind="inserted",
)
@cozo_query
@increase_counter("patch_agent")
@beartype
def patch_agent(
*,
Expand Down
2 changes: 2 additions & 0 deletions agents-api/agents_api/models/agent/update_agent.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@

from ...autogen.openapi_model import ResourceUpdatedResponse, UpdateAgentRequest
from ...common.utils.cozo import cozo_process_mutate_data
from ...metrics.counters import increase_counter
from ..utils import (
cozo_query,
partialclass,
Expand Down Expand Up @@ -35,6 +36,7 @@
_kind="inserted",
)
@cozo_query
@increase_counter("update_agent")
@beartype
def update_agent(
*,
Expand Down
2 changes: 2 additions & 0 deletions agents-api/agents_api/models/docs/create_doc.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@

from ...autogen.openapi_model import CreateDocRequest, Doc
from ...common.utils.cozo import cozo_process_mutate_data
from ...metrics.counters import increase_counter
from ..utils import (
cozo_query,
partialclass,
Expand Down Expand Up @@ -37,6 +38,7 @@
},
)
@cozo_query
@increase_counter("create_doc")
@beartype
def create_doc(
*,
Expand Down
2 changes: 2 additions & 0 deletions agents-api/agents_api/models/entry/create_entries.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
from ...common.utils.cozo import cozo_process_mutate_data
from ...common.utils.datetime import utcnow
from ...common.utils.messages import content_to_json
from ...metrics.counters import increase_counter
from ..utils import (
cozo_query,
mark_session_updated_query,
Expand Down Expand Up @@ -40,6 +41,7 @@
_kind="inserted",
)
@cozo_query
@increase_counter("create_entries")
@beartype
def create_entries(
*,
Expand Down
Loading

0 comments on commit 9019b57

Please sign in to comment.