diff --git a/README-CN.md b/README-CN.md index 029a2a215..a0f864d9b 100644 --- a/README-CN.md +++ b/README-CN.md @@ -114,7 +114,7 @@ Julep 支持创建多步骤任务,包括决策、循环、并行处理以及 1. 🧠 **持久 AI 代理**:在长期交互​​中记住上下文和信息。 2. 💾 **状态会话**:跟踪过去的互动以获得个性化回应。 -3. 🔄 **多步骤任务**:通过循环和决策构建复杂的多步骤流程。 +3. 🔄 **多步骤任务**:使用循环和决策构建复杂的多步骤流程。 4. ⏳ **任务管理**:处理可以无限期运行的长时间运行的任务。 5.🛠️**内置工具**:在您的任务中使用内置工具和外部 API。 6. 🔧 **自我修复**:Julep 将自动重试失败的步骤、重新发送消息,并确保您的任务顺利运行。 @@ -158,12 +158,12 @@ tools: integration: provider: brave setup: - api_key: BSAqES7dj9d... # dummy key + api_key: BSAqES7dj9d... # dummy key - name: discord_webhook type: api_call api_call: - url: https://eobuxj02se0n.m.pipedream.net # dummy requestbin + url: https://eobuxj02se0n.m.pipedream.net # dummy requestbin method: POST headers: Content-Type: application/json @@ -231,34 +231,40 @@ main: 人工智能研究摘要 (点击展开) > **人工智能研究摘要** -> +> >###人工智能(AI)研究成果摘要 -> +> > #### 简介 +> > 近年来,人工智能 (AI) 领域取得了重大进展,其特点是方法和技术的发展,使机器能够感知环境、从数据中学习并做出决策。本摘要主要关注从与 AI 相关的各种研究成果中获得的见解。 -> +> > #### 主要发现 -> +> > 1. **人工智能的定义和范围**: +> > - 人工智能被定义为计算机科学的一个分支,专注于创建能够执行需要类似人类智能的任务的系统,包括学习、推理和解决问题(维基百科)。 >——它涵盖了各种子领域,包括机器学习、自然语言处理、机器人和计算机视觉。 -> +> > 2. **影响与应用**: +> > - AI 技术正在融入众多领域,提高效率和生产力。应用范围从自动驾驶汽车和医疗诊断到客户服务自动化和财务预测(OpenAI)。 > - 谷歌致力于让人工智能造福每个人,这凸显了其通过增强各个平台的用户体验(谷歌人工智能)显著改善日常生活的潜力。 -> +> > 3. **道德考虑**: +> > - 关于人工智能的伦理影响的讨论一直在进行中,包括对隐私、偏见和决策过程中的责任的担忧。强调需要一个确保安全和负责任地使用人工智能技术的框架(OpenAI)。 -> +> > 4. **学习机制**: +> > - AI 系统利用不同的学习机制,例如监督学习、无监督学习和强化学习。这些方法允许 AI 通过从过去的经验和数据中学习来提高性能(维基百科)。 > - 监督学习和无监督学习之间的区别至关重要;监督学习依赖于标记数据,而无监督学习则识别没有预定义标签的模式(无监督)。 -> +> > 5. **未来方向**: > - 未来人工智能的发展预计将专注于增强人工智能系统的可解释性和透明度,确保它们能够提供合理的决策和行动(OpenAI)。 > - 人们还在努力使人工智能系统更易于访问和用户友好,鼓励不同人群和行业更广泛地采用它(谷歌人工智能)。 -> +> > #### 结论 +> > 人工智能代表着跨多个领域的变革力量,有望重塑行业并改善生活质量。然而,随着其能力的扩展,解决随之而来的伦理和社会影响至关重要。技术专家、伦理学家和政策制定者之间的持续研究和合作对于驾驭人工智能的未来格局至关重要。 @@ -268,6 +274,7 @@ main: 要开始使用 Julep,请使用 [npm](https://www.npmjs.com/package/@julep/sdk) 或 [pip](https://pypi.org/project/julep/) 安装它: **Node.js**: + ```bash npm install @julep/sdk @@ -277,6 +284,7 @@ bun add @julep/sdk ``` **Python**: + ```bash pip install julep ``` @@ -293,7 +301,7 @@ pip install julep ## Python 快速入门🐍 -```python +````python ### Step 0: Setup import time @@ -378,7 +386,7 @@ main: {% for idea in outputs[1].plot_ideas %} - {{idea}} {% endfor %} - + Here are the results from researching the plot ideas on Wikipedia: {{_.wikipedia_results}} @@ -430,7 +438,7 @@ while (result := client.executions.get(execution.id)).status 不在 ['成功', ' 打印(结果.输出) 别的: 引发异常(结果.错误) -``` +```` You can find the full python example [here](example.py). @@ -449,13 +457,16 @@ You can find the full python example [here](example.py). ```JavaScript的 // 步骤 0:设置 -const dotenv = require('dotenv'); -const { Julep } = require('@julep/sdk'); -const yaml = require('yaml'); +const dotenv = require(“dotenv”); +const { Julep } = require(“@julep/sdk”); +const yaml = require(“yaml”); dotenv.配置(); -const 客户端 = new Julep({ apiKey:process.env.JULEP_API_KEY, 环境:process.env.JULEP_ENVIRONMENT || “生产” }); +const 客户端 = new Julep({ +apiKey:process.env.JULEP_API_KEY, +环境:process.env.JULEP_ENVIRONMENT || “生产”, +}); /* 步骤 1:创建代理 */ @@ -463,7 +474,8 @@ const 客户端 = new Julep({ apiKey:process.env.JULEP_API_KEY, 环境:p const 代理 = 等待客户端.代理.创建({ 名称:“讲故事特工”, 模型:“claude-3.5-sonnet”, -关于:“您是一位富有创意的讲故事者,能够就无数主题创作引人入胜的故事。”, +关于: +“您是一位富有创意的讲故事者,能就无数主题创作出引人入胜的故事。” }); 回報代理; } @@ -567,10 +579,7 @@ wikipedia_results:'NEWLINE.join([f“- {doc.metadata.title}:{doc.metadata. `; 异步函数 createTask(agentId){ -const task = await 客户端.tasks.create( -代理人编号, -yaml.解析(taskYaml) -(英文): +const task = 等待客户端.tasks.创建(agentId, yaml.parse(taskYaml)); 返回任务; } @@ -578,7 +587,7 @@ yaml.解析(taskYaml) 异步函数 executeTask (taskId) { const 执行 = 等待客户端.执行.创建(taskId,{ -输入:{ 想法:“一只学飞的猫” } +输入:{想法:“一只学飞的猫”}, }); // 🎉 观看故事和漫画面板的生成 @@ -586,7 +595,7 @@ while (真) { const result = 等待客户端.executions.get(execution.id); 控制台.log(结果.状态,结果.输出); -if (result.status === '成功' || result.status === '失败') { +if (result.status === "成功" || result.status === "失败") { // 📦执行完成后,检索结果 如果 (result.status === "成功") { 控制台.log(结果.输出); @@ -596,7 +605,7 @@ if (result.status === '成功' || result.status === '失败') { 休息; } -等待新的 Promise(resolve => setTimeout(resolve,1000)); +等待新的Promise((resolve)=> setTimeout(resolve,1000)); } } @@ -611,7 +620,9 @@ console.error("发生错误:", error); } } -main().then(() => console.log("完成")).catch(console.error); +主要的() +.then(() => console.log("完成")) +.catch(控制台.错误); ``` You can find the full Node.js example [here](example.js). @@ -685,7 +696,6 @@ classDef 核心填充:#f9f,描边:#333,描边宽度:2px; - **Documents**: Text or data objects associated with agents or users, vectorized and stored for semantic search and retrieval. - **Executions**: Instances of tasks that have been initiated with specific inputs, with their own lifecycle and state machine. -
Back to Top @@ -858,6 +868,7 @@ Retrieve a value from the execution's key-value store. Assign a value to a key in the execution's key-value store.

