diff --git a/.env.example b/.env.example index 97fee3282ef..7434229e709 100644 --- a/.env.example +++ b/.env.example @@ -192,6 +192,7 @@ SMALL_VENICE_MODEL= # Default: llama-3.3-70b MEDIUM_VENICE_MODEL= # Default: llama-3.3-70b LARGE_VENICE_MODEL= # Default: llama-3.1-405b IMAGE_VENICE_MODEL= # Default: fluently-xl +BYPASS_VENICE_SYSTEM_PROMPT= # | Default: false # Nineteen.ai Configuration NINETEEN_AI_API_KEY= # Get a free api key from https://nineteen.ai/app/api diff --git a/.github/workflows/smoke-tests.yml b/.github/workflows/smoke-tests.yml index 73d5dac5636..b63ee138a3d 100644 --- a/.github/workflows/smoke-tests.yml +++ b/.github/workflows/smoke-tests.yml @@ -30,3 +30,10 @@ jobs: - name: Run smoke tests run: pnpm run smokeTests + + - name: Upload test results + if: always() + uses: actions/upload-artifact@v4 + with: + name: test-results-${{env.MODIFIED_BRANCH_NAME}} + path: ${{env.OUTPUT_TEST_DIR}} diff --git a/Dockerfile b/Dockerfile index e976d352a98..96d92424417 100644 --- a/Dockerfile +++ b/Dockerfile @@ -28,14 +28,16 @@ RUN npm install -g pnpm@9.15.4 && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* -# Set Python 3 as the default python -RUN ln -sf /usr/bin/python3 /usr/bin/python +# Clone the repository +COPY . /app/eliza -# Set the working directory -WORKDIR /app +WORKDIR /app/eliza -# Copy application code -COPY . . +# List files to ensure package.json is present +RUN echo "Listing files in /app/eliza:" && ls -la + +# Set Python 3 as the default python +RUN ln -sf /usr/bin/python3 /usr/bin/python # Install dependencies RUN pnpm install @@ -60,20 +62,20 @@ RUN npm install -g pnpm@9.15.4 && \ WORKDIR /app # Copy built artifacts and production dependencies from the builder stage -COPY --from=builder /app/package.json ./ -COPY --from=builder /app/pnpm-workspace.yaml ./ -COPY --from=builder /app/.npmrc ./ -COPY --from=builder /app/turbo.json ./ -COPY --from=builder /app/node_modules ./node_modules -COPY --from=builder /app/agent ./agent -COPY --from=builder /app/client ./client -COPY --from=builder /app/lerna.json ./ -COPY --from=builder /app/packages ./packages -COPY --from=builder /app/scripts ./scripts -COPY --from=builder /app/characters ./characters +COPY --from=builder /app/eliza/package.json ./ +COPY --from=builder /app/eliza/pnpm-workspace.yaml ./ +COPY --from=builder /app/eliza/.npmrc ./ +COPY --from=builder /app/eliza/turbo.json ./ +COPY --from=builder /app/eliza/node_modules ./node_modules +COPY --from=builder /app/eliza/agent ./agent +COPY --from=builder /app/eliza/client ./client +COPY --from=builder /app/eliza/lerna.json ./ +COPY --from=builder /app/eliza/packages ./packages +COPY --from=builder /app/eliza/scripts ./scripts +COPY --from=builder /app/eliza/characters ./characters # Expose necessary ports EXPOSE 3000 5173 # Command to start the application -CMD ["sh", "-c", "pnpm start & pnpm start:client"] +CMD ["sh", "-c", "pnpm start & pnpm start:client"] \ No newline at end of file diff --git a/agent/src/index.ts b/agent/src/index.ts index 7d18e5469af..b8abe6a671c 100644 --- a/agent/src/index.ts +++ b/agent/src/index.ts @@ -212,7 +212,16 @@ async function jsonToCharacter( }; } // Handle plugins - character.plugins = await handlePluginImporting(character.plugins); + elizaLogger.debug( + `Constructing plugins for ${character.name} character ` + + `(count=${character.plugins.length})`, + ); + const pluginConstructors = await handlePluginImporting(character.plugins); + const getSetting = (key: string) => settings[key]; + character.plugins = []; + for (const pluginConstructor of pluginConstructors) { + character.plugins.push(await pluginConstructor(getSetting)); + } elizaLogger.info( character.name, "loaded plugins:", diff --git a/i18n/readme/README_TR.md b/i18n/readme/README_TR.md index bd8d698ff2c..ebe39740de2 100644 --- a/i18n/readme/README_TR.md +++ b/i18n/readme/README_TR.md @@ -6,28 +6,41 @@
-📖 [Dokümantasyon](https://elizaos.github.io/eliza/) | 🎯 [Örnekler](https://github.com/thejoven/awesome-eliza) +📑 [Teknik Rapor](https://arxiv.org/pdf/2501.06781) | 📖 [Dokümantasyon](https://elizaos.github.io/eliza/) | 🎯 [Örnekler](https://github.com/thejoven/awesome-eliza)
+## 🌍 README Çevirileri + +[中文说明](i18n/readme/README_CN.md) | [日本語の説明](i18n/readme/README_JA.md) | [한국어 설명](i18n/readme/README_KOR.md) | [Persian](i18n/readme/README_FA.md) | [Français](i18n/readme/README_FR.md) | [Português](i18n/readme/README_PTBR.md) | [Türkçe](i18n/readme/README_TR.md) | [Русский](i18n/readme/README_RU.md) | [Español](i18n/readme/README_ES.md) | [Italiano](i18n/readme/README_IT.md) | [ไทย](i18n/readme/README_TH.md) | [Deutsch](i18n/readme/README_DE.md) | [Tiếng Việt](i18n/readme/README_VI.md) | [עִברִית](i18n/readme/README_HE.md) | [Tagalog](i18n/readme/README_TG.md) | [Polski](i18n/readme/README_PL.md) | [Arabic](i18n/readme/README_AR.md) | [Hungarian](i18n/readme/README_HU.md) | [Srpski](i18n/readme/README_RS.md) | [Română](i18n/readme/README_RO.md) | [Nederlands](i18n/readme/README_NL.md) | [Ελληνικά](i18n/readme/README_GR.md) + +## 🚩 Genel Bakış + +
+ Eliza Diagram +
+ ## ✨ Özellikler -- 🛠️ Tam donanımlı Discord, Twitter ve Telegram bağlantıları -- 🔗 Tüm modeller için destek (Llama, Grok, OpenAI, Anthropic, vb.) -- 👥 Çoklu-ajan ve oda desteği +- 🛠️ Discord, X (Twitter) ve Telegram için tam donanımlı bağlayıcılar +- 🔗 Tüm modelleri destekler (Llama, Grok, OpenAI, Anthropic, Gemini, etc.) +- 👥 Çoklu agent ve oda desteği - 📚 Belgelerinizi kolayca içe aktarın ve etkileşime geçin -- 💾 Geri çağrılabilir hafıza ve belge deposu -- 🚀 Yüksek düzeyde genişletilebilir - kendi eylemlerinizi ve istemcilerinizi oluşturun -- ☁️ Birçok modeli destekler (yerel Llama, OpenAI, Anthropic, Groq, vb.) -- 📦 Hemen çalışır! +- 💾 Geri alınabilir hafıza ve belge deposu +- 🚀 Kolayca genişletilebilir - Kendi işlemlerinizi ve istemcilerinizi oluşturun +- 📦 Hızlı çalışır! + +## Video Tutorials -## 🎯 Kullanım Alanları +[AI Agent Dev School](https://www.youtube.com/watch?v=ArptLpQiKfI&list=PLx5pnFXdPTRzWla0RaOxALTSTnVq53fKL) -- 🤖 Sohbet Botları -- 🕵️ Otonom Ajanlar -- 📈 İş Süreçleri Yönetimi -- 🎮 Video Oyun NPC'leri (Oyuncu Olmayan Karakter) -- 🧠 Alım Satım +## 🎯 Use Cases + +- 🤖 Sohbet botları +- 🕵️ Otonom agentlar +- 📈 İş yönetimi +- 🎮 Video oyunu NPC'leri +- 🧠 Trading ## 🚀 Hızlı Başlangıç @@ -37,56 +50,143 @@ - [Node.js 23+](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) - [pnpm](https://pnpm.io/installation) -> **Windows Kullanıcıları İçin Not:** [WSL 2](https://learn.microsoft.com/en-us/windows/wsl/install-manual) gereklidir - -### .env Dosyasını Düzenleyin +> **Windows Kullanıcıları** [WSL 2](https://learn.microsoft.com/en-us/windows/wsl/install-manual) kullanmalıdır. -.env.example dosyasını .env olarak kopyalayın ve uygun değerleri doldurun +### Başlangıç Şablonunu Kullanın (Önerilir) -``` +```bash +git clone https://github.com/elizaos/eliza-starter.git +cd eliza-starter cp .env.example .env +pnpm i && pnpm build && pnpm start +``` + +### Elizayı manual olarak başlar (Sadece ne yaptığınızı biliyorsanız önerilir) + +#### Son yayınlanan versiyonu kontrol edin + +```bash +# Repositoryi kopyala +git clone https://github.com/elizaos/eliza.git + +# Proje hızlı gelişiyor, yani son versiyonu kontrol etmeniz önerilir +git checkout $(git describe --tags --abbrev=0) +# Üstteki komut işe yaramadıysa bunu deneyebilirsin: +# git checkout $(git describe --tags `git rev-list --tags --max-count=1`) ``` -### Karakter Dosyasını Düzenleyin +#### .env dosyasını düzenleyin -1. Varsayılan karakteri değiştirmek için `packages/core/src/defaultCharacter.ts` dosyasını açın +.env.example dosyasını .env olarak kopyalayın ve uygun değerleri doldurun. -2. Özel karakterleri yüklemek için: - - `pnpm start --characters="path/to/your/character.json"` komutunu kullanın - - Birden fazla karakter dosyası aynı anda yüklenebilir +``` +cp .env.example .env +``` -### Eliza'yı Başlatın +Not: .env opsiyoneldir. Birden fazla farklı agent kullanmayı planlıyorsanız karakterinizi direkt olarak JSON dosyası üzerinden inşa edebilirsiniz -.env dosyasını ve karakter dosyasını ayarladıktan sonra, botu aşağıdaki komutla başlatabilirsiniz: +#### Eliza'yı Başlatın ```bash pnpm i pnpm build pnpm start -# Proje hızlı gelişiyor, projeye geri döndüğünüzde bazen projeyi temizlemeniz gerekebilir +# Proje hızlı gelişiyor, bazen projeye geri döndüğünüzde projeyi temizlemeniz gerekebilir pnpm clean ``` +### Tarayıcı Üzerinden Etkileşime Geçin + +Agent çalıştığında, sonunda "pnpm start:client " komutunu çalıştırmanız gerektiğini belirten bir mesaj görmelisiniz. + +Başka bir terminal açın, aynı dizine gidin, aşağıdaki komutu çalıştırın ve ardından agentla sohbet etmek için URL'yi takip edin.. + +```bash +pnpm start:client +``` + +Ardından Eliza'nızı nasıl özelleştireceğinizi öğrenmek için [Dokümantasyon](https://elizaos.github.io/eliza/)'u okuyun . + +--- + +### Eliza'yı Otomatik Olarak Başlatın + +Başlatma komutu Eliza'yı otomatik olarak kurup başlatmanızı sağlar: + +```bash +sh scripts/start.sh +``` + +Başlatma komutunu kullanma, karakter yönetimi ve sorun giderme dahil ayrıntılı talimatlar için [Başlatma Komutu Kılavuzu](./docs/docs/guides/start-script.md)'nu kullanın. + +> **Not**: Başlatma komutu tüm bağımlılıkları, ortam kurulumunu ve karakter yönetimini otomatik olarak halleder.. + +--- + +### Karakteri Güncelle + +1. Varsayılan karakteri değiştirmek için `packages/core/src/defaultCharacter.ts` dosyasını açın. Yorumu kaldırın ve düzenleyin. + +2. Özel karakterleri yükle: + - `pnpm start --characters="path/to/your/character.json"` komutunu kullan + - Aynı anda birden fazla karakter dosyası yüklenebilir +3. X (Twitter) ile bağlantı kurun + - Karakter dosyasındaki `"clients": []` ifadesini `"clients": ["twitter"]` olarak değiştirin + +--- + #### Ek Gereksinimler -Sharp'ı yüklemeniz gerekebilir. Başlatma sırasında bir hata görürseniz, aşağıdaki komutla yüklemeyi deneyin: +Sharp'ı yüklemeniz gerekebilir. Başlatırken bir hata görürseniz, aşağıdaki komutla yüklemeyi deneyin: ``` pnpm install --include=optional sharp ``` +--- + +### Gitpod ile Eliza'yı Başlatın + +[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/elizaos/eliza/tree/main) + +--- + +### Tek Tıkla Eliza'yı Başlatın + +Eliza'yı tek tıkla başlatmak için [Fleek](https://fleek.xyz/eliza/) kullanın. Bu, Eliza'yı geliştiriciler dışındaki kişilere açar ve agentınızı oluşturmak için aşağıdaki seçenekleri sunar: +1. Bir şemyala başlama +2. Karakter dosyasını sıfırdan oluşturma +3. Önceden hazırlanmış karakter dosyasını yükleyin + +Başlamak için [buraya](https://fleek.xyz/eliza/) tıkla! + +--- + ### Topluluk ve İletişim -- [GitHub Issues](https://github.com/elizaos/eliza/issues). Buna uygundur: Eliza kullanırken karşılaştığınız hatalar ve özellik önerileri. -- [Discord](https://discord.gg/ai16z). Buna uygundur: Uygulamalarınızı paylaşmak ve toplulukla vakit geçirmek. +- Karşılaştığınız hatalar ve yapmak istediğiniz öneriler için [GitHub Issues](https://github.com/elizaos/eliza/issues)'u kullanabilirsiniz. +- Uygulamalarınızı paylaşmak ve toplulukla vakit geçirmek için [Discord](https://discord.gg/ai16z)'u kullanabilirsiniz. + +## Atıf + +Artık Eliza OS hakkında bir [makale](https://arxiv.org/pdf/2501.06781) var ve bu makaleye şu şekilde atıfta bulunabilirsiniz: +```bibtex +@article{walters2025eliza, + title={Eliza: A Web3 friendly AI Agent Operating System}, + author={Walters, Shaw and Gao, Sam and Nerd, Shakker and Da, Feng and Williams, Warren and Meng, Ting-Chien and Han, Hunter and He, Frank and Zhang, Allen and Wu, Ming and others}, + journal={arXiv preprint arXiv:2501.06781}, + year={2025} +} +``` ## Katkıda Bulunanlar - + Eliza project contributors + ## Yıldız Geçmişi [![Star History Chart](https://api.star-history.com/svg?repos=elizaos/eliza&type=Date)](https://star-history.com/#elizaos/eliza&Date) diff --git a/packages/core/src/generation.ts b/packages/core/src/generation.ts index 5265f126520..dca2ba55d91 100644 --- a/packages/core/src/generation.ts +++ b/packages/core/src/generation.ts @@ -1165,10 +1165,30 @@ export async function generateText({ case ModelProviderName.VENICE: { elizaLogger.debug("Initializing Venice model."); - const venice = createOpenAI({ + + const bypass = parseBooleanFromText( + runtime.getSetting("BYPASS_VENICE_SYSTEM_PROMPT") + ) + ? async (input: RequestInfo | URL, init?: RequestInit): Promise => { + const options: RequestInit = { ...init }; + if (options?.body) { + const body = JSON.parse(options.body as string); + body.venice_parameters = { + include_venice_system_prompt: false + }; + options.body = JSON.stringify(body); + } + return runtime.fetch(input, options); + } + : undefined; + + const veniceConfig = { apiKey: apiKey, baseURL: endpoint, - }); + ...(bypass ? { fetch: bypass } : {}) + }; + + const venice = createOpenAI(veniceConfig); const { text: veniceResponse } = await aiGenerateText({ model: venice.languageModel(model), @@ -1183,17 +1203,10 @@ export async function generateText({ maxSteps: maxSteps, maxTokens: max_response_length, }); - - // console.warn("veniceResponse:") - // console.warn(veniceResponse) + //rferrari: remove all text from to \n\n - response = veniceResponse.replace( - /[\s\S]*?<\/think>\s*\n*/g, - "" - ); - // console.warn(response) - - // response = veniceResponse; + response = veniceResponse + .replace(/[\s\S]*?<\/think>\s*\n*/g, ''); elizaLogger.debug("Received response from Venice model."); break; } @@ -1954,13 +1967,13 @@ export const generateImage = async ( seed: data.seed ?? 6252023, ...(runtime.getSetting("FAL_AI_LORA_PATH") ? { - loras: [ - { - path: runtime.getSetting("FAL_AI_LORA_PATH"), - scale: 1, - }, - ], - } + loras: [ + { + path: runtime.getSetting("FAL_AI_LORA_PATH"), + scale: 1, + }, + ], + } : {}), };