はじめに
Julep AIは、過去のやりとりを記憶し、複雑なマルチステップタスクを実行するAIインテリジェンスを作成・管理するためのプラットフォームです。Julep AIは、長期記憶とマルチステッププロセス管理機能を提供し、外部ツールやAPIとの統合をサポートしているため、複雑なシナリオにも対応できます。ユーザーは簡単なYAMLファイルを記述して、タスクの個々のステップ、意思決定ポイント、ループ、並列処理などを定義し、クラウド上でこれらのタスクの実行を自動化できる。
Julep AIは、AIインテリジェンスとマルチステップタスクを管理するための新しいドメイン固有言語(DSL)とサーバーを導入しています。このDSLにより、ユーザーは従来のコードを大量に記述することなく、複雑なワークフローをより直感的に記述し、管理することができる。Julep AIのクラウドプラットフォームは、これらのタスクを実行し、信頼性と効率性を確保する。
機能一覧
- 永続的AIエージェントインテリゲンチアは、長期的な交流を支える文脈や情報を記憶することができる。
- ステートフルセッションパーソナライズされた応答を提供するために過去の相互作用を追跡する。
- マルチステップタスクループと決定を通じて複雑な多段階プロセスを構築する。
- タスク管理長時間実行されるタスクを処理し、タスクが正常に完了するようにする。
- 内蔵ツールとAPI統合インテリジェンスの機能を拡張するために、内蔵ツールや外部APIの使用をサポートします。
- 自己治癒失敗したステップを自動的に再試行し、メッセージを再送信することで、タスクがスムーズに実行されるようにします。
- RAG(検索機能拡張ジェネレーション)ドキュメントストアを使用して、独自のデータを検索して使用するシステムを構築します。
ヘルプの使用
設置プロセス
- アカウント登録ジュレップAIのウェブサイトにアクセスし、「登録」ボタンをクリックし、必要事項を入力して登録を完了します。
- APIキーの取得ログイン後、ユーザーパネルでAPIキー生成オプションを見つけ、APIキーを生成して保存します。
- SDKダウンロード: プラットフォームの要件に応じて適切なSDK(Python、Node.jsなど)をダウンロードし、ドキュメントに従ってインストールします。
使用ガイドライン
インテリジェンスの創造
- インテリジェンスの定義コントロールパネルで「インテリジェンスの作成」をクリックし、インテリジェンスの名前と説明を入力します。
- 構成モデル適切なAIモデル(GPT-4など)を選択し、デフォルトのパラメータ(温度、トークンの最大数など)を設定します。
- ツール追加ウェブ検索やAPIコールなど、インテリジェンスに必要なツールを追加する。
多段階プロセスの定義
- YAMLファイルを書くコントロール・パネルで、決定木、ループ、並列実行を定義するためにYAMLを使ってマルチステップ・プロセスを書く。
- ファイルのアップロード書いたYAMLファイルをプラットフォームにアップロードしてテストする。
- 配備プロセステストに合格したら、"Deploy "ボタンをクリックしてプロセスをオンラインにする。
ラピッドプロトタイピング
- 新しいプロジェクトを作成するコントロールパネルで "New Project "をクリックし、プロジェクト名と説明を入力します。
- 機能モジュールの追加必要な機能モジュール(RAG、ステータス管理など)を選択し、追加します。
- テストと反復プラットフォーム上でのテスト、リアルタイムでの機能モジュールの調整と最適化。
生産レベルの準備
- 構成インフラコントロールパネルで、オートスケーリング、ロードバランシングなどのインフラオプションを設定する。
- エラー処理の設定タスクが失敗した場合に自動的に再試行されるように、エラー処理メカニズムを定義する。
- オンライン・プロジェクト設定が完了したら、"Go Live "ボタンをクリックしてプロジェクトを本番稼動させます。
モジュール設計
- モジュール選択コントロールパネルで、目的のモジュール(外部API接続、LLMスイッチングなど)をブラウズして選択します。
- ドラッグ&ドロップ統合ドラッグ&ドロップでモジュールをプロジェクトに統合。
- テストと最適化最適化とチューニングのためのモジュール機能のリアルタイムテスト。
無制限の拡張
- 拡張オプションの設定コントロールパネルで、オートスケーリングとロードバランシングオプションを設定します。
- パフォーマンスのモニタリングプラットフォームが提供する監視ツールを使用して、システムのパフォーマンスとユーザーの同時実行をリアルタイムで監視します。
- コンフィギュレーションの調整モニタリングデータをもとに、拡張・負荷分散構成を調整し、システムの安定稼働を実現します。
将来性
- 新しいモデルを追加するコントロールパネルで "Add New Model "をクリックし、新しいAIモデルを選択・設定します。
- 新しいツールの統合プラットフォームが提供する新しいツールを閲覧し、選択し、既存のプロジェクトに統合します。
- テストと配備新しいモデルやツールをテストして互換性と安定性を確保し、本番配備を行う。
サンプルタスク
ジュレップは、単純なキュー・レスポンス・モデル以上のAIユースケースを必要とするアプリケーションに適している。
簡単な例
次のような行動ができる研究用AIエージェントを想像してみてほしい:
- トピックを選択
- このトピックに関する30件の検索クエリ
- ウェブ同時検索
- 要約結果
- Discordに概要を送る
Julepでは、これは独立したタスクとなり、80行のコード、そして完全なホスティングで実行されます。すべてのステップはJulep独自のサーバーで実行されるので、あなたは何もする必要がありません。
これは妥当な例だ:
name: Research Agent
# Optional: Define the input schema for the task
input_schema:
type: object
properties:
topic:
type: string
description: The main topic to research
num_questions:
type: integer
description: The number of search queries to generate
# Define the tools that the agent can use
tools:
- name: web_search
type: integration
integration:
provider: brave
setup:
api_key: <your-brave-api-key>
- name: discord_webhook
type: api_call
api_call:
url: https://discord.com/api/webhooks/<your-webhook-id>/<your-webhook-token>
method: POST
headers:
Content-Type: application/json
# Special variables:
# - inputs: for accessing the input to the task
# - outputs: for accessing the output of previous steps
# - _: for accessing the output of the previous step
# Define the main workflow
main:
- prompt:
- role: system
content: >-
You are a research assistant.
Generate {{inputs[0].num_questions|default(30, true)}} diverse search queries related to the topic:
{{inputs[0].topic}}
Write one query per line.
unwrap: true
# Evaluate the search queries using a simple python expression
- evaluate:
search_queries: "_.split(NEWLINE)"
# Run the web search in parallel for each query
- over: "_.search_queries"
map:
tool: web_search
arguments:
query: "_"
parallelism: 5
# Collect the results from the web search
- evaluate:
search_results: _
# Summarize the results
- prompt:
- role: system
content: >
You are a research summarizer. Create a comprehensive summary of the following research results on the topic {{inputs[0].topic}}.
The summary should be well-structured, informative, and highlight key findings and insights. Keep the summary concise and to the point.
The length of the summary should be less than 150 words.
Here are the search results:
{{_.search_results}}
unwrap: true
settings:
model: gpt-4o-mini
- evaluate:
discord_message: |-
f'''
**Research Summary for {inputs[0].topic}**
{_}
'''
# Send the summary to Discord
- tool: discord_webhook
arguments:
json_:
content: _.discord_message[:2000] # Discord has a 2000 character limit
この例では、Julepが自動的に並列実行を管理し、失敗したステップを再試行し、APIリクエストを再送し、完了まで確実にタスクを実行し続けます。
出力結果例
これは30秒で実行され、以下の出力を返す:
人工知能研究の概要
人工知能(AI)研究成果の概要
簡単
近年、人工知能(AI)の分野では、機械が環境を認識し、データから学習し、意思決定を行うことを可能にする手法や技術の開発により、著しい進歩が見られる。この要約では、AI関連の様々な研究成果から得られた洞察に焦点を当てる。主な調査結果
- 人工知能の定義と範囲 ::
人工知能は、学習、推論、問題解決など、人間のような知性を必要とするタスクを実行できるシステムを作ることに焦点を当てたコンピュータサイエンスの一分野と定義されている(ウィキペディア)。機械学習、自然言語処理、ロボット工学、コンピュータビジョンなど、さまざまな下位分野を含む。- 影響と応用 ::
AI技術は、効率性と生産性を向上させるために、数多くの分野に組み込まれている。自動運転車や医療診断から、顧客サービスの自動化や金融予測まで、アプリケーションは多岐にわたる(OpenAI)。誰もがAIを使えるようにするというグーグルのコミットメントは、プラットフォーム全体のユーザー体験を向上させることで、日常生活を大幅に改善する可能性を浮き彫りにしている(グーグルAI)。- 倫理的配慮 ::
プライバシー、偏見、意思決定過程における責任への懸念など、AIの倫理的意味合いについて議論が続いている。AI技術の安全で責任ある利用を保証する枠組み(OpenAI)の必要性が強調された。- 学習メカニズム ::
AIシステムは、教師あり学習、教師なし学習、強化学習など、さまざまな学習メカニズムを利用する。これらの手法により、AIは過去の経験やデータから学習することでパフォーマンスを向上させることができる(ウィキペディア)。教師あり学習と教師なし学習の違いは非常に重要で、教師あり学習はラベル付けされたデータに依存するのに対し、教師なし学習はあらかじめ定義されたラベル(教師なし)なしでパターンを認識する。- 今後の方向性 ::
AIの今後の発展は、AIシステムが適切な判断と行動を提供できるように、その解釈可能性と透明性を高めることに焦点が当てられると予想されている(OpenAI)。また、AIシステムをより利用しやすく、ユーザーフレンドリーなものにし、さまざまな人々や業界への普及を促す取り組みも行われている(Google AI)。評決を下す
人工知能はさまざまな領域で変革をもたらし、産業を再形成し、生活の質を向上させることが期待されている。しかし、人工知能の能力が拡大するにつれ、それに伴う倫理的・社会的な影響に対処することが重要になってくる。技術者、倫理学者、政策立案者の間の継続的な研究と協力は、AIの将来の展望をナビゲートするために不可欠である。
Python導入プロセス
Julepを使い始めるには、pipを使ってインストールする:
pip install julep
こちらからAPIキーを取得してください。
### Step 0: Setup import time import yaml from julep import Julep # or AsyncJulep client = Julep(api_key="your_julep_api_key") ### Step 1: Create an Agent agent = client.agents.create( name="Storytelling Agent", model="claude-3.5-sonnet", about="You are a creative storyteller that crafts engaging stories on a myriad of topics.", ) ### Step 2: Create a Task that generates a story and comic strip task_yaml = """ name: Storyteller description: Create a story based on an idea. tools: - name: research_wikipedia type: integration integration: provider: wikipedia method: search main: # Step 1: Generate plot idea - prompt: - role: system content: You are {{agent.name}}. {{agent.about}} - role: user content: > Based on the idea '{{_.idea}}', generate a list of 5 plot ideas. Go crazy and be as creative as possible. Return your output as a list of long strings inside ```yaml 标签位于您的回复末尾。 展开:true - 评价: 情节想法:load_yaml(_.split('```yaml')[1].split('```')[0].strip()) # 第二步:从情节思路中提取研究领域 - 迅速的: - 角色:系统 内容:您是 {{agent.name}}。{{agent.about}} - 角色:用户 内容: > 以下是一些故事情节的想法: {% 表示 _.plot_ideas 中的想法 %} - {{主意}} {% 结束 %} 为了发展故事情节,我们需要研究情节思路。 我们应该研究什么?写下你认为有趣的情节想法的维基百科搜索查询。 将输出作为 yaml 列表返回```yaml tags at the end of your response. unwrap: true settings: model: gpt-4o-mini temperature: 0.7 - evaluate: research_queries: load_yaml(_.split('```yaml')[1].split('```')[0].strip()) # Step 3: Research each plot idea - foreach: in: _.research_queries do: tool: research_wikipedia arguments: query: _ - evaluate: wikipedia_results: 'NEWLINE.join([f"- {doc.metadata.title}: {doc.metadata.summary}" for item in _ for doc in item.documents])' # Step 4: Think and deliberate - prompt: - role: system content: You are {{agent.name}}. {{agent.about}} - role: user content: |- Before we write the story, let's think and deliberate. Here are some plot ideas: {% 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 对象应具有以下结构: ```yaml title: "<string>" characters: - name: "<string>" about: "<string>" synopsis: "<string>" scenes: - title: "<string>" description: "<string>" characters: - name: "<string>" role: "<string>" plotlines: - "<string>"``` 确保 yaml 有效,且角色和场景不为空。还要注意分号和编写 yaml 的其他问题。 展开:true - 评价: 情节:“load_yaml(_.split('```yaml')[1].split('```')[0].strip())” """ 任务 = 客户端.任务.创建( agent_id=代理.id, **yaml.safe_load(任务_yaml) ) ### 步骤 3:执行任务 执行 = 客户端.执行.创建( 任务ID=任务ID, 输入={“idea”:“一只学飞的猫”} ) # 🎉 观看故事和漫画面板的生成 while (result := client.executions.get(execution.id)).status 不在 ['成功', '失败'] 中: 打印(结果.状态,结果.输出) 时间.睡眠(1) # 📦执行完成后,检索结果 如果 result.status ==“成功”: 打印(结果.输出) 别的: 引发异常(结果.错误)