Note: The set step uses Python expressions. + @@ -1095,6 +1106,7 @@ Agents can be given access to a number of "tools" -- any programmatic interface Unlike agent frameworks, julep is a _backend_ that manages agent execution. Clients can interact with agents using our SDKs. julep takes care of executing tasks and running integrations. Tools in julep can be one of: + 1. **User-defined `functions`**: These are function signatures that you can give the model to choose from, similar to how [openai]'s function-calling works. They need to be handled by the client. The workflow will pause until the client calls the function and gives the results back to julep. 2. **`system` tools**: Built-in tools that can be used to call the julep APIs themselves, like triggering a task execution, appending to a metadata field, etc. 3. **`integrations`**: Built-in third party tools that can be used to extend the capabilities of your agents. @@ -1128,12 +1140,11 @@ These are function signatures that you can give the model to choose from, simila Whenever julep encounters a _user-defined function_, it pauses, giving control back to the client and waits for the client to run the function call and give the results back to julep. -> [!TIP] -> **Example cookbook**: [cookbooks/13-Error_Handling_and_Recovery.py](https://github.com/julep-ai/julep/blob/dev/cookbooks/13-Error_Handling_and_Recovery.py) +> [!TIP] > **Example cookbook**: [cookbooks/13-Error_Handling_and_Recovery.py](https://github.com/julep-ai/julep/blob/dev/cookbooks/13-Error_Handling_and_Recovery.py) ### `system` tools -Built-in tools that can be used to call the julep APIs themselves, like triggering a task execution, appending to a metadata field, etc. +Built-in tools that can be used to call the julep APIs themselves, like triggering a task execution, appending to a metadata field, etc. `system` tools are built into the backend. They get executed automatically when needed. They do _not_ require any action from the client-side. @@ -1161,6 +1172,7 @@ For example, #### Available `system` resources and operations - `agent`: + - `list`: List all agents. - `get`: Get a single agent by id. - `create`: Create a new agent. @@ -1168,6 +1180,7 @@ For example, - `delete`: Delete an existing agent. - `user`: + - `list`: List all users. - `get`: Get a single user by id. - `create`: Create a new user. @@ -1175,6 +1188,7 @@ For example, - `delete`: Delete an existing user. - `session`: + - `list`: List all sessions. - `get`: Get a single session by id. - `create`: Create a new session. @@ -1184,6 +1198,7 @@ For example, - `history`: Get the chat history with a session. - `task`: + - `list`: List all tasks. - `get`: Get a single task by id. - `create`: Create a new task. @@ -1197,6 +1212,7 @@ For example, - `search`: Search for documents. Additional operations available for some resources: + - `embed`: Embed a resource (specific resources not specified in the provided code). - `change_status`: Change the status of a resource (specific resources not specified in the provided code). - `chat`: Chat with a resource (specific resources not specified in the provided code). @@ -1205,8 +1221,7 @@ Additional operations available for some resources: Note: The availability of these operations may vary depending on the specific resource and implementation details. -> [!TIP] -> **Example cookbook**: [cookbooks/10-Document_Management_and_Search.py](https://github.com/julep-ai/julep/blob/dev/cookbooks/10-Document_Management_and_Search.py) +> [!TIP] > **Example cookbook**: [cookbooks/10-Document_Management_and_Search.py](https://github.com/julep-ai/julep/blob/dev/cookbooks/10-Document_Management_and_Search.py) ### Built-in `integrations` @@ -1214,9 +1229,7 @@ Julep comes with a number of built-in integrations (as described in the section See [Integrations](#integrations) for details on the available integrations. -> [!TIP] -> **Example cookbook**: [cookbooks/01-Website_Crawler_using_Spider.ipynb](https://github.com/julep-ai/julep/blob/dev/cookbooks/01-Website_Crawler_using_Spider.ipynb) - +> [!TIP] > **Example cookbook**: [cookbooks/01-Website_Crawler_using_Spider.ipynb](https://github.com/julep-ai/julep/blob/dev/cookbooks/01-Website_Crawler_using_Spider.ipynb) ### Direct `api_calls` @@ -1286,7 +1299,7 @@ result: string # Brave Search 的结果 设置: api_key: string # BrowserBase 的 API 密钥 project_id: string # BrowserBase 的项目 ID -session_id: string #(可选)BrowserBase 的会话 ID +session_id: string # (可选)BrowserBase 的会话 ID 参数: urls: list[string] # 使用 BrowserBase 加载的 URL @@ -1530,8 +1543,7 @@ metadata_filter={“category”:“research_paper”}
- -***** +--- ## Julep 和 LangChain 等有什么区别? diff --git a/README-FR.md b/README-FR.md index d40575411..5ef866cf0 100644 --- a/README-FR.md +++ b/README-FR.md @@ -43,7 +43,7 @@ Nous sommes ravis d'accueillir de nouveaux contributeurs au projet Julep ! Nous 2. Parcourez nos [bons premiers numéros](https://github.com/julep-ai/julep/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) pour trouver une tâche qui vous intéresse. 3. Si vous avez des questions ou avez besoin d'aide, n'hésitez pas à nous contacter sur notre chaîne [Discord](https://discord.com/invite/JTSBGRZrzj). -Vos contributions, grandes ou petites, nous sont précieuses. Construisons ensemble quelque chose d'extraordinaire ! 🚀 +Vos contributions, grandes ou petites, sont précieuses pour nous. Construisons ensemble quelque chose d'extraordinaire ! 🚀 ### 🎉 DevFest.AI octobre 2024 @@ -163,12 +163,12 @@ tools: integration: provider: brave setup: - api_key: BSAqES7dj9d... # dummy key + api_key: BSAqES7dj9d... # dummy key - name: discord_webhook type: api_call api_call: - url: https://eobuxj02se0n.m.pipedream.net # dummy requestbin + url: https://eobuxj02se0n.m.pipedream.net # dummy requestbin method: POST headers: Content-Type: application/json @@ -236,34 +236,40 @@ Dans cet exemple, Julep gérera automatiquement les exécutions parallèles, ré Résumé de la recherche sur l'IA (Cliquez pour agrandir) > **Résumé de la recherche sur l'IA** -> +> > ### Résumé des résultats de recherche sur l'intelligence artificielle (IA) -> +> > #### Présentation +> > Le domaine de l’intelligence artificielle (IA) a connu des avancées significatives ces dernières années, marquées par le développement de méthodes et de technologies permettant aux machines de percevoir leur environnement, d’apprendre à partir de données et de prendre des décisions. L’objectif principal de ce résumé est de présenter les enseignements tirés de divers résultats de recherche liés à l’IA. -> +> > #### Principales conclusions -> +> > 1. **Définition et portée de l’IA** : +> > - L'IA est définie comme une branche de l'informatique axée sur la création de systèmes capables d'effectuer des tâches nécessitant une intelligence humaine, notamment l'apprentissage, le raisonnement et la résolution de problèmes (Wikipedia). > - Il englobe divers sous-domaines, notamment l’apprentissage automatique, le traitement du langage naturel, la robotique et la vision par ordinateur. -> +> > 2. **Impact et applications** : +> > - Les technologies d'IA sont intégrées dans de nombreux secteurs, améliorant l'efficacité et la productivité. Les applications vont des véhicules autonomes et des diagnostics de santé à l'automatisation du service client et aux prévisions financières (OpenAI). > - L'engagement de Google à rendre l'IA bénéfique pour tous met en évidence son potentiel à améliorer considérablement la vie quotidienne en améliorant l'expérience utilisateur sur diverses plateformes (Google AI). -> +> > 3. **Considérations éthiques** : +> > - Un débat est en cours sur les implications éthiques de l'IA, notamment sur les préoccupations relatives à la confidentialité, aux préjugés et à la responsabilité dans les processus de prise de décision. La nécessité d'un cadre garantissant l'utilisation sûre et responsable des technologies de l'IA est soulignée (OpenAI). -> +> > 4. **Mécanismes d’apprentissage** : +> > - Les systèmes d'IA utilisent différents mécanismes d'apprentissage, tels que l'apprentissage supervisé, l'apprentissage non supervisé et l'apprentissage par renforcement. Ces méthodes permettent à l'IA d'améliorer ses performances au fil du temps en apprenant des expériences et des données passées (Wikipedia). > - La distinction entre l’apprentissage supervisé et non supervisé est essentielle ; l’apprentissage supervisé s’appuie sur des données étiquetées, tandis que l’apprentissage non supervisé identifie des modèles sans étiquettes prédéfinies (non supervisé). -> +> > 5. **Orientations futures**: > - Les futurs développements de l’IA devraient se concentrer sur l’amélioration de l’interprétabilité et de la transparence des systèmes d’IA, garantissant qu’ils peuvent fournir des décisions et des actions justifiables (OpenAI). > - On observe également une volonté de rendre les systèmes d’IA plus accessibles et plus conviviaux, encourageant une adoption plus large dans différents groupes démographiques et secteurs (Google AI). -> +> > #### Conclusion +> > L’IA représente une force de transformation dans de nombreux domaines, promettant de remodeler les industries et d’améliorer la qualité de vie. Cependant, à mesure que ses capacités se développent, il est essentiel de tenir compte des implications éthiques et sociétales qui en découlent. La poursuite des recherches et de la collaboration entre les technologues, les éthiciens et les décideurs politiques sera essentielle pour s’orienter dans le futur paysage de l’IA. @@ -273,6 +279,7 @@ Dans cet exemple, Julep gérera automatiquement les exécutions parallèles, ré Pour commencer à utiliser Julep, installez-le en utilisant [npm](https://www.npmjs.com/package/@julep/sdk) ou [pip](https://pypi.org/project/julep/) : **Node.js**: + ```bash npm install @julep/sdk @@ -282,6 +289,7 @@ bun add @julep/sdk ``` **Python**: + ```bash pip install julep ``` @@ -298,7 +306,7 @@ pip install julep ## Démarrage rapide de Python 🐍 -```python +````python ### Step 0: Setup import time @@ -383,7 +391,7 @@ Renvoyez votre sortie sous forme de liste yaml à l'intérieur```yaml tags at th {% for idea in outputs[1].plot_ideas %} - {{idea}} {% endfor %} - + Here are the results from researching the plot ideas on Wikipedia: {{_.wikipedia_results}} @@ -435,7 +443,7 @@ si result.status == "réussi" : imprimer(résultat.sortie) autre: déclencher une exception (résultat.erreur) -``` +```` You can find the full python example [here](example.py). @@ -454,13 +462,16 @@ You can find the full python example [here](example.py). ```javascript // Étape 0 : Configuration -const dotenv = require('dotenv'); -const { Julep } = require('@julep/sdk'); -const yaml = require('yaml'); +const dotenv = require("dotenv"); +const { Julep } = require("@julep/sdk"); +const yaml = require("yaml"); dotenv.config(); -const client = new Julep({ apiKey: process.env.JULEP_API_KEY, environnement: process.env.JULEP_ENVIRONMENT || "production" }); +const client = nouveau Julep({ +Clé API : processus.env.JULEP_API_KEY, +environnement : process.env.JULEP_ENVIRONMENT || "production", +}); /* Étape 1 : Créer un agent */ @@ -468,7 +479,8 @@ fonction asynchrone createAgent() { agent constant = attendez que le client.agents.create({ nom : « Agent de narration », modèle : "claude-3.5-sonnet", -à propos de : « Vous êtes un conteur créatif qui crée des histoires captivantes sur une myriade de sujets. », +à propos de: +« Vous êtes un conteur créatif qui crée des histoires captivantes sur une myriade de sujets. », }); agent de retour; } @@ -572,10 +584,7 @@ tracé : « load_yaml(_.split('\`\`\`yaml')[1].split('\`\`\`')[0].strip()) » `; fonction asynchrone createTask(agentId) { -const tâche = attendre client.tasks.create( -identifiant de l'agent, -yaml.parse(tâcheYaml) - ); +const tâche = wait client.tasks.create(agentId, yaml.parse(taskYaml)); tâche de retour; } @@ -583,7 +592,7 @@ tâche de retour; fonction asynchrone executeTask(taskId) { const exécution = attendre client.executions.create(taskId, { -entrée : { idée : "Un chat qui apprend à voler" } +entrée : { idée : "Un chat qui apprend à voler" }, }); // 🎉 Regardez comment l'histoire et les panneaux de bande dessinée sont générés @@ -591,7 +600,7 @@ tandis que (vrai) { const résultat = wait client.executions.get(execution.id); console.log(résultat.status, résultat.output); -si (résultat.status === 'réussi' || résultat.status === 'échec') { +si (résultat.status === "réussi" || résultat.status === "échec") { // 📦 Une fois l'exécution terminée, récupérez les résultats si (résultat.status === "réussi") { console.log(résultat.sortie); @@ -601,7 +610,7 @@ lancer une nouvelle erreur (résultat.erreur); casser; } -attendre une nouvelle promesse (résolution => setTimeout (résolution, 1000)); +attendre une nouvelle promesse((résolution) => setTimeout(résolution, 1000)); } } @@ -616,7 +625,9 @@ console.error("Une erreur s'est produite :", error); } } -main().then(() => console.log("Terminé")).catch(console.error); +principal() +.then(() => console.log("Terminé")) +.catch(console.erreur); ``` You can find the full Node.js example [here](example.js). @@ -690,7 +701,6 @@ classe Agent,Tâches,Session core; - **Documents**: Text or data objects associated with agents or users, vectorized and stored for semantic search and retrieval. - **Executions**: Instances of tasks that have been initiated with specific inputs, with their own lifecycle and state machine. -
Back to Top @@ -863,6 +873,7 @@ Retrieve a value from the execution's key-value store. Assign a value to a key in the execution's key-value store.

Note: The set step uses Python expressions. + @@ -1059,7 +1070,7 @@ Run a subworkflow and await its completion - rendement: flux de travail : données_de_processus Arguments: -données d'entrée : _. données brutes # <-- expression Python +données_d'entrée : _. données_raw # <-- expression python ``` @@ -1100,6 +1111,7 @@ Agents can be given access to a number of "tools" -- any programmatic interface Unlike agent frameworks, julep is a _backend_ that manages agent execution. Clients can interact with agents using our SDKs. julep takes care of executing tasks and running integrations. Tools in julep can be one of: + 1. **User-defined `functions`**: These are function signatures that you can give the model to choose from, similar to how [openai]'s function-calling works. They need to be handled by the client. The workflow will pause until the client calls the function and gives the results back to julep. 2. **`system` tools**: Built-in tools that can be used to call the julep APIs themselves, like triggering a task execution, appending to a metadata field, etc. 3. **`integrations`**: Built-in third party tools that can be used to extend the capabilities of your agents. @@ -1133,12 +1145,11 @@ contenu : '"salut"' # <-- expression python Whenever julep encounters a _user-defined function_, it pauses, giving control back to the client and waits for the client to run the function call and give the results back to julep. -> [!TIP] -> **Example cookbook**: [cookbooks/13-Error_Handling_and_Recovery.py](https://github.com/julep-ai/julep/blob/dev/cookbooks/13-Error_Handling_and_Recovery.py) +> [!TIP] > **Example cookbook**: [cookbooks/13-Error_Handling_and_Recovery.py](https://github.com/julep-ai/julep/blob/dev/cookbooks/13-Error_Handling_and_Recovery.py) ### `system` tools -Built-in tools that can be used to call the julep APIs themselves, like triggering a task execution, appending to a metadata field, etc. +Built-in tools that can be used to call the julep APIs themselves, like triggering a task execution, appending to a metadata field, etc. `system` tools are built into the backend. They get executed automatically when needed. They do _not_ require any action from the client-side. @@ -1166,6 +1177,7 @@ limite : 10 # <-- expression python #### Available `system` resources and operations - `agent`: + - `list`: List all agents. - `get`: Get a single agent by id. - `create`: Create a new agent. @@ -1173,6 +1185,7 @@ limite : 10 # <-- expression python - `delete`: Delete an existing agent. - `user`: + - `list`: List all users. - `get`: Get a single user by id. - `create`: Create a new user. @@ -1180,6 +1193,7 @@ limite : 10 # <-- expression python - `delete`: Delete an existing user. - `session`: + - `list`: List all sessions. - `get`: Get a single session by id. - `create`: Create a new session. @@ -1189,6 +1203,7 @@ limite : 10 # <-- expression python - `history`: Get the chat history with a session. - `task`: + - `list`: List all tasks. - `get`: Get a single task by id. - `create`: Create a new task. @@ -1202,6 +1217,7 @@ limite : 10 # <-- expression python - `search`: Search for documents. Additional operations available for some resources: + - `embed`: Embed a resource (specific resources not specified in the provided code). - `change_status`: Change the status of a resource (specific resources not specified in the provided code). - `chat`: Chat with a resource (specific resources not specified in the provided code). @@ -1210,8 +1226,7 @@ Additional operations available for some resources: Note: The availability of these operations may vary depending on the specific resource and implementation details. -> [!TIP] -> **Example cookbook**: [cookbooks/10-Document_Management_and_Search.py](https://github.com/julep-ai/julep/blob/dev/cookbooks/10-Document_Management_and_Search.py) +> [!TIP] > **Example cookbook**: [cookbooks/10-Document_Management_and_Search.py](https://github.com/julep-ai/julep/blob/dev/cookbooks/10-Document_Management_and_Search.py) ### Built-in `integrations` @@ -1219,9 +1234,7 @@ Julep comes with a number of built-in integrations (as described in the section See [Integrations](#integrations) for details on the available integrations. -> [!TIP] -> **Example cookbook**: [cookbooks/01-Website_Crawler_using_Spider.ipynb](https://github.com/julep-ai/julep/blob/dev/cookbooks/01-Website_Crawler_using_Spider.ipynb) - +> [!TIP] > **Example cookbook**: [cookbooks/01-Website_Crawler_using_Spider.ipynb](https://github.com/julep-ai/julep/blob/dev/cookbooks/01-Website_Crawler_using_Spider.ipynb) ### Direct `api_calls` @@ -1343,7 +1356,7 @@ spider_api_key : chaîne # La clé API pour Spider Arguments: url : chaîne # L'URL pour laquelle récupérer les données mode : chaîne # Le type de robots d'exploration (par défaut : « scrape ») -paramètres : dict # (facultatif) Les paramètres de l'API Spider +paramètres : dict # (facultatif) Les paramètres de l'API Spider sortir: documents : liste # Les documents renvoyés par l'araignée @@ -1535,8 +1548,7 @@ Explorez notre documentation API pour en savoir plus sur les agents, les tâches
- -***** +--- ## Quelle est la différence entre Julep et LangChain etc ? @@ -1551,7 +1563,7 @@ Julep, en revanche, s'intéresse davantage à la création d'agents d'IA persist Utilisez Julep si vous imaginez créer un assistant IA complexe qui doit : - Suivez les interactions des utilisateurs sur plusieurs jours ou semaines. -- Exécutez des tâches planifiées, comme l'envoi de résumés quotidiens ou la surveillance de sources de données. +- Exécutez des tâches planifiées, comme l'envoi de résumés quotidiens ou la surveillance des sources de données. - Prendre des décisions basées sur des interactions antérieures ou des données stockées. - Interagir avec plusieurs services externes dans le cadre de son flux de travail. diff --git a/README-JA.md b/README-JA.md index 359e855d7..a7addd4b0 100644 --- a/README-JA.md +++ b/README-JA.md @@ -119,7 +119,7 @@ Julep を使用すると、意思決定、ループ、並列処理、多数の 3. 🔄 **複数ステップのタスク**: ループと意思決定を含む複雑な複数ステップのプロセスを構築します。 4. ⏳ **タスク管理**: 無期限に実行される可能性のある長時間実行タスクを処理します。 5. 🛠️ **組み込みツール**: タスクで組み込みツールと外部 API を使用します。 -6. 🔧 **自己修復**: Julep は失敗したステップを自動的に再試行し、メッセージを再送信し、一般的にタスクがスムーズに実行されるようにします。 +6. 🔧 **自己修復**: Julep は失敗したステップを自動的に再試行し、メッセージを再送信し、タスクがスムーズに実行されるようにします。 7. 📚 **RAG**: Julep のドキュメント ストアを使用して、独自のデータを取得して使用するためのシステムを構築します。 ![機能](https://github.com/user-attachments/assets/4355cbae-fcbd-4510-ac0d-f8f77b73af70) @@ -160,12 +160,12 @@ tools: integration: provider: brave setup: - api_key: BSAqES7dj9d... # dummy key + api_key: BSAqES7dj9d... # dummy key - name: discord_webhook type: api_call api_call: - url: https://eobuxj02se0n.m.pipedream.net # dummy requestbin + url: https://eobuxj02se0n.m.pipedream.net # dummy requestbin method: POST headers: Content-Type: application/json @@ -233,34 +233,40 @@ main: AIに関する研究概要 (クリックして拡大) > **AIに関する研究概要** -> +> > ### 人工知能(AI)に関する研究成果の概要 -> +> > #### はじめに +> > 人工知能 (AI) の分野は近年、機械が環境を認識し、データから学習し、意思決定を行える方法とテクノロジーの開発により、大きな進歩を遂げています。この概要では、AI に関連するさまざまな研究結果から得られた洞察に主に焦点を当てています。 -> +> > #### 主な調査結果 -> +> > 1. **AIの定義と範囲**: +> > - AI は、学習、推論、問題解決など、人間のような知能を必要とするタスクを実行できるシステムの作成に重点を置いたコンピューター サイエンスの分野として定義されています (Wikipedia)。 > - 機械学習、自然言語処理、ロボット工学、コンピュータービジョンなど、さまざまなサブフィールドを網羅しています。 -> +> > 2. **影響と応用**: +> > - AI テクノロジーはさまざまな分野に統合され、効率性と生産性を向上させています。その応用範囲は、自律走行車やヘルスケア診断から顧客サービスの自動化や財務予測まで多岐にわたります (OpenAI)。 > - AI をすべての人にとって有益なものにするという Google の取り組みは、さまざまなプラットフォームでユーザー エクスペリエンスを強化することで日常生活を大幅に改善する可能性を強調しています (Google AI)。 -> +> > 3. **倫理的配慮**: +> > - プライバシー、偏見、意思決定プロセスの説明責任に関する懸念など、AI の倫理的影響に関する議論が続いています。AI 技術の安全で責任ある使用を保証するフレームワークの必要性が強調されています (OpenAI)。 -> +> > 4. **学習メカニズム**: +> > - AI システムは、教師あり学習、教師なし学習、強化学習などのさまざまな学習メカニズムを活用します。これらの方法により、AI は過去の経験やデータから学習することで、時間の経過とともにパフォーマンスを向上させることができます (Wikipedia)。 > - 教師あり学習と教師なし学習の区別は重要です。教師あり学習はラベル付きデータに依存しますが、教師なし学習は事前定義されたラベルなしでパターンを識別します (教師なし)。 -> +> > 5. **今後の方向性**: > - 今後の AI 開発では、AI システムの解釈可能性と透明性を高め、正当な判断と行動を提供できるようにすることに重点が置かれると予想されます (OpenAI)。 > - AI システムをよりアクセスしやすく、ユーザーフレンドリーなものにし、さまざまな人口統計や業界での幅広い導入を促進する動きもあります (Google AI)。 -> +> > #### 結論 +> > AI は複数の領域に変革をもたらす力を持ち、産業の再構築や生活の質の向上が期待されています。しかし、AI の機能が拡大するにつれて、倫理的および社会的影響に対処することが極めて重要になります。AI の将来像を見据えるには、技術者、倫理学者、政策立案者による継続的な研究と協力が不可欠です。 @@ -270,6 +276,7 @@ main: Julep を使い始めるには、[npm](https://www.npmjs.com/package/@julep/sdk) または [pip](https://pypi.org/project/julep/) を使用してインストールします。 **Node.js**: + ```bash npm install @julep/sdk @@ -279,6 +286,7 @@ bun add @julep/sdk ``` **Python**: + ```bash pip install julep ``` @@ -295,7 +303,7 @@ pip install julep ## Python クイックスタート 🐍 -```python +````python ### Step 0: Setup import time @@ -380,13 +388,13 @@ plot_ideas: load_yaml(_.split('```yaml')[1].split('```')[0].ストリップ()) {% for idea in outputs[1].plot_ideas %} - {{idea}} {% endfor %} - + Here are the results from researching the plot ideas on Wikipedia: {{_.wikipedia_results}} Think about the plot ideas critically. Combine the plot ideas with the results from Wikipedia to create a detailed plot for a story. Write down all your notes and thoughts. - Then finally write the plot as a yaml object inside ```応答の最後に yaml タグを追加します。yaml オブジェクトの構造は次のようになります。 + Then finally write the plot as a yaml object inside ```レスポンスの最後に yaml タグを追加します。yaml オブジェクトの構造は次のようになります。 ```yaml title: "" @@ -432,7 +440,7 @@ result.status == "成功"の場合: print(結果.出力) それ以外: 例外(結果.エラー)を発生させる -``` +```` You can find the full python example [here](example.py). @@ -451,13 +459,16 @@ You can find the full python example [here](example.py). ```ジャバスクリプト // ステップ 0: セットアップ -定数dotenv = require('dotenv'); -Julep のクラスを '@julep/sdk' として定義します。 -yaml を require('yaml'); +dotenv は、次のコードで定義されます。 +Julep の SDK を実装するには、次の手順に従ってください。 +yaml を require します。 config() を呼び出します。 -const client = new Julep({ apiKey: process.env.JULEP_API_KEY, 環境: process.env.JULEP_ENVIRONMENT || "production" }); +constクライアント = 新しいジュレップ({ +APIキー: process.env.JULEP_API_KEY、 +環境: process.env.JULEP_ENVIRONMENT || "production", +}); /* ステップ 1: エージェントを作成する */ @@ -465,7 +476,8 @@ const client = new Julep({ apiKey: process.env.JULEP_API_KEY, 環境: process.en const エージェント = クライアント.エージェント.作成を待機します({ 名前: 「ストーリーテリングエージェント」 モデル: "claude-3.5-sonnet", -概要: 「あなたは、さまざまなトピックについて魅力的なストーリーを作り上げることができるクリエイティブなストーリーテラーです。」 +について: +「あなたは、さまざまなトピックについて魅力的なストーリーを作り上げることができる創造的なストーリーテラーです。」 }); 返品エージェント; } @@ -569,18 +581,15 @@ yaml が有効であり、文字とシーンが空でないことを確認して `; 非同期関数createTask(agentId) { -const タスク = クライアント.タスク.作成を待機します( -エージェントID、 -yaml.parse(タスクYaml) - ); +const タスク = client.tasks.create(agentId, yaml.parse(taskYaml)) を待機します。 タスクを返す。 } /* ステップ 3: タスクを実行する */ 非同期関数executeTask(taskId) { -const 実行 = クライアント.実行.作成(taskId, { -入力: { アイデア: 「飛ぶことを学ぶ猫」 } +const 実行 = クライアントの実行の作成を待機します(taskId、{ +入力: { アイデア: 「飛ぶことを学ぶ猫」 }, }); // 🎉 ストーリーと漫画パネルが生成される様子をご覧ください @@ -588,7 +597,7 @@ const 実行 = クライアント.実行.作成(taskId, { const 結果 = client.executions.get(execution.id); を待機します。 console.log(結果のステータス、結果の出力); -if (result.status === '成功' || result.status === '失敗') { +if (result.status === "成功" || result.status === "失敗") { // 📦 実行が終了したら、結果を取得します if (result.status === "成功") { console.log(結果の出力); @@ -598,7 +607,7 @@ console.log(結果の出力); 壊す; } -新しい Promise(resolve => setTimeout(resolve, 1000)) を待機します。 +新しい Promise((resolve) => setTimeout(resolve, 1000)) を待機します。 } } @@ -613,7 +622,9 @@ console.error("エラーが発生しました:", error); } } -main().then(() => console.log("完了")).catch(console.error); +主要() +.then(() => console.log("完了")) +.catch(コンソール.エラー); ``` You can find the full Node.js example [here](example.js). @@ -687,7 +698,6 @@ classDef core fill:#f9f、stroke:#333、stroke-width:2px; - **Documents**: Text or data objects associated with agents or users, vectorized and stored for semantic search and retrieval. - **Executions**: Instances of tasks that have been initiated with specific inputs, with their own lifecycle and state machine. -
Back to Top @@ -860,6 +870,7 @@ Retrieve a value from the execution's key-value store. Assign a value to a key in the execution's key-value store.

Note: The set step uses Python expressions. + @@ -1097,6 +1108,7 @@ Agents can be given access to a number of "tools" -- any programmatic interface Unlike agent frameworks, julep is a _backend_ that manages agent execution. Clients can interact with agents using our SDKs. julep takes care of executing tasks and running integrations. Tools in julep can be one of: + 1. **User-defined `functions`**: These are function signatures that you can give the model to choose from, similar to how [openai]'s function-calling works. They need to be handled by the client. The workflow will pause until the client calls the function and gives the results back to julep. 2. **`system` tools**: Built-in tools that can be used to call the julep APIs themselves, like triggering a task execution, appending to a metadata field, etc. 3. **`integrations`**: Built-in third party tools that can be used to extend the capabilities of your agents. @@ -1130,12 +1142,11 @@ These are function signatures that you can give the model to choose from, simila Whenever julep encounters a _user-defined function_, it pauses, giving control back to the client and waits for the client to run the function call and give the results back to julep. -> [!TIP] -> **Example cookbook**: [cookbooks/13-Error_Handling_and_Recovery.py](https://github.com/julep-ai/julep/blob/dev/cookbooks/13-Error_Handling_and_Recovery.py) +> [!TIP] > **Example cookbook**: [cookbooks/13-Error_Handling_and_Recovery.py](https://github.com/julep-ai/julep/blob/dev/cookbooks/13-Error_Handling_and_Recovery.py) ### `system` tools -Built-in tools that can be used to call the julep APIs themselves, like triggering a task execution, appending to a metadata field, etc. +Built-in tools that can be used to call the julep APIs themselves, like triggering a task execution, appending to a metadata field, etc. `system` tools are built into the backend. They get executed automatically when needed. They do _not_ require any action from the client-side. @@ -1163,6 +1174,7 @@ For example, #### Available `system` resources and operations - `agent`: + - `list`: List all agents. - `get`: Get a single agent by id. - `create`: Create a new agent. @@ -1170,6 +1182,7 @@ For example, - `delete`: Delete an existing agent. - `user`: + - `list`: List all users. - `get`: Get a single user by id. - `create`: Create a new user. @@ -1177,6 +1190,7 @@ For example, - `delete`: Delete an existing user. - `session`: + - `list`: List all sessions. - `get`: Get a single session by id. - `create`: Create a new session. @@ -1186,6 +1200,7 @@ For example, - `history`: Get the chat history with a session. - `task`: + - `list`: List all tasks. - `get`: Get a single task by id. - `create`: Create a new task. @@ -1199,6 +1214,7 @@ For example, - `search`: Search for documents. Additional operations available for some resources: + - `embed`: Embed a resource (specific resources not specified in the provided code). - `change_status`: Change the status of a resource (specific resources not specified in the provided code). - `chat`: Chat with a resource (specific resources not specified in the provided code). @@ -1207,8 +1223,7 @@ Additional operations available for some resources: Note: The availability of these operations may vary depending on the specific resource and implementation details. -> [!TIP] -> **Example cookbook**: [cookbooks/10-Document_Management_and_Search.py](https://github.com/julep-ai/julep/blob/dev/cookbooks/10-Document_Management_and_Search.py) +> [!TIP] > **Example cookbook**: [cookbooks/10-Document_Management_and_Search.py](https://github.com/julep-ai/julep/blob/dev/cookbooks/10-Document_Management_and_Search.py) ### Built-in `integrations` @@ -1216,9 +1231,7 @@ Julep comes with a number of built-in integrations (as described in the section See [Integrations](#integrations) for details on the available integrations. -> [!TIP] -> **Example cookbook**: [cookbooks/01-Website_Crawler_using_Spider.ipynb](https://github.com/julep-ai/julep/blob/dev/cookbooks/01-Website_Crawler_using_Spider.ipynb) - +> [!TIP] > **Example cookbook**: [cookbooks/01-Website_Crawler_using_Spider.ipynb](https://github.com/julep-ai/julep/blob/dev/cookbooks/01-Website_Crawler_using_Spider.ipynb) ### Direct `api_calls` @@ -1294,7 +1307,7 @@ session_id: 文字列 # (オプション) BrowserBaseのセッションID urls: list[string] # BrowserBaseで読み込むURL 出力: -documents: list # URLから読み込まれたドキュメント +ドキュメント: リスト # URLから読み込まれたドキュメント ``` @@ -1446,7 +1459,7 @@ context_overflow="適応型" # 同じセッションで会話を続ける レスポンス = client.sessions.chat( -session_id=セッションID、 +セッションID=セッションID、 メッセージ=[ { 「役割」: 「ユーザー」、 @@ -1519,7 +1532,7 @@ metadata_filter={"category": "研究論文"} 1. `git clone https://github.com/julep-ai/julep.git` 2. `cd ジュレップ` 3. `docker volume create cozo_backup` -4. docker ボリュームを作成します cozo_data +4. `docker volume create cozo_data` 5. `cp .env.example .env # <-- このファイルを編集します` 6. `docker compose --env-file .env --profile temporal-ui --profile single-tenant --profile self-hosted-db up --build` @@ -1532,8 +1545,7 @@ metadata_filter={"category": "研究論文"}
- -***** +--- ## Julep と LangChain などの違いは何ですか? diff --git a/docs/julep-concepts.md b/docs/julep-concepts.md index 88df90841..737a1f9cc 100644 --- a/docs/julep-concepts.md +++ b/docs/julep-concepts.md @@ -897,14 +897,14 @@ See [loom video](https://www.loom.com/embed/c5cda67936254465aaff4548245b3e13?hid A `Task` is a workflow owned by an `Agent`. It consists of the following fields: -| **Field** | **Type** | **Description** | -|:----------------|:------------------------|:-----------------------------------------------------------------| -| `name` | `string` | The name of the task (required for creation). | -| `description` | `string` | A description of the task (default: ""). | -| `main` | `WorkflowStep[]` | The main workflow steps (required, minimum 1 item). | -| `input_schema` | `Record | null` | JSON schema to validate input when executing the task (default: null). | -| `tools` | `TaskTool[]` | Additional tools specific to this task (default: empty array). | -| `inherit_tools` | `boolean` | Whether to inherit tools from the parent agent (default: true). | +| **Field** | **Type** | **Description** | +| :-------------- | :--------------- | :-------------------------------------------------------------- | ---------------------------------------------------------------------- | +| `name` | `string` | The name of the task (required for creation). | +| `description` | `string` | A description of the task (default: ""). | +| `main` | `WorkflowStep[]` | The main workflow steps (required, minimum 1 item). | +| `input_schema` | `Record | null` | JSON schema to validate input when executing the task (default: null). | +| `tools` | `TaskTool[]` | Additional tools specific to this task (default: empty array). | +| `inherit_tools` | `boolean` | Whether to inherit tools from the parent agent (default: true). | Additionally, a `Task` includes